parser: regenerate
[nit.git] / src / parser / parser.nit
index 6ce16b2..a63572c 100644 (file)
 # Parser.
 # This file was generated by SableCC (http://www.sablecc.org/).
-module parser
+module parser is no_warning("missing-doc", "unread-variable")
 
 intrude import parser_prod
-import tables
+intrude import parser_work
+private import tables
 
-# State of the parser automata as stored in the parser stack.
-private class State
-       # The internal state number
-       readable writable var _state: Int
-
-       # The node stored with the state in the stack
-       readable writable var _nodes: nullable Object
-
-       init(state: Int, nodes: nullable Object)
-       do
-               _state = state
-               _nodes = nodes
-       end
-end
-
-class Parser
-       super TablesCapable
-       # Associated lexer
-       var _lexer: Lexer
-
-       # Stack of pushed states and productions
-       var _stack: Array[State]
-
-       # Position in the stack
-       var _stack_pos: Int
-
-       # Create a new parser based on a given lexer
-       init(lexer: Lexer)
-       do
-               _lexer = lexer
-               _stack = new Array[State]
-               _stack_pos = -1
-               build_reduce_table
-       end
-
-       # Do a transition in the automata
-       private fun go_to(index: Int): Int
-       do
-               var state = state
-               var low = 1
-               var high = parser_goto(index, 0) - 1
-
-               while low <= high do
-                       var middle = (low + high) / 2
-                       var subindex = middle * 2 + 1 # +1 because parser_goto(index, 0) is the length
-
-                       var goal = parser_goto(index, subindex)
-                       if state < goal then
-                               high = middle - 1
-                       else if state > goal then
-                               low = middle + 1
-                       else
-                               return parser_goto(index, subindex+1)
-                       end
-               end
-
-               return parser_goto(index, 2) # Default value
-       end
-
-       # Push someting in the state stack
-       private fun push(numstate: Int, list_node: nullable Object)
-       do
-               var pos = _stack_pos + 1
-               _stack_pos = pos
-               if pos < _stack.length then
-                       var state = _stack[pos]
-                       state.state = numstate
-                       state.nodes = list_node
-               else
-                       _stack.push(new State(numstate, list_node))
-               end
-       end
-
-       # The current state
-       private fun state: Int
-       do
-               return _stack[_stack_pos].state
-       end
-
-       # Pop something from the stack state
-       private fun pop: nullable Object
-       do
-               var res = _stack[_stack_pos].nodes
-               _stack_pos = _stack_pos -1
-               return res
-       end
-
-       # Build and return a full AST.
-       fun parse: Start
-       do
-               push(0, null)
-
-               var lexer = _lexer
-               loop
-                       var token = lexer.peek
-                       if token isa AError then
-                               return new Start(null, token)
-                       end
-
-                       var state = self.state
-                       var index = token.parser_index
-                       var action_type = parser_action(state, 2)
-                       var action_value = parser_action(state, 3)
-
-                       var low = 1
-                       var high = parser_action(state, 0) - 1
-
-                       while low <= high do
-                               var middle = (low + high) / 2
-                               var subindex = middle * 3 + 1 # +1 because parser_action(state, 0) is the length
-
-                               var goal = parser_action(state, subindex)
-                               if index < goal then
-                                       high = middle - 1
-                               else if index > goal then
-                                       low = middle + 1
-                               else
-                                       action_type = parser_action(state, subindex+1)
-                                       action_value = parser_action(state, subindex+2)
-                                       break
-                               end
-                       end
-
-                       if action_type == 0 then # SHIFT
-                               push(action_value, lexer.next)
-                       else if action_type == 1 then # REDUCE
-                               _reduce_table[action_value].action(self)
-                       else if action_type == 2 then # ACCEPT
-                               var node2 = lexer.next
-                               assert node2 isa EOF
-                               var node1 = pop
-                               assert node1 isa AModule
-                               var node = new Start(node1, node2)
-                               (new ComputeProdLocationVisitor).enter_visit(node)
-                               return node
-                       else if action_type == 3 then # ERROR
-                               var node2 = new AParserError.init_parser_error("Syntax error: unexpected {token}.", token.location, token)
-                               var node = new Start(null, node2)
-                               return node
-                       end
-               end
-       end
-
-       var _reduce_table: Array[ReduceAction]
-       private fun build_reduce_table
+redef class Parser
+       redef fun build_reduce_table
        do
                _reduce_table = new Array[ReduceAction].with_items(
                        new ReduceAction0(0),
@@ -168,1755 +26,1083 @@ class Parser
                        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(0),
-                       new ReduceAction33(0),
-                       new ReduceAction34(0),
-                       new ReduceAction35(0),
-                       new ReduceAction36(0),
-                       new ReduceAction37(0),
-                       new ReduceAction38(0),
-                       new ReduceAction39(0),
-                       new ReduceAction40(0),
-                       new ReduceAction41(0),
-                       new ReduceAction42(0),
-                       new ReduceAction43(0),
-                       new ReduceAction44(0),
-                       new ReduceAction45(0),
-                       new ReduceAction46(0),
-                       new ReduceAction47(0),
-                       new ReduceAction48(0),
-                       new ReduceAction49(0),
-                       new ReduceAction50(0),
-                       new ReduceAction51(0),
-                       new ReduceAction52(0),
-                       new ReduceAction53(0),
-                       new ReduceAction54(0),
-                       new ReduceAction55(0),
-                       new ReduceAction56(0),
-                       new ReduceAction57(0),
-                       new ReduceAction58(0),
-                       new ReduceAction59(0),
-                       new ReduceAction60(0),
-                       new ReduceAction61(0),
-                       new ReduceAction62(0),
-                       new ReduceAction63(0),
-                       new ReduceAction64(1),
-                       new ReduceAction65(1),
-                       new ReduceAction66(2),
-                       new ReduceAction67(2),
-                       new ReduceAction68(2),
-                       new ReduceAction69(3),
-                       new ReduceAction70(3),
-                       new ReduceAction71(4),
-                       new ReduceAction71(4),
-                       new ReduceAction73(5),
-                       new ReduceAction74(5),
-                       new ReduceAction75(5),
-                       new ReduceAction76(5),
-                       new ReduceAction75(5),
-                       new ReduceAction78(5),
-                       new ReduceAction79(5),
-                       new ReduceAction78(5),
-                       new ReduceAction81(5),
-                       new ReduceAction82(5),
-                       new ReduceAction83(5),
-                       new ReduceAction84(5),
-                       new ReduceAction83(5),
-                       new ReduceAction86(5),
-                       new ReduceAction87(5),
-                       new ReduceAction86(5),
-                       new ReduceAction89(5),
-                       new ReduceAction90(5),
-                       new ReduceAction91(5),
-                       new ReduceAction92(5),
-                       new ReduceAction91(5),
-                       new ReduceAction94(5),
-                       new ReduceAction95(5),
-                       new ReduceAction94(5),
-                       new ReduceAction97(5),
-                       new ReduceAction98(5),
-                       new ReduceAction99(5),
-                       new ReduceAction100(5),
-                       new ReduceAction99(5),
-                       new ReduceAction102(5),
-                       new ReduceAction103(5),
-                       new ReduceAction102(5),
-                       new ReduceAction105(5),
-                       new ReduceAction106(5),
-                       new ReduceAction107(5),
-                       new ReduceAction108(5),
-                       new ReduceAction107(5),
-                       new ReduceAction110(5),
-                       new ReduceAction111(5),
-                       new ReduceAction110(5),
-                       new ReduceAction113(5),
-                       new ReduceAction114(5),
-                       new ReduceAction115(5),
-                       new ReduceAction116(5),
-                       new ReduceAction115(5),
-                       new ReduceAction118(5),
-                       new ReduceAction119(5),
-                       new ReduceAction118(5),
-                       new ReduceAction121(5),
-                       new ReduceAction122(5),
-                       new ReduceAction123(5),
-                       new ReduceAction124(5),
-                       new ReduceAction123(5),
-                       new ReduceAction126(5),
-                       new ReduceAction127(5),
-                       new ReduceAction126(5),
-                       new ReduceAction129(5),
-                       new ReduceAction130(5),
-                       new ReduceAction131(5),
-                       new ReduceAction132(5),
-                       new ReduceAction131(5),
-                       new ReduceAction134(5),
-                       new ReduceAction135(5),
-                       new ReduceAction134(5),
-                       new ReduceAction137(5),
-                       new ReduceAction138(5),
-                       new ReduceAction139(5),
-                       new ReduceAction140(5),
-                       new ReduceAction139(5),
-                       new ReduceAction142(5),
-                       new ReduceAction143(5),
-                       new ReduceAction142(5),
-                       new ReduceAction145(5),
-                       new ReduceAction146(5),
-                       new ReduceAction147(5),
-                       new ReduceAction148(5),
-                       new ReduceAction147(5),
-                       new ReduceAction150(5),
-                       new ReduceAction151(5),
-                       new ReduceAction150(5),
-                       new ReduceAction153(5),
-                       new ReduceAction154(5),
-                       new ReduceAction155(5),
-                       new ReduceAction156(5),
-                       new ReduceAction155(5),
-                       new ReduceAction158(5),
-                       new ReduceAction159(5),
-                       new ReduceAction158(5),
-                       new ReduceAction161(5),
-                       new ReduceAction162(5),
-                       new ReduceAction163(5),
-                       new ReduceAction164(5),
-                       new ReduceAction163(5),
-                       new ReduceAction166(5),
-                       new ReduceAction167(5),
-                       new ReduceAction166(5),
-                       new ReduceAction169(5),
-                       new ReduceAction170(5),
-                       new ReduceAction171(5),
-                       new ReduceAction172(5),
-                       new ReduceAction171(5),
-                       new ReduceAction174(5),
-                       new ReduceAction175(5),
-                       new ReduceAction174(5),
-                       new ReduceAction177(5),
-                       new ReduceAction178(5),
-                       new ReduceAction179(5),
-                       new ReduceAction180(5),
-                       new ReduceAction179(5),
-                       new ReduceAction182(5),
-                       new ReduceAction183(5),
-                       new ReduceAction182(5),
-                       new ReduceAction185(5),
-                       new ReduceAction186(5),
-                       new ReduceAction187(5),
-                       new ReduceAction188(5),
-                       new ReduceAction187(5),
-                       new ReduceAction190(5),
-                       new ReduceAction191(5),
-                       new ReduceAction190(5),
-                       new ReduceAction193(5),
-                       new ReduceAction194(5),
-                       new ReduceAction195(5),
-                       new ReduceAction196(5),
-                       new ReduceAction195(5),
-                       new ReduceAction198(5),
-                       new ReduceAction199(5),
-                       new ReduceAction198(5),
-                       new ReduceAction201(5),
-                       new ReduceAction202(5),
-                       new ReduceAction203(5),
-                       new ReduceAction204(5),
-                       new ReduceAction203(5),
-                       new ReduceAction206(5),
-                       new ReduceAction207(5),
-                       new ReduceAction206(5),
-                       new ReduceAction209(5),
-                       new ReduceAction210(5),
-                       new ReduceAction211(5),
-                       new ReduceAction212(5),
-                       new ReduceAction211(5),
-                       new ReduceAction214(5),
-                       new ReduceAction215(5),
-                       new ReduceAction214(5),
-                       new ReduceAction217(5),
-                       new ReduceAction218(5),
-                       new ReduceAction219(5),
-                       new ReduceAction220(5),
-                       new ReduceAction219(5),
-                       new ReduceAction222(5),
-                       new ReduceAction223(5),
-                       new ReduceAction222(5),
-                       new ReduceAction225(5),
-                       new ReduceAction226(5),
-                       new ReduceAction227(5),
-                       new ReduceAction228(5),
-                       new ReduceAction227(5),
-                       new ReduceAction230(5),
-                       new ReduceAction231(5),
-                       new ReduceAction230(5),
-                       new ReduceAction233(5),
-                       new ReduceAction234(5),
-                       new ReduceAction235(5),
-                       new ReduceAction236(5),
-                       new ReduceAction235(5),
-                       new ReduceAction238(5),
-                       new ReduceAction239(5),
-                       new ReduceAction238(5),
-                       new ReduceAction241(5),
-                       new ReduceAction242(5),
-                       new ReduceAction243(5),
-                       new ReduceAction244(5),
-                       new ReduceAction243(5),
-                       new ReduceAction246(5),
-                       new ReduceAction247(5),
-                       new ReduceAction246(5),
-                       new ReduceAction249(5),
-                       new ReduceAction250(5),
-                       new ReduceAction251(5),
-                       new ReduceAction252(5),
-                       new ReduceAction251(5),
-                       new ReduceAction254(5),
-                       new ReduceAction255(5),
-                       new ReduceAction254(5),
-                       new ReduceAction257(5),
-                       new ReduceAction258(5),
-                       new ReduceAction259(5),
-                       new ReduceAction260(5),
-                       new ReduceAction259(5),
-                       new ReduceAction262(5),
-                       new ReduceAction263(5),
-                       new ReduceAction262(5),
-                       new ReduceAction265(5),
-                       new ReduceAction266(5),
-                       new ReduceAction267(5),
-                       new ReduceAction268(5),
-                       new ReduceAction267(5),
-                       new ReduceAction270(5),
-                       new ReduceAction271(5),
-                       new ReduceAction270(5),
-                       new ReduceAction273(5),
-                       new ReduceAction274(5),
-                       new ReduceAction275(5),
-                       new ReduceAction276(5),
-                       new ReduceAction275(5),
-                       new ReduceAction278(5),
-                       new ReduceAction279(5),
-                       new ReduceAction278(5),
-                       new ReduceAction281(5),
-                       new ReduceAction282(5),
-                       new ReduceAction283(5),
-                       new ReduceAction284(5),
-                       new ReduceAction283(5),
-                       new ReduceAction286(5),
-                       new ReduceAction287(5),
-                       new ReduceAction286(5),
-                       new ReduceAction289(5),
-                       new ReduceAction290(5),
-                       new ReduceAction291(5),
-                       new ReduceAction292(5),
-                       new ReduceAction291(5),
-                       new ReduceAction294(5),
-                       new ReduceAction295(5),
-                       new ReduceAction294(5),
-                       new ReduceAction297(5),
-                       new ReduceAction298(5),
-                       new ReduceAction299(5),
-                       new ReduceAction300(5),
-                       new ReduceAction299(5),
-                       new ReduceAction302(5),
-                       new ReduceAction303(5),
-                       new ReduceAction302(5),
-                       new ReduceAction305(5),
-                       new ReduceAction306(5),
-                       new ReduceAction307(5),
-                       new ReduceAction308(5),
-                       new ReduceAction307(5),
-                       new ReduceAction310(5),
-                       new ReduceAction311(5),
-                       new ReduceAction310(5),
-                       new ReduceAction313(5),
-                       new ReduceAction314(5),
-                       new ReduceAction315(5),
-                       new ReduceAction316(5),
-                       new ReduceAction315(5),
-                       new ReduceAction318(5),
-                       new ReduceAction319(5),
-                       new ReduceAction318(5),
-                       new ReduceAction321(5),
-                       new ReduceAction322(5),
-                       new ReduceAction323(5),
-                       new ReduceAction324(5),
-                       new ReduceAction323(5),
-                       new ReduceAction326(5),
-                       new ReduceAction327(5),
-                       new ReduceAction326(5),
-                       new ReduceAction329(6),
-                       new ReduceAction330(6),
-                       new ReduceAction331(6),
-                       new ReduceAction332(6),
-                       new ReduceAction333(6),
-                       new ReduceAction334(6),
-                       new ReduceAction335(7),
-                       new ReduceAction336(7),
-                       new ReduceAction337(8),
-                       new ReduceAction338(9),
-                       new ReduceAction339(9),
-                       new ReduceAction340(9),
-                       new ReduceAction341(9),
-                       new ReduceAction342(10),
-                       new ReduceAction343(10),
-                       new ReduceAction344(11),
-                       new ReduceAction345(12),
-                       new ReduceAction346(12),
-                       new ReduceAction347(12),
-                       new ReduceAction348(12),
-                       new ReduceAction349(12),
-                       new ReduceAction350(12),
-                       new ReduceAction351(12),
-                       new ReduceAction352(12),
-                       new ReduceAction353(12),
-                       new ReduceAction354(12),
-                       new ReduceAction355(12),
-                       new ReduceAction356(12),
-                       new ReduceAction357(12),
-                       new ReduceAction358(12),
-                       new ReduceAction359(12),
-                       new ReduceAction360(12),
-                       new ReduceAction361(12),
-                       new ReduceAction362(12),
-                       new ReduceAction363(12),
-                       new ReduceAction364(12),
-                       new ReduceAction365(12),
-                       new ReduceAction366(12),
-                       new ReduceAction367(12),
-                       new ReduceAction368(12),
-                       new ReduceAction369(12),
-                       new ReduceAction370(12),
-                       new ReduceAction371(12),
-                       new ReduceAction372(12),
-                       new ReduceAction373(12),
-                       new ReduceAction374(12),
-                       new ReduceAction375(12),
-                       new ReduceAction376(12),
-                       new ReduceAction377(12),
-                       new ReduceAction378(12),
-                       new ReduceAction379(12),
-                       new ReduceAction380(12),
-                       new ReduceAction381(12),
-                       new ReduceAction382(12),
-                       new ReduceAction383(12),
-                       new ReduceAction384(12),
-                       new ReduceAction385(12),
-                       new ReduceAction386(12),
-                       new ReduceAction387(12),
-                       new ReduceAction388(12),
-                       new ReduceAction389(12),
-                       new ReduceAction390(12),
-                       new ReduceAction391(12),
-                       new ReduceAction392(12),
-                       new ReduceAction393(12),
-                       new ReduceAction394(12),
-                       new ReduceAction395(12),
-                       new ReduceAction396(12),
-                       new ReduceAction397(12),
-                       new ReduceAction398(12),
-                       new ReduceAction399(12),
-                       new ReduceAction400(12),
-                       new ReduceAction401(12),
-                       new ReduceAction402(12),
-                       new ReduceAction403(12),
-                       new ReduceAction404(12),
-                       new ReduceAction405(12),
-                       new ReduceAction406(12),
-                       new ReduceAction407(12),
-                       new ReduceAction408(12),
-                       new ReduceAction409(12),
-                       new ReduceAction410(12),
-                       new ReduceAction411(12),
-                       new ReduceAction412(12),
-                       new ReduceAction413(12),
-                       new ReduceAction414(12),
-                       new ReduceAction415(12),
-                       new ReduceAction416(12),
-                       new ReduceAction417(12),
-                       new ReduceAction418(12),
-                       new ReduceAction419(12),
-                       new ReduceAction420(12),
-                       new ReduceAction421(12),
-                       new ReduceAction422(12),
-                       new ReduceAction423(12),
-                       new ReduceAction424(12),
-                       new ReduceAction425(12),
-                       new ReduceAction426(12),
-                       new ReduceAction427(12),
-                       new ReduceAction428(12),
-                       new ReduceAction429(12),
-                       new ReduceAction430(12),
-                       new ReduceAction431(12),
-                       new ReduceAction432(12),
-                       new ReduceAction433(12),
-                       new ReduceAction434(12),
-                       new ReduceAction435(12),
-                       new ReduceAction436(12),
-                       new ReduceAction437(12),
-                       new ReduceAction438(12),
-                       new ReduceAction439(12),
-                       new ReduceAction440(12),
-                       new ReduceAction441(12),
-                       new ReduceAction442(12),
-                       new ReduceAction443(12),
-                       new ReduceAction444(12),
-                       new ReduceAction445(12),
-                       new ReduceAction446(12),
-                       new ReduceAction447(12),
-                       new ReduceAction448(12),
-                       new ReduceAction449(12),
-                       new ReduceAction450(12),
-                       new ReduceAction451(12),
-                       new ReduceAction452(12),
-                       new ReduceAction453(12),
-                       new ReduceAction454(12),
-                       new ReduceAction455(12),
-                       new ReduceAction456(12),
-                       new ReduceAction457(12),
-                       new ReduceAction458(12),
-                       new ReduceAction459(12),
-                       new ReduceAction460(12),
-                       new ReduceAction461(12),
-                       new ReduceAction462(12),
-                       new ReduceAction463(12),
-                       new ReduceAction464(12),
-                       new ReduceAction465(12),
-                       new ReduceAction466(12),
-                       new ReduceAction467(12),
-                       new ReduceAction468(12),
-                       new ReduceAction469(12),
-                       new ReduceAction470(12),
-                       new ReduceAction471(12),
-                       new ReduceAction472(12),
-                       new ReduceAction473(12),
-                       new ReduceAction474(12),
-                       new ReduceAction475(12),
-                       new ReduceAction476(12),
-                       new ReduceAction477(12),
-                       new ReduceAction478(12),
-                       new ReduceAction479(12),
-                       new ReduceAction480(12),
-                       new ReduceAction481(12),
-                       new ReduceAction482(12),
-                       new ReduceAction483(12),
-                       new ReduceAction484(12),
-                       new ReduceAction485(12),
-                       new ReduceAction486(12),
-                       new ReduceAction487(12),
-                       new ReduceAction488(12),
-                       new ReduceAction489(12),
-                       new ReduceAction490(12),
-                       new ReduceAction491(12),
-                       new ReduceAction492(12),
-                       new ReduceAction493(12),
-                       new ReduceAction494(12),
-                       new ReduceAction495(12),
-                       new ReduceAction496(12),
-                       new ReduceAction497(12),
-                       new ReduceAction498(12),
-                       new ReduceAction499(12),
-                       new ReduceAction500(12),
-                       new ReduceAction501(12),
-                       new ReduceAction502(12),
-                       new ReduceAction503(12),
-                       new ReduceAction504(12),
-                       new ReduceAction505(12),
-                       new ReduceAction506(12),
-                       new ReduceAction507(12),
-                       new ReduceAction508(12),
-                       new ReduceAction509(12),
-                       new ReduceAction510(12),
-                       new ReduceAction511(12),
-                       new ReduceAction512(12),
-                       new ReduceAction513(13),
-                       new ReduceAction514(13),
-                       new ReduceAction513(14),
-                       new ReduceAction516(14),
-                       new ReduceAction517(15),
-                       new ReduceAction518(15),
-                       new ReduceAction519(16),
-                       new ReduceAction520(16),
-                       new ReduceAction521(17),
-                       new ReduceAction522(17),
-                       new ReduceAction523(18),
-                       new ReduceAction524(18),
-                       new ReduceAction525(18),
-                       new ReduceAction526(18),
-                       new ReduceAction527(19),
-                       new ReduceAction528(19),
-                       new ReduceAction529(19),
-                       new ReduceAction530(19),
-                       new ReduceAction531(19),
-                       new ReduceAction532(19),
-                       new ReduceAction533(19),
-                       new ReduceAction534(19),
-                       new ReduceAction535(19),
-                       new ReduceAction536(19),
-                       new ReduceAction537(19),
-                       new ReduceAction538(19),
-                       new ReduceAction539(19),
-                       new ReduceAction540(19),
-                       new ReduceAction541(19),
-                       new ReduceAction542(19),
-                       new ReduceAction543(19),
-                       new ReduceAction544(19),
-                       new ReduceAction545(20),
-                       new ReduceAction546(20),
-                       new ReduceAction547(20),
-                       new ReduceAction548(20),
-                       new ReduceAction549(20),
-                       new ReduceAction550(20),
-                       new ReduceAction551(21),
-                       new ReduceAction552(21),
-                       new ReduceAction553(22),
-                       new ReduceAction554(23),
-                       new ReduceAction555(23),
-                       new ReduceAction556(23),
-                       new ReduceAction557(23),
-                       new ReduceAction558(23),
-                       new ReduceAction559(23),
-                       new ReduceAction560(24),
-                       new ReduceAction561(25),
-                       new ReduceAction562(25),
-                       new ReduceAction563(26),
-                       new ReduceAction564(27),
-                       new ReduceAction564(27),
-                       new ReduceAction566(27),
-                       new ReduceAction567(28),
-                       new ReduceAction568(28),
-                       new ReduceAction569(28),
-                       new ReduceAction570(29),
-                       new ReduceAction571(29),
-                       new ReduceAction572(29),
-                       new ReduceAction573(30),
-                       new ReduceAction574(31),
-                       new ReduceAction575(31),
-                       new ReduceAction576(32),
-                       new ReduceAction577(33),
-                       new ReduceAction578(33),
-                       new ReduceAction579(33),
-                       new ReduceAction580(33),
-                       new ReduceAction581(33),
-                       new ReduceAction582(33),
-                       new ReduceAction583(33),
-                       new ReduceAction584(33),
-                       new ReduceAction585(34),
-                       new ReduceAction586(34),
-                       new ReduceAction587(35),
-                       new ReduceAction587(36),
-                       new ReduceAction589(37),
-                       new ReduceAction590(37),
-                       new ReduceAction591(37),
-                       new ReduceAction592(37),
-                       new ReduceAction593(38),
-                       new ReduceAction594(38),
-                       new ReduceAction595(39),
-                       new ReduceAction596(39),
-                       new ReduceAction597(40),
-                       new ReduceAction598(40),
-                       new ReduceAction589(41),
-                       new ReduceAction592(42),
-                       new ReduceAction592(42),
-                       new ReduceAction602(42),
-                       new ReduceAction603(42),
-                       new ReduceAction604(42),
-                       new ReduceAction605(42),
-                       new ReduceAction606(42),
-                       new ReduceAction607(42),
-                       new ReduceAction608(42),
-                       new ReduceAction609(42),
-                       new ReduceAction610(42),
-                       new ReduceAction611(42),
-                       new ReduceAction612(42),
-                       new ReduceAction592(42),
-                       new ReduceAction592(42),
-                       new ReduceAction592(42),
-                       new ReduceAction592(42),
-                       new ReduceAction592(42),
-                       new ReduceAction592(42),
-                       new ReduceAction619(42),
-                       new ReduceAction620(42),
-                       new ReduceAction621(42),
-                       new ReduceAction622(42),
-                       new ReduceAction621(42),
-                       new ReduceAction624(42),
-                       new ReduceAction625(42),
-                       new ReduceAction624(42),
-                       new ReduceAction627(42),
-                       new ReduceAction628(42),
-                       new ReduceAction629(42),
-                       new ReduceAction630(42),
-                       new ReduceAction631(42),
-                       new ReduceAction632(42),
-                       new ReduceAction633(42),
-                       new ReduceAction634(42),
-                       new ReduceAction633(42),
-                       new ReduceAction636(42),
-                       new ReduceAction637(42),
-                       new ReduceAction636(42),
-                       new ReduceAction639(42),
-                       new ReduceAction640(43),
-                       new ReduceAction641(44),
-                       new ReduceAction642(45),
-                       new ReduceAction643(45),
-                       new ReduceAction644(45),
-                       new ReduceAction645(45),
-                       new ReduceAction646(45),
-                       new ReduceAction647(45),
-                       new ReduceAction648(45),
-                       new ReduceAction649(45),
-                       new ReduceAction650(46),
-                       new ReduceAction651(46),
-                       new ReduceAction652(46),
-                       new ReduceAction653(46),
-                       new ReduceAction652(46),
-                       new ReduceAction655(46),
-                       new ReduceAction656(46),
-                       new ReduceAction655(46),
-                       new ReduceAction658(46),
-                       new ReduceAction659(46),
-                       new ReduceAction660(46),
-                       new ReduceAction661(46),
-                       new ReduceAction660(46),
-                       new ReduceAction663(46),
-                       new ReduceAction664(46),
-                       new ReduceAction663(46),
-                       new ReduceAction666(46),
-                       new ReduceAction667(46),
-                       new ReduceAction668(46),
-                       new ReduceAction669(46),
-                       new ReduceAction670(46),
-                       new ReduceAction669(46),
-                       new ReduceAction672(46),
-                       new ReduceAction673(46),
-                       new ReduceAction672(46),
-                       new ReduceAction675(46),
-                       new ReduceAction676(46),
-                       new ReduceAction677(46),
-                       new ReduceAction678(46),
-                       new ReduceAction677(46),
-                       new ReduceAction680(46),
-                       new ReduceAction681(46),
-                       new ReduceAction680(46),
-                       new ReduceAction683(46),
-                       new ReduceAction684(47),
-                       new ReduceAction685(47),
-                       new ReduceAction686(48),
-                       new ReduceAction687(48),
-                       new ReduceAction688(49),
-                       new ReduceAction689(49),
-                       new ReduceAction690(49),
-                       new ReduceAction691(49),
-                       new ReduceAction692(49),
-                       new ReduceAction589(50),
-                       new ReduceAction591(50),
-                       new ReduceAction695(51),
-                       new ReduceAction696(51),
-                       new ReduceAction697(52),
-                       new ReduceAction698(52),
-                       new ReduceAction699(53),
-                       new ReduceAction700(53),
-                       new ReduceAction701(53),
-                       new ReduceAction702(53),
-                       new ReduceAction703(54),
-                       new ReduceAction704(54),
-                       new ReduceAction705(54),
-                       new ReduceAction706(54),
-                       new ReduceAction707(55),
-                       new ReduceAction592(56),
-                       new ReduceAction592(57),
-                       new ReduceAction710(57),
-                       new ReduceAction592(58),
-                       new ReduceAction712(58),
-                       new ReduceAction713(58),
-                       new ReduceAction714(58),
-                       new ReduceAction715(58),
-                       new ReduceAction592(59),
-                       new ReduceAction717(59),
-                       new ReduceAction592(60),
-                       new ReduceAction719(60),
-                       new ReduceAction720(60),
-                       new ReduceAction721(60),
-                       new ReduceAction722(60),
-                       new ReduceAction723(60),
-                       new ReduceAction724(60),
-                       new ReduceAction725(60),
-                       new ReduceAction726(60),
-                       new ReduceAction727(60),
-                       new ReduceAction728(60),
-                       new ReduceAction729(60),
-                       new ReduceAction592(61),
-                       new ReduceAction731(61),
-                       new ReduceAction732(61),
-                       new ReduceAction592(62),
-                       new ReduceAction734(62),
-                       new ReduceAction735(62),
-                       new ReduceAction736(62),
-                       new ReduceAction592(63),
-                       new ReduceAction738(63),
-                       new ReduceAction739(63),
-                       new ReduceAction592(64),
-                       new ReduceAction741(64),
-                       new ReduceAction742(64),
-                       new ReduceAction743(64),
-                       new ReduceAction744(64),
-                       new ReduceAction745(64),
-                       new ReduceAction744(64),
-                       new ReduceAction747(64),
-                       new ReduceAction748(64),
-                       new ReduceAction747(64),
-                       new ReduceAction750(65),
-                       new ReduceAction751(65),
-                       new ReduceAction752(65),
-                       new ReduceAction753(65),
-                       new ReduceAction752(65),
-                       new ReduceAction755(65),
-                       new ReduceAction756(65),
-                       new ReduceAction755(65),
-                       new ReduceAction619(65),
-                       new ReduceAction620(65),
-                       new ReduceAction621(65),
-                       new ReduceAction622(65),
-                       new ReduceAction621(65),
-                       new ReduceAction624(65),
-                       new ReduceAction625(65),
-                       new ReduceAction624(65),
-                       new ReduceAction627(65),
-                       new ReduceAction628(65),
-                       new ReduceAction629(65),
-                       new ReduceAction630(65),
-                       new ReduceAction631(65),
-                       new ReduceAction632(65),
-                       new ReduceAction772(65),
-                       new ReduceAction773(65),
-                       new ReduceAction774(65),
-                       new ReduceAction775(65),
-                       new ReduceAction774(65),
-                       new ReduceAction777(65),
-                       new ReduceAction778(65),
-                       new ReduceAction779(65),
-                       new ReduceAction780(65),
-                       new ReduceAction781(65),
-                       new ReduceAction782(65),
-                       new ReduceAction783(65),
-                       new ReduceAction784(65),
-                       new ReduceAction785(65),
-                       new ReduceAction786(65),
-                       new ReduceAction787(65),
-                       new ReduceAction788(65),
-                       new ReduceAction789(65),
-                       new ReduceAction790(65),
-                       new ReduceAction791(65),
-                       new ReduceAction792(65),
-                       new ReduceAction793(65),
-                       new ReduceAction794(65),
-                       new ReduceAction795(65),
-                       new ReduceAction796(65),
-                       new ReduceAction797(65),
-                       new ReduceAction798(65),
-                       new ReduceAction592(65),
-                       new ReduceAction800(65),
-                       new ReduceAction801(65),
-                       new ReduceAction802(65),
-                       new ReduceAction803(65),
-                       new ReduceAction804(66),
-                       new ReduceAction805(66),
-                       new ReduceAction806(66),
-                       new ReduceAction807(66),
-                       new ReduceAction808(67),
-                       new ReduceAction809(68),
-                       new ReduceAction808(69),
-                       new ReduceAction811(70),
-                       new ReduceAction812(71),
-                       new ReduceAction813(72),
-                       new ReduceAction814(72),
-                       new ReduceAction815(73),
-                       new ReduceAction816(73),
-                       new ReduceAction817(73),
-                       new ReduceAction818(73),
-                       new ReduceAction819(74),
-                       new ReduceAction820(75),
-                       new ReduceAction821(75),
-                       new ReduceAction819(76),
-                       new ReduceAction823(77),
-                       new ReduceAction824(77),
-                       new ReduceAction825(77),
-                       new ReduceAction826(77),
-                       new ReduceAction827(77),
-                       new ReduceAction828(78),
-                       new ReduceAction829(79),
-                       new ReduceAction830(79),
-                       new ReduceAction831(80),
-                       new ReduceAction832(81),
-                       new ReduceAction833(81),
-                       new ReduceAction833(81),
-                       new ReduceAction835(81),
-                       new ReduceAction836(82),
-                       new ReduceAction837(82),
-                       new ReduceAction838(82),
-                       new ReduceAction837(82),
-                       new ReduceAction840(82),
-                       new ReduceAction841(82),
-                       new ReduceAction842(82),
-                       new ReduceAction841(82),
-                       new ReduceAction844(82),
-                       new ReduceAction845(82),
-                       new ReduceAction846(82),
-                       new ReduceAction845(82),
-                       new ReduceAction848(82),
-                       new ReduceAction849(82),
-                       new ReduceAction850(82),
-                       new ReduceAction849(82),
-                       new ReduceAction852(83),
-                       new ReduceAction853(83),
-                       new ReduceAction854(83),
-                       new ReduceAction852(84),
-                       new ReduceAction856(84),
-                       new ReduceAction853(84),
-                       new ReduceAction854(84),
-                       new ReduceAction859(85),
-                       new ReduceAction860(86),
-                       new ReduceAction861(86),
-                       new ReduceAction862(87),
-                       new ReduceAction863(88),
-                       new ReduceAction864(88),
-                       new ReduceAction865(89),
-                       new ReduceAction866(89),
-                       new ReduceAction867(89),
-                       new ReduceAction868(89),
-                       new ReduceAction869(90),
-                       new ReduceAction870(91),
-                       new ReduceAction871(92),
-                       new ReduceAction871(92),
-                       new ReduceAction873(93),
-                       new ReduceAction874(93),
-                       new ReduceAction70(93),
-                       new ReduceAction876(94),
-                       new ReduceAction877(94),
-                       new ReduceAction878(95),
-                       new ReduceAction879(95),
-                       new ReduceAction871(95),
-                       new ReduceAction344(96),
-                       new ReduceAction345(97),
-                       new ReduceAction346(97),
-                       new ReduceAction347(97),
-                       new ReduceAction348(97),
-                       new ReduceAction349(97),
-                       new ReduceAction350(97),
-                       new ReduceAction351(97),
-                       new ReduceAction352(97),
-                       new ReduceAction353(97),
-                       new ReduceAction354(97),
-                       new ReduceAction355(97),
-                       new ReduceAction356(97),
-                       new ReduceAction361(97),
-                       new ReduceAction362(97),
-                       new ReduceAction363(97),
-                       new ReduceAction364(97),
-                       new ReduceAction365(97),
-                       new ReduceAction366(97),
-                       new ReduceAction367(97),
-                       new ReduceAction368(97),
-                       new ReduceAction369(97),
-                       new ReduceAction370(97),
-                       new ReduceAction371(97),
-                       new ReduceAction372(97),
-                       new ReduceAction373(97),
-                       new ReduceAction374(97),
-                       new ReduceAction375(97),
-                       new ReduceAction376(97),
-                       new ReduceAction377(97),
-                       new ReduceAction378(97),
-                       new ReduceAction379(97),
-                       new ReduceAction380(97),
-                       new ReduceAction545(98),
-                       new ReduceAction546(98),
-                       new ReduceAction549(98),
-                       new ReduceAction577(99),
-                       new ReduceAction578(99),
-                       new ReduceAction579(99),
-                       new ReduceAction580(99),
-                       new ReduceAction592(100),
-                       new ReduceAction592(101),
-                       new ReduceAction710(101),
-                       new ReduceAction592(102),
-                       new ReduceAction712(102),
-                       new ReduceAction713(102),
-                       new ReduceAction714(102),
-                       new ReduceAction715(102),
-                       new ReduceAction592(103),
-                       new ReduceAction717(103),
-                       new ReduceAction592(104),
-                       new ReduceAction719(104),
-                       new ReduceAction720(104),
-                       new ReduceAction721(104),
-                       new ReduceAction722(104),
-                       new ReduceAction723(104),
-                       new ReduceAction724(104),
-                       new ReduceAction725(104),
-                       new ReduceAction726(104),
-                       new ReduceAction727(104),
-                       new ReduceAction728(104),
-                       new ReduceAction729(104),
-                       new ReduceAction592(105),
-                       new ReduceAction731(105),
-                       new ReduceAction732(105),
-                       new ReduceAction592(106),
-                       new ReduceAction734(106),
-                       new ReduceAction735(106),
-                       new ReduceAction736(106),
-                       new ReduceAction592(107),
-                       new ReduceAction738(107),
-                       new ReduceAction739(107),
-                       new ReduceAction592(108),
-                       new ReduceAction741(108),
-                       new ReduceAction742(108),
-                       new ReduceAction743(108),
-                       new ReduceAction744(108),
-                       new ReduceAction747(108),
-                       new ReduceAction745(108),
-                       new ReduceAction748(108),
-                       new ReduceAction744(108),
-                       new ReduceAction747(108),
-                       new ReduceAction750(109),
-                       new ReduceAction751(109),
-                       new ReduceAction752(109),
-                       new ReduceAction755(109),
-                       new ReduceAction753(109),
-                       new ReduceAction756(109),
-                       new ReduceAction752(109),
-                       new ReduceAction755(109),
-                       new ReduceAction619(109),
-                       new ReduceAction620(109),
-                       new ReduceAction621(109),
-                       new ReduceAction624(109),
-                       new ReduceAction622(109),
-                       new ReduceAction625(109),
-                       new ReduceAction621(109),
-                       new ReduceAction624(109),
-                       new ReduceAction627(109),
-                       new ReduceAction628(109),
-                       new ReduceAction629(109),
-                       new ReduceAction630(109),
-                       new ReduceAction631(109),
-                       new ReduceAction632(109),
-                       new ReduceAction773(109),
-                       new ReduceAction774(109),
-                       new ReduceAction775(109),
-                       new ReduceAction774(109),
-                       new ReduceAction783(109),
-                       new ReduceAction784(109),
-                       new ReduceAction785(109),
-                       new ReduceAction786(109),
-                       new ReduceAction787(109),
-                       new ReduceAction788(109),
-                       new ReduceAction789(109),
-                       new ReduceAction790(109),
-                       new ReduceAction791(109),
-                       new ReduceAction792(109),
-                       new ReduceAction793(109),
-                       new ReduceAction794(109),
-                       new ReduceAction795(109),
-                       new ReduceAction796(109),
-                       new ReduceAction797(109),
-                       new ReduceAction798(109),
-                       new ReduceAction592(109),
-                       new ReduceAction800(109),
-                       new ReduceAction801(109),
-                       new ReduceAction802(109),
-                       new ReduceAction803(109),
-                       new ReduceAction577(110),
-                       new ReduceAction578(110),
-                       new ReduceAction579(110),
-                       new ReduceAction580(110),
-                       new ReduceAction581(110),
-                       new ReduceAction582(110),
-                       new ReduceAction583(110),
-                       new ReduceAction584(110),
-                       new ReduceAction592(111),
-                       new ReduceAction592(111),
-                       new ReduceAction602(111),
-                       new ReduceAction603(111),
-                       new ReduceAction604(111),
-                       new ReduceAction605(111),
-                       new ReduceAction606(111),
-                       new ReduceAction607(111),
-                       new ReduceAction608(111),
-                       new ReduceAction609(111),
-                       new ReduceAction610(111),
-                       new ReduceAction611(111),
-                       new ReduceAction612(111),
-                       new ReduceAction592(111),
-                       new ReduceAction592(111),
-                       new ReduceAction592(111),
-                       new ReduceAction592(111),
-                       new ReduceAction592(111),
-                       new ReduceAction592(111),
-                       new ReduceAction619(111),
-                       new ReduceAction620(111),
-                       new ReduceAction621(111),
-                       new ReduceAction622(111),
-                       new ReduceAction621(111),
-                       new ReduceAction624(111),
-                       new ReduceAction625(111),
-                       new ReduceAction624(111),
-                       new ReduceAction627(111),
-                       new ReduceAction628(111),
-                       new ReduceAction629(111),
-                       new ReduceAction630(111),
-                       new ReduceAction631(111),
-                       new ReduceAction632(111),
-                       new ReduceAction633(111),
-                       new ReduceAction634(111),
-                       new ReduceAction633(111),
-                       new ReduceAction636(111),
-                       new ReduceAction637(111),
-                       new ReduceAction636(111),
-                       new ReduceAction639(111),
-                       new ReduceAction650(112),
-                       new ReduceAction651(112),
-                       new ReduceAction652(112),
-                       new ReduceAction653(112),
-                       new ReduceAction652(112),
-                       new ReduceAction655(112),
-                       new ReduceAction656(112),
-                       new ReduceAction655(112),
-                       new ReduceAction658(112),
-                       new ReduceAction659(112),
-                       new ReduceAction660(112),
-                       new ReduceAction661(112),
-                       new ReduceAction660(112),
-                       new ReduceAction663(112),
-                       new ReduceAction664(112),
-                       new ReduceAction663(112),
-                       new ReduceAction666(112),
-                       new ReduceAction667(112),
-                       new ReduceAction668(112),
-                       new ReduceAction669(112),
-                       new ReduceAction670(112),
-                       new ReduceAction669(112),
-                       new ReduceAction672(112),
-                       new ReduceAction673(112),
-                       new ReduceAction672(112),
-                       new ReduceAction675(112),
-                       new ReduceAction676(112),
-                       new ReduceAction677(112),
-                       new ReduceAction678(112),
-                       new ReduceAction677(112),
-                       new ReduceAction680(112),
-                       new ReduceAction681(112),
-                       new ReduceAction680(112),
-                       new ReduceAction683(112),
-                       new ReduceAction592(113),
-                       new ReduceAction592(114),
-                       new ReduceAction710(114),
-                       new ReduceAction592(115),
-                       new ReduceAction712(115),
-                       new ReduceAction713(115),
-                       new ReduceAction714(115),
-                       new ReduceAction715(115),
-                       new ReduceAction592(116),
-                       new ReduceAction717(116),
-                       new ReduceAction592(117),
-                       new ReduceAction719(117),
-                       new ReduceAction720(117),
-                       new ReduceAction721(117),
-                       new ReduceAction722(117),
-                       new ReduceAction723(117),
-                       new ReduceAction724(117),
-                       new ReduceAction725(117),
-                       new ReduceAction726(117),
-                       new ReduceAction727(117),
-                       new ReduceAction728(117),
-                       new ReduceAction729(117),
-                       new ReduceAction592(118),
-                       new ReduceAction731(118),
-                       new ReduceAction732(118),
-                       new ReduceAction592(119),
-                       new ReduceAction734(119),
-                       new ReduceAction735(119),
-                       new ReduceAction736(119),
-                       new ReduceAction592(120),
-                       new ReduceAction738(120),
-                       new ReduceAction739(120),
-                       new ReduceAction592(121),
-                       new ReduceAction741(121),
-                       new ReduceAction742(121),
-                       new ReduceAction743(121),
-                       new ReduceAction744(121),
-                       new ReduceAction745(121),
-                       new ReduceAction744(121),
-                       new ReduceAction747(121),
-                       new ReduceAction748(121),
-                       new ReduceAction747(121),
-                       new ReduceAction750(122),
-                       new ReduceAction751(122),
-                       new ReduceAction752(122),
-                       new ReduceAction753(122),
-                       new ReduceAction752(122),
-                       new ReduceAction755(122),
-                       new ReduceAction756(122),
-                       new ReduceAction755(122),
-                       new ReduceAction619(122),
-                       new ReduceAction620(122),
-                       new ReduceAction621(122),
-                       new ReduceAction622(122),
-                       new ReduceAction621(122),
-                       new ReduceAction624(122),
-                       new ReduceAction625(122),
-                       new ReduceAction624(122),
-                       new ReduceAction627(122),
-                       new ReduceAction628(122),
-                       new ReduceAction629(122),
-                       new ReduceAction630(122),
-                       new ReduceAction631(122),
-                       new ReduceAction632(122),
-                       new ReduceAction772(122),
-                       new ReduceAction773(122),
-                       new ReduceAction774(122),
-                       new ReduceAction775(122),
-                       new ReduceAction774(122),
-                       new ReduceAction783(122),
-                       new ReduceAction784(122),
-                       new ReduceAction785(122),
-                       new ReduceAction786(122),
-                       new ReduceAction787(122),
-                       new ReduceAction788(122),
-                       new ReduceAction789(122),
-                       new ReduceAction790(122),
-                       new ReduceAction791(122),
-                       new ReduceAction792(122),
-                       new ReduceAction793(122),
-                       new ReduceAction794(122),
-                       new ReduceAction795(122),
-                       new ReduceAction796(122),
-                       new ReduceAction797(122),
-                       new ReduceAction798(122),
-                       new ReduceAction592(122),
-                       new ReduceAction802(122),
-                       new ReduceAction803(122),
-                       new ReduceAction813(123),
-                       new ReduceAction814(123),
-                       new ReduceAction815(124),
-                       new ReduceAction816(124),
-                       new ReduceAction829(125),
-                       new ReduceAction830(125),
-                       new ReduceAction832(126),
-                       new ReduceAction833(126),
-                       new ReduceAction833(126),
-                       new ReduceAction577(127),
-                       new ReduceAction578(127),
-                       new ReduceAction579(127),
-                       new ReduceAction580(127),
-                       new ReduceAction592(128),
-                       new ReduceAction592(129),
-                       new ReduceAction710(129),
-                       new ReduceAction592(130),
-                       new ReduceAction712(130),
-                       new ReduceAction713(130),
-                       new ReduceAction714(130),
-                       new ReduceAction715(130),
-                       new ReduceAction592(131),
-                       new ReduceAction717(131),
-                       new ReduceAction592(132),
-                       new ReduceAction719(132),
-                       new ReduceAction720(132),
-                       new ReduceAction721(132),
-                       new ReduceAction722(132),
-                       new ReduceAction723(132),
-                       new ReduceAction724(132),
-                       new ReduceAction725(132),
-                       new ReduceAction726(132),
-                       new ReduceAction727(132),
-                       new ReduceAction728(132),
-                       new ReduceAction729(132),
-                       new ReduceAction592(133),
-                       new ReduceAction731(133),
-                       new ReduceAction732(133),
-                       new ReduceAction592(134),
-                       new ReduceAction734(134),
-                       new ReduceAction735(134),
-                       new ReduceAction736(134),
-                       new ReduceAction592(135),
-                       new ReduceAction738(135),
-                       new ReduceAction739(135),
-                       new ReduceAction592(136),
-                       new ReduceAction741(136),
-                       new ReduceAction1227(136),
-                       new ReduceAction1228(136),
-                       new ReduceAction742(136),
-                       new ReduceAction1228(136),
-                       new ReduceAction1231(137),
-                       new ReduceAction1232(137),
-                       new ReduceAction750(137),
-                       new ReduceAction1232(137),
-                       new ReduceAction1235(137),
-                       new ReduceAction1236(137),
-                       new ReduceAction619(137),
-                       new ReduceAction1236(137),
-                       new ReduceAction627(137),
-                       new ReduceAction628(137),
-                       new ReduceAction629(137),
-                       new ReduceAction630(137),
-                       new ReduceAction1243(137),
-                       new ReduceAction773(137),
-                       new ReduceAction774(137),
-                       new ReduceAction775(137),
-                       new ReduceAction774(137),
-                       new ReduceAction783(137),
-                       new ReduceAction784(137),
-                       new ReduceAction785(137),
-                       new ReduceAction786(137),
-                       new ReduceAction787(137),
-                       new ReduceAction788(137),
-                       new ReduceAction789(137),
-                       new ReduceAction790(137),
-                       new ReduceAction791(137),
-                       new ReduceAction792(137),
-                       new ReduceAction793(137),
-                       new ReduceAction794(137),
-                       new ReduceAction795(137),
-                       new ReduceAction796(137),
-                       new ReduceAction797(137),
-                       new ReduceAction798(137),
-                       new ReduceAction592(137),
-                       new ReduceAction802(137),
-                       new ReduceAction803(137),
-                       new ReduceAction1267(138),
-                       new ReduceAction1268(138),
-                       new ReduceAction589(139),
-                       new ReduceAction590(139),
-                       new ReduceAction591(139),
-                       new ReduceAction592(139),
-                       new ReduceAction592(140),
-                       new ReduceAction592(140),
-                       new ReduceAction602(140),
-                       new ReduceAction603(140),
-                       new ReduceAction604(140),
-                       new ReduceAction605(140),
-                       new ReduceAction606(140),
-                       new ReduceAction607(140),
-                       new ReduceAction608(140),
-                       new ReduceAction609(140),
-                       new ReduceAction610(140),
-                       new ReduceAction611(140),
-                       new ReduceAction612(140),
-                       new ReduceAction592(140),
-                       new ReduceAction592(140),
-                       new ReduceAction592(140),
-                       new ReduceAction592(140),
-                       new ReduceAction592(140),
-                       new ReduceAction592(140),
-                       new ReduceAction619(140),
-                       new ReduceAction620(140),
-                       new ReduceAction621(140),
-                       new ReduceAction622(140),
-                       new ReduceAction621(140),
-                       new ReduceAction624(140),
-                       new ReduceAction625(140),
-                       new ReduceAction624(140),
-                       new ReduceAction627(140),
-                       new ReduceAction628(140),
-                       new ReduceAction629(140),
-                       new ReduceAction630(140),
-                       new ReduceAction631(140),
-                       new ReduceAction632(140),
-                       new ReduceAction633(140),
-                       new ReduceAction634(140),
-                       new ReduceAction633(140),
-                       new ReduceAction636(140),
-                       new ReduceAction637(140),
-                       new ReduceAction636(140),
-                       new ReduceAction639(140),
-                       new ReduceAction641(141),
-                       new ReduceAction642(142),
-                       new ReduceAction643(142),
-                       new ReduceAction644(142),
-                       new ReduceAction645(142),
-                       new ReduceAction646(142),
-                       new ReduceAction647(142),
-                       new ReduceAction648(142),
-                       new ReduceAction649(142),
-                       new ReduceAction650(143),
-                       new ReduceAction651(143),
-                       new ReduceAction652(143),
-                       new ReduceAction653(143),
-                       new ReduceAction652(143),
-                       new ReduceAction655(143),
-                       new ReduceAction656(143),
-                       new ReduceAction655(143),
-                       new ReduceAction658(143),
-                       new ReduceAction659(143),
-                       new ReduceAction660(143),
-                       new ReduceAction661(143),
-                       new ReduceAction660(143),
-                       new ReduceAction663(143),
-                       new ReduceAction664(143),
-                       new ReduceAction663(143),
-                       new ReduceAction666(143),
-                       new ReduceAction667(143),
-                       new ReduceAction668(143),
-                       new ReduceAction669(143),
-                       new ReduceAction670(143),
-                       new ReduceAction669(143),
-                       new ReduceAction672(143),
-                       new ReduceAction673(143),
-                       new ReduceAction672(143),
-                       new ReduceAction675(143),
-                       new ReduceAction676(143),
-                       new ReduceAction677(143),
-                       new ReduceAction678(143),
-                       new ReduceAction677(143),
-                       new ReduceAction680(143),
-                       new ReduceAction681(143),
-                       new ReduceAction680(143),
-                       new ReduceAction683(143),
-                       new ReduceAction686(144),
-                       new ReduceAction687(144),
-                       new ReduceAction688(145),
-                       new ReduceAction695(146),
-                       new ReduceAction696(146),
-                       new ReduceAction697(147),
-                       new ReduceAction698(147),
-                       new ReduceAction699(148),
-                       new ReduceAction700(148),
-                       new ReduceAction701(148),
-                       new ReduceAction702(148),
-                       new ReduceAction703(149),
-                       new ReduceAction704(149),
-                       new ReduceAction592(150),
-                       new ReduceAction592(151),
-                       new ReduceAction592(152),
-                       new ReduceAction592(152),
-                       new ReduceAction602(152),
-                       new ReduceAction603(152),
-                       new ReduceAction604(152),
-                       new ReduceAction605(152),
-                       new ReduceAction606(152),
-                       new ReduceAction607(152),
-                       new ReduceAction608(152),
-                       new ReduceAction609(152),
-                       new ReduceAction610(152),
-                       new ReduceAction611(152),
-                       new ReduceAction612(152),
-                       new ReduceAction592(152),
-                       new ReduceAction592(152),
-                       new ReduceAction592(152),
-                       new ReduceAction592(152),
-                       new ReduceAction592(152),
-                       new ReduceAction592(152),
-                       new ReduceAction619(152),
-                       new ReduceAction620(152),
-                       new ReduceAction621(152),
-                       new ReduceAction622(152),
-                       new ReduceAction621(152),
-                       new ReduceAction624(152),
-                       new ReduceAction625(152),
-                       new ReduceAction624(152),
-                       new ReduceAction627(152),
-                       new ReduceAction628(152),
-                       new ReduceAction629(152),
-                       new ReduceAction630(152),
-                       new ReduceAction631(152),
-                       new ReduceAction632(152),
-                       new ReduceAction633(152),
-                       new ReduceAction634(152),
-                       new ReduceAction633(152),
-                       new ReduceAction636(152),
-                       new ReduceAction637(152),
-                       new ReduceAction636(152),
-                       new ReduceAction639(152),
-                       new ReduceAction650(153),
-                       new ReduceAction651(153),
-                       new ReduceAction652(153),
-                       new ReduceAction653(153),
-                       new ReduceAction652(153),
-                       new ReduceAction655(153),
-                       new ReduceAction656(153),
-                       new ReduceAction655(153),
-                       new ReduceAction658(153),
-                       new ReduceAction659(153),
-                       new ReduceAction660(153),
-                       new ReduceAction661(153),
-                       new ReduceAction660(153),
-                       new ReduceAction663(153),
-                       new ReduceAction664(153),
-                       new ReduceAction663(153),
-                       new ReduceAction666(153),
-                       new ReduceAction667(153),
-                       new ReduceAction668(153),
-                       new ReduceAction669(153),
-                       new ReduceAction670(153),
-                       new ReduceAction669(153),
-                       new ReduceAction672(153),
-                       new ReduceAction673(153),
-                       new ReduceAction672(153),
-                       new ReduceAction675(153),
-                       new ReduceAction676(153),
-                       new ReduceAction677(153),
-                       new ReduceAction678(153),
-                       new ReduceAction677(153),
-                       new ReduceAction680(153),
-                       new ReduceAction681(153),
-                       new ReduceAction680(153),
-                       new ReduceAction683(153),
-                       new ReduceAction592(154),
-                       new ReduceAction592(155),
-                       new ReduceAction589(156),
-                       new ReduceAction590(156),
-                       new ReduceAction591(156),
-                       new ReduceAction589(157),
-                       new ReduceAction590(157),
-                       new ReduceAction591(157),
-                       new ReduceAction592(158),
-                       new ReduceAction592(158),
-                       new ReduceAction602(158),
-                       new ReduceAction603(158),
-                       new ReduceAction604(158),
-                       new ReduceAction605(158),
-                       new ReduceAction606(158),
-                       new ReduceAction607(158),
-                       new ReduceAction608(158),
-                       new ReduceAction609(158),
-                       new ReduceAction610(158),
-                       new ReduceAction611(158),
-                       new ReduceAction612(158),
-                       new ReduceAction592(158),
-                       new ReduceAction592(158),
-                       new ReduceAction592(158),
-                       new ReduceAction592(158),
-                       new ReduceAction592(158),
-                       new ReduceAction639(158),
-                       new ReduceAction592(159),
-                       new ReduceAction592(159),
-                       new ReduceAction602(159),
-                       new ReduceAction603(159),
-                       new ReduceAction604(159),
-                       new ReduceAction605(159),
-                       new ReduceAction606(159),
-                       new ReduceAction607(159),
-                       new ReduceAction608(159),
-                       new ReduceAction609(159),
-                       new ReduceAction610(159),
-                       new ReduceAction611(159),
-                       new ReduceAction612(159),
-                       new ReduceAction592(159),
-                       new ReduceAction592(159),
-                       new ReduceAction592(159),
-                       new ReduceAction592(159),
-                       new ReduceAction592(159),
-                       new ReduceAction639(159),
-                       new ReduceAction592(160),
-                       new ReduceAction592(160),
-                       new ReduceAction602(160),
-                       new ReduceAction603(160),
-                       new ReduceAction604(160),
-                       new ReduceAction605(160),
-                       new ReduceAction606(160),
-                       new ReduceAction607(160),
-                       new ReduceAction608(160),
-                       new ReduceAction609(160),
-                       new ReduceAction610(160),
-                       new ReduceAction611(160),
-                       new ReduceAction612(160),
-                       new ReduceAction592(160),
-                       new ReduceAction592(160),
-                       new ReduceAction592(160),
-                       new ReduceAction592(160),
-                       new ReduceAction592(160),
-                       new ReduceAction639(160),
-                       new ReduceAction592(161),
-                       new ReduceAction592(161),
-                       new ReduceAction602(161),
-                       new ReduceAction603(161),
-                       new ReduceAction604(161),
-                       new ReduceAction605(161),
-                       new ReduceAction606(161),
-                       new ReduceAction607(161),
-                       new ReduceAction608(161),
-                       new ReduceAction609(161),
-                       new ReduceAction610(161),
-                       new ReduceAction611(161),
-                       new ReduceAction612(161),
-                       new ReduceAction592(161),
-                       new ReduceAction592(161),
-                       new ReduceAction592(161),
-                       new ReduceAction592(161),
-                       new ReduceAction592(161),
-                       new ReduceAction639(161),
-                       new ReduceAction592(162),
-                       new ReduceAction710(162),
-                       new ReduceAction592(163),
-                       new ReduceAction712(163),
-                       new ReduceAction713(163),
-                       new ReduceAction714(163),
-                       new ReduceAction715(163),
-                       new ReduceAction592(164),
-                       new ReduceAction717(164),
-                       new ReduceAction592(165),
-                       new ReduceAction719(165),
-                       new ReduceAction721(165),
-                       new ReduceAction722(165),
-                       new ReduceAction723(165),
-                       new ReduceAction724(165),
-                       new ReduceAction725(165),
-                       new ReduceAction726(165),
-                       new ReduceAction727(165),
-                       new ReduceAction728(165),
-                       new ReduceAction729(165),
-                       new ReduceAction592(166),
-                       new ReduceAction710(166),
-                       new ReduceAction592(167),
-                       new ReduceAction712(167),
-                       new ReduceAction713(167),
-                       new ReduceAction714(167),
-                       new ReduceAction715(167),
-                       new ReduceAction592(168),
-                       new ReduceAction717(168),
-                       new ReduceAction592(169),
-                       new ReduceAction719(169),
-                       new ReduceAction721(169),
-                       new ReduceAction722(169),
-                       new ReduceAction723(169),
-                       new ReduceAction724(169),
-                       new ReduceAction725(169),
-                       new ReduceAction726(169),
-                       new ReduceAction727(169),
-                       new ReduceAction728(169),
-                       new ReduceAction729(169),
-                       new ReduceAction592(170),
-                       new ReduceAction710(170),
-                       new ReduceAction592(171),
-                       new ReduceAction712(171),
-                       new ReduceAction713(171),
-                       new ReduceAction714(171),
-                       new ReduceAction715(171),
-                       new ReduceAction592(172),
-                       new ReduceAction717(172),
-                       new ReduceAction592(173),
-                       new ReduceAction719(173),
-                       new ReduceAction721(173),
-                       new ReduceAction722(173),
-                       new ReduceAction723(173),
-                       new ReduceAction724(173),
-                       new ReduceAction725(173),
-                       new ReduceAction726(173),
-                       new ReduceAction727(173),
-                       new ReduceAction728(173),
-                       new ReduceAction729(173),
-                       new ReduceAction592(174),
-                       new ReduceAction710(174),
-                       new ReduceAction592(175),
-                       new ReduceAction712(175),
-                       new ReduceAction713(175),
-                       new ReduceAction714(175),
-                       new ReduceAction715(175),
-                       new ReduceAction592(176),
-                       new ReduceAction717(176),
-                       new ReduceAction592(177),
-                       new ReduceAction719(177),
-                       new ReduceAction721(177),
-                       new ReduceAction722(177),
-                       new ReduceAction723(177),
-                       new ReduceAction724(177),
-                       new ReduceAction725(177),
-                       new ReduceAction726(177),
-                       new ReduceAction727(177),
-                       new ReduceAction728(177),
-                       new ReduceAction729(177),
-                       new ReduceAction823(178),
-                       new ReduceAction824(178),
-                       new ReduceAction825(178),
-                       new ReduceAction826(178),
-                       new ReduceAction827(178),
-                       new ReduceAction836(179),
-                       new ReduceAction837(179),
-                       new ReduceAction838(179),
-                       new ReduceAction837(179),
-                       new ReduceAction848(179),
-                       new ReduceAction849(179),
-                       new ReduceAction850(179),
-                       new ReduceAction849(179),
-                       new ReduceAction1622(180),
-                       new ReduceAction1623(180),
-                       new ReduceAction1624(181),
-                       new ReduceAction1625(181),
-                       new ReduceAction1626(182),
-                       new ReduceAction1627(182),
-                       new ReduceAction1628(183),
-                       new ReduceAction1629(183),
-                       new ReduceAction1630(184),
-                       new ReduceAction1631(184),
-                       new ReduceAction1628(185),
-                       new ReduceAction1629(185),
-                       new ReduceAction1634(186),
-                       new ReduceAction1635(186),
-                       new ReduceAction1636(187),
-                       new ReduceAction1637(187),
-                       new ReduceAction1638(188),
-                       new ReduceAction1639(188),
-                       new ReduceAction585(189),
-                       new ReduceAction1641(189),
-                       new ReduceAction1642(190),
-                       new ReduceAction1643(190),
-                       new ReduceAction1644(191),
-                       new ReduceAction1645(191),
-                       new ReduceAction820(192),
-                       new ReduceAction1647(192),
-                       new ReduceAction820(193),
-                       new ReduceAction1647(193),
-                       new ReduceAction829(194),
-                       new ReduceAction1651(194),
-                       new ReduceAction1642(195),
-                       new ReduceAction1643(195),
-                       new ReduceAction863(196),
-                       new ReduceAction1655(196),
-                       new ReduceAction1656(197),
-                       new ReduceAction1657(197),
-                       new ReduceAction1658(198),
-                       new ReduceAction1659(198),
-                       new ReduceAction820(199),
-                       new ReduceAction1647(199)
+                       new ReduceAction16(1),
+                       new ReduceAction17(2),
+                       new ReduceAction18(2),
+                       new ReduceAction19(3),
+                       new ReduceAction20(3),
+                       new ReduceAction21(4),
+                       new ReduceAction22(4),
+                       new ReduceAction23(4),
+                       new ReduceAction24(5),
+                       new ReduceAction24(5),
+                       new ReduceAction26(6),
+                       new ReduceAction27(6),
+                       new ReduceAction22(7),
+                       new ReduceAction29(7),
+                       new ReduceAction30(8),
+                       new ReduceAction31(8),
+                       new ReduceAction32(8),
+                       new ReduceAction33(8),
+                       new ReduceAction34(8),
+                       new ReduceAction35(9),
+                       new ReduceAction36(9),
+                       new ReduceAction37(9),
+                       new ReduceAction38(10),
+                       new ReduceAction39(11),
+                       new ReduceAction40(11),
+                       new ReduceAction41(12),
+                       new ReduceAction42(13),
+                       new ReduceAction43(13),
+                       new ReduceAction44(13),
+                       new ReduceAction45(14),
+                       new ReduceAction46(15),
+                       new ReduceAction47(15),
+                       new ReduceAction48(15),
+                       new ReduceAction49(15),
+                       new ReduceAction50(15),
+                       new ReduceAction51(15),
+                       new ReduceAction52(15),
+                       new ReduceAction53(15),
+                       new ReduceAction54(15),
+                       new ReduceAction55(15),
+                       new ReduceAction56(15),
+                       new ReduceAction57(15),
+                       new ReduceAction58(15),
+                       new ReduceAction59(15),
+                       new ReduceAction60(15),
+                       new ReduceAction61(15),
+                       new ReduceAction62(15),
+                       new ReduceAction63(15),
+                       new ReduceAction64(15),
+                       new ReduceAction65(15),
+                       new ReduceAction66(15),
+                       new ReduceAction67(15),
+                       new ReduceAction68(15),
+                       new ReduceAction69(15),
+                       new ReduceAction70(15),
+                       new ReduceAction71(15),
+                       new ReduceAction72(15),
+                       new ReduceAction72(15),
+                       new ReduceAction74(16),
+                       new ReduceAction75(16),
+                       new ReduceAction22(16),
+                       new ReduceAction74(17),
+                       new ReduceAction78(17),
+                       new ReduceAction79(18),
+                       new ReduceAction80(18),
+                       new ReduceAction81(18),
+                       new ReduceAction82(18),
+                       new ReduceAction83(18),
+                       new ReduceAction84(19),
+                       new ReduceAction85(19),
+                       new ReduceAction86(19),
+                       new ReduceAction87(19),
+                       new ReduceAction88(19),
+                       new ReduceAction89(19),
+                       new ReduceAction90(19),
+                       new ReduceAction91(19),
+                       new ReduceAction92(19),
+                       new ReduceAction93(19),
+                       new ReduceAction94(19),
+                       new ReduceAction95(19),
+                       new ReduceAction96(19),
+                       new ReduceAction97(19),
+                       new ReduceAction98(19),
+                       new ReduceAction99(19),
+                       new ReduceAction100(19),
+                       new ReduceAction101(19),
+                       new ReduceAction102(19),
+                       new ReduceAction103(19),
+                       new ReduceAction104(19),
+                       new ReduceAction105(19),
+                       new ReduceAction106(19),
+                       new ReduceAction107(20),
+                       new ReduceAction108(20),
+                       new ReduceAction109(20),
+                       new ReduceAction110(20),
+                       new ReduceAction111(21),
+                       new ReduceAction112(21),
+                       new ReduceAction37(21),
+                       new ReduceAction114(22),
+                       new ReduceAction115(23),
+                       new ReduceAction116(23),
+                       new ReduceAction117(23),
+                       new ReduceAction118(23),
+                       new ReduceAction119(23),
+                       new ReduceAction120(24),
+                       new ReduceAction121(24),
+                       new ReduceAction22(24),
+                       new ReduceAction123(25),
+                       new ReduceAction124(26),
+                       new ReduceAction124(26),
+                       new ReduceAction126(26),
+                       new ReduceAction127(27),
+                       new ReduceAction128(27),
+                       new ReduceAction129(27),
+                       new ReduceAction130(28),
+                       new ReduceAction131(28),
+                       new ReduceAction132(28),
+                       new ReduceAction133(28),
+                       new ReduceAction134(28),
+                       new ReduceAction135(28),
+                       new ReduceAction22(29),
+                       new ReduceAction137(29),
+                       new ReduceAction138(30),
+                       new ReduceAction139(31),
+                       new ReduceAction140(31),
+                       new ReduceAction141(32),
+                       new ReduceAction22(32),
+                       new ReduceAction143(33),
+                       new ReduceAction144(34),
+                       new ReduceAction145(34),
+                       new ReduceAction146(34),
+                       new ReduceAction147(34),
+                       new ReduceAction148(35),
+                       new ReduceAction149(35),
+                       new ReduceAction150(36),
+                       new ReduceAction150(37),
+                       new ReduceAction150(38),
+                       new ReduceAction22(38),
+                       new ReduceAction154(39),
+                       new ReduceAction155(39),
+                       new ReduceAction156(39),
+                       new ReduceAction157(39),
+                       new ReduceAction158(40),
+                       new ReduceAction159(40),
+                       new ReduceAction160(41),
+                       new ReduceAction161(41),
+                       new ReduceAction162(42),
+                       new ReduceAction163(42),
+                       new ReduceAction154(43),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction167(44),
+                       new ReduceAction168(44),
+                       new ReduceAction169(44),
+                       new ReduceAction170(44),
+                       new ReduceAction171(44),
+                       new ReduceAction172(44),
+                       new ReduceAction173(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction181(44),
+                       new ReduceAction182(44),
+                       new ReduceAction183(44),
+                       new ReduceAction182(44),
+                       new ReduceAction185(44),
+                       new ReduceAction186(44),
+                       new ReduceAction187(44),
+                       new ReduceAction186(44),
+                       new ReduceAction189(44),
+                       new ReduceAction190(44),
+                       new ReduceAction191(44),
+                       new ReduceAction192(44),
+                       new ReduceAction193(44),
+                       new ReduceAction192(44),
+                       new ReduceAction195(44),
+                       new ReduceAction196(44),
+                       new ReduceAction195(44),
+                       new ReduceAction198(44),
+                       new ReduceAction199(45),
+                       new ReduceAction200(45),
+                       new ReduceAction201(46),
+                       new ReduceAction202(46),
+                       new ReduceAction203(46),
+                       new ReduceAction204(46),
+                       new ReduceAction205(47),
+                       new ReduceAction206(47),
+                       new ReduceAction207(47),
+                       new ReduceAction208(47),
+                       new ReduceAction209(47),
+                       new ReduceAction210(47),
+                       new ReduceAction211(47),
+                       new ReduceAction212(47),
+                       new ReduceAction209(47),
+                       new ReduceAction210(47),
+                       new ReduceAction215(47),
+                       new ReduceAction216(47),
+                       new ReduceAction217(47),
+                       new ReduceAction218(47),
+                       new ReduceAction219(47),
+                       new ReduceAction220(47),
+                       new ReduceAction217(47),
+                       new ReduceAction218(47),
+                       new ReduceAction223(47),
+                       new ReduceAction224(47),
+                       new ReduceAction225(47),
+                       new ReduceAction226(47),
+                       new ReduceAction227(47),
+                       new ReduceAction228(47),
+                       new ReduceAction229(47),
+                       new ReduceAction230(47),
+                       new ReduceAction231(47),
+                       new ReduceAction228(47),
+                       new ReduceAction229(47),
+                       new ReduceAction234(47),
+                       new ReduceAction235(47),
+                       new ReduceAction236(47),
+                       new ReduceAction237(47),
+                       new ReduceAction238(47),
+                       new ReduceAction239(47),
+                       new ReduceAction236(47),
+                       new ReduceAction237(47),
+                       new ReduceAction242(47),
+                       new ReduceAction243(48),
+                       new ReduceAction244(48),
+                       new ReduceAction245(48),
+                       new ReduceAction246(48),
+                       new ReduceAction247(48),
+                       new ReduceAction248(48),
+                       new ReduceAction249(48),
+                       new ReduceAction250(48),
+                       new ReduceAction251(48),
+                       new ReduceAction252(48),
+                       new ReduceAction253(48),
+                       new ReduceAction254(49),
+                       new ReduceAction255(49),
+                       new ReduceAction256(50),
+                       new ReduceAction257(50),
+                       new ReduceAction258(50),
+                       new ReduceAction259(50),
+                       new ReduceAction260(50),
+                       new ReduceAction154(51),
+                       new ReduceAction156(51),
+                       new ReduceAction263(52),
+                       new ReduceAction264(52),
+                       new ReduceAction265(53),
+                       new ReduceAction266(53),
+                       new ReduceAction267(54),
+                       new ReduceAction268(54),
+                       new ReduceAction269(55),
+                       new ReduceAction270(55),
+                       new ReduceAction271(56),
+                       new ReduceAction272(56),
+                       new ReduceAction157(56),
+                       new ReduceAction274(57),
+                       new ReduceAction275(57),
+                       new ReduceAction276(57),
+                       new ReduceAction277(57),
+                       new ReduceAction278(58),
+                       new ReduceAction157(59),
+                       new ReduceAction280(59),
+                       new ReduceAction157(60),
+                       new ReduceAction282(60),
+                       new ReduceAction283(60),
+                       new ReduceAction284(60),
+                       new ReduceAction285(60),
+                       new ReduceAction157(61),
+                       new ReduceAction287(61),
+                       new ReduceAction157(62),
+                       new ReduceAction289(62),
+                       new ReduceAction290(62),
+                       new ReduceAction291(62),
+                       new ReduceAction292(62),
+                       new ReduceAction293(62),
+                       new ReduceAction294(62),
+                       new ReduceAction295(62),
+                       new ReduceAction296(62),
+                       new ReduceAction157(63),
+                       new ReduceAction298(63),
+                       new ReduceAction157(64),
+                       new ReduceAction300(64),
+                       new ReduceAction157(65),
+                       new ReduceAction302(65),
+                       new ReduceAction157(66),
+                       new ReduceAction304(66),
+                       new ReduceAction305(66),
+                       new ReduceAction157(67),
+                       new ReduceAction307(67),
+                       new ReduceAction308(67),
+                       new ReduceAction157(68),
+                       new ReduceAction310(68),
+                       new ReduceAction311(68),
+                       new ReduceAction312(68),
+                       new ReduceAction157(69),
+                       new ReduceAction314(69),
+                       new ReduceAction157(70),
+                       new ReduceAction316(70),
+                       new ReduceAction317(70),
+                       new ReduceAction318(70),
+                       new ReduceAction319(70),
+                       new ReduceAction157(71),
+                       new ReduceAction321(71),
+                       new ReduceAction322(71),
+                       new ReduceAction323(71),
+                       new ReduceAction324(71),
+                       new ReduceAction157(72),
+                       new ReduceAction326(72),
+                       new ReduceAction327(72),
+                       new ReduceAction181(72),
+                       new ReduceAction329(72),
+                       new ReduceAction182(72),
+                       new ReduceAction331(72),
+                       new ReduceAction183(72),
+                       new ReduceAction333(72),
+                       new ReduceAction182(72),
+                       new ReduceAction331(72),
+                       new ReduceAction185(72),
+                       new ReduceAction337(72),
+                       new ReduceAction186(72),
+                       new ReduceAction339(72),
+                       new ReduceAction187(72),
+                       new ReduceAction341(72),
+                       new ReduceAction186(72),
+                       new ReduceAction339(72),
+                       new ReduceAction189(72),
+                       new ReduceAction345(72),
+                       new ReduceAction190(72),
+                       new ReduceAction347(72),
+                       new ReduceAction191(72),
+                       new ReduceAction349(72),
+                       new ReduceAction350(72),
+                       new ReduceAction351(72),
+                       new ReduceAction352(72),
+                       new ReduceAction353(72),
+                       new ReduceAction354(72),
+                       new ReduceAction355(72),
+                       new ReduceAction356(72),
+                       new ReduceAction353(72),
+                       new ReduceAction354(72),
+                       new ReduceAction359(72),
+                       new ReduceAction360(72),
+                       new ReduceAction361(72),
+                       new ReduceAction362(72),
+                       new ReduceAction363(73),
+                       new ReduceAction364(73),
+                       new ReduceAction365(73),
+                       new ReduceAction366(73),
+                       new ReduceAction367(73),
+                       new ReduceAction368(73),
+                       new ReduceAction369(73),
+                       new ReduceAction370(73),
+                       new ReduceAction371(73),
+                       new ReduceAction157(73),
+                       new ReduceAction157(73),
+                       new ReduceAction374(73),
+                       new ReduceAction375(73),
+                       new ReduceAction376(73),
+                       new ReduceAction377(74),
+                       new ReduceAction377(74),
+                       new ReduceAction379(75),
+                       new ReduceAction380(76),
+                       new ReduceAction381(77),
+                       new ReduceAction382(77),
+                       new ReduceAction380(78),
+                       new ReduceAction384(79),
+                       new ReduceAction268(79),
+                       new ReduceAction386(79),
+                       new ReduceAction387(80),
+                       new ReduceAction388(80),
+                       new ReduceAction389(81),
+                       new ReduceAction390(81),
+                       new ReduceAction391(82),
+                       new ReduceAction389(83),
+                       new ReduceAction390(83),
+                       new ReduceAction394(84),
+                       new ReduceAction395(85),
+                       new ReduceAction396(86),
+                       new ReduceAction397(86),
+                       new ReduceAction398(87),
+                       new ReduceAction22(87),
+                       new ReduceAction400(88),
+                       new ReduceAction401(88),
+                       new ReduceAction402(89),
+                       new ReduceAction403(90),
+                       new ReduceAction404(90),
+                       new ReduceAction400(91),
+                       new ReduceAction401(91),
+                       new ReduceAction407(91),
+                       new ReduceAction157(92),
+                       new ReduceAction409(93),
+                       new ReduceAction402(94),
+                       new ReduceAction411(95),
+                       new ReduceAction412(95),
+                       new ReduceAction413(95),
+                       new ReduceAction414(95),
+                       new ReduceAction415(95),
+                       new ReduceAction416(96),
+                       new ReduceAction417(96),
+                       new ReduceAction418(96),
+                       new ReduceAction419(96),
+                       new ReduceAction420(96),
+                       new ReduceAction381(97),
+                       new ReduceAction382(97),
+                       new ReduceAction380(98),
+                       new ReduceAction424(99),
+                       new ReduceAction157(99),
+                       new ReduceAction157(99),
+                       new ReduceAction427(99),
+                       new ReduceAction428(99),
+                       new ReduceAction429(99),
+                       new ReduceAction430(100),
+                       new ReduceAction431(100),
+                       new ReduceAction432(100),
+                       new ReduceAction433(101),
+                       new ReduceAction434(101),
+                       new ReduceAction433(102),
+                       new ReduceAction436(102),
+                       new ReduceAction434(102),
+                       new ReduceAction438(102),
+                       new ReduceAction439(103),
+                       new ReduceAction440(104),
+                       new ReduceAction390(105),
+                       new ReduceAction442(105),
+                       new ReduceAction443(106),
+                       new ReduceAction444(107),
+                       new ReduceAction445(107),
+                       new ReduceAction446(108),
+                       new ReduceAction447(108),
+                       new ReduceAction448(109),
+                       new ReduceAction449(109),
+                       new ReduceAction450(109),
+                       new ReduceAction451(109),
+                       new ReduceAction452(110),
+                       new ReduceAction453(110),
+                       new ReduceAction454(110),
+                       new ReduceAction22(110),
+                       new ReduceAction456(111),
+                       new ReduceAction457(111),
+                       new ReduceAction458(111),
+                       new ReduceAction457(111),
+                       new ReduceAction460(112),
+                       new ReduceAction461(112),
+                       new ReduceAction462(112),
+                       new ReduceAction461(112),
+                       new ReduceAction464(113),
+                       new ReduceAction465(114),
+                       new ReduceAction22(115),
+                       new ReduceAction467(115),
+                       new ReduceAction468(116),
+                       new ReduceAction468(116),
+                       new ReduceAction470(117),
+                       new ReduceAction471(117),
+                       new ReduceAction23(117),
+                       new ReduceAction22(118),
+                       new ReduceAction474(118),
+                       new ReduceAction475(119),
+                       new ReduceAction476(119),
+                       new ReduceAction468(119),
+                       new ReduceAction46(120),
+                       new ReduceAction47(120),
+                       new ReduceAction48(120),
+                       new ReduceAction55(120),
+                       new ReduceAction56(120),
+                       new ReduceAction74(121),
+                       new ReduceAction75(121),
+                       new ReduceAction84(122),
+                       new ReduceAction85(122),
+                       new ReduceAction86(122),
+                       new ReduceAction87(122),
+                       new ReduceAction88(122),
+                       new ReduceAction89(122),
+                       new ReduceAction90(122),
+                       new ReduceAction91(122),
+                       new ReduceAction92(122),
+                       new ReduceAction93(122),
+                       new ReduceAction94(122),
+                       new ReduceAction95(122),
+                       new ReduceAction96(122),
+                       new ReduceAction97(122),
+                       new ReduceAction98(122),
+                       new ReduceAction99(122),
+                       new ReduceAction100(122),
+                       new ReduceAction101(122),
+                       new ReduceAction102(122),
+                       new ReduceAction103(122),
+                       new ReduceAction104(122),
+                       new ReduceAction105(122),
+                       new ReduceAction460(123),
+                       new ReduceAction461(123),
+                       new ReduceAction462(123),
+                       new ReduceAction461(123),
+                       new ReduceAction144(124),
+                       new ReduceAction145(124),
+                       new ReduceAction157(125),
+                       new ReduceAction280(125),
+                       new ReduceAction157(126),
+                       new ReduceAction282(126),
+                       new ReduceAction283(126),
+                       new ReduceAction284(126),
+                       new ReduceAction285(126),
+                       new ReduceAction157(127),
+                       new ReduceAction287(127),
+                       new ReduceAction157(128),
+                       new ReduceAction289(128),
+                       new ReduceAction290(128),
+                       new ReduceAction291(128),
+                       new ReduceAction292(128),
+                       new ReduceAction293(128),
+                       new ReduceAction294(128),
+                       new ReduceAction295(128),
+                       new ReduceAction296(128),
+                       new ReduceAction157(129),
+                       new ReduceAction298(129),
+                       new ReduceAction157(130),
+                       new ReduceAction300(130),
+                       new ReduceAction157(131),
+                       new ReduceAction302(131),
+                       new ReduceAction157(132),
+                       new ReduceAction304(132),
+                       new ReduceAction305(132),
+                       new ReduceAction157(133),
+                       new ReduceAction307(133),
+                       new ReduceAction308(133),
+                       new ReduceAction157(134),
+                       new ReduceAction310(134),
+                       new ReduceAction311(134),
+                       new ReduceAction312(134),
+                       new ReduceAction157(135),
+                       new ReduceAction314(135),
+                       new ReduceAction157(136),
+                       new ReduceAction316(136),
+                       new ReduceAction317(136),
+                       new ReduceAction318(136),
+                       new ReduceAction319(136),
+                       new ReduceAction157(137),
+                       new ReduceAction321(137),
+                       new ReduceAction322(137),
+                       new ReduceAction323(137),
+                       new ReduceAction324(137),
+                       new ReduceAction157(138),
+                       new ReduceAction326(138),
+                       new ReduceAction327(138),
+                       new ReduceAction181(138),
+                       new ReduceAction185(138),
+                       new ReduceAction329(138),
+                       new ReduceAction337(138),
+                       new ReduceAction182(138),
+                       new ReduceAction186(138),
+                       new ReduceAction331(138),
+                       new ReduceAction339(138),
+                       new ReduceAction183(138),
+                       new ReduceAction187(138),
+                       new ReduceAction333(138),
+                       new ReduceAction341(138),
+                       new ReduceAction182(138),
+                       new ReduceAction186(138),
+                       new ReduceAction331(138),
+                       new ReduceAction339(138),
+                       new ReduceAction189(138),
+                       new ReduceAction345(138),
+                       new ReduceAction190(138),
+                       new ReduceAction191(138),
+                       new ReduceAction347(138),
+                       new ReduceAction349(138),
+                       new ReduceAction351(138),
+                       new ReduceAction352(138),
+                       new ReduceAction353(138),
+                       new ReduceAction354(138),
+                       new ReduceAction355(138),
+                       new ReduceAction356(138),
+                       new ReduceAction353(138),
+                       new ReduceAction354(138),
+                       new ReduceAction359(138),
+                       new ReduceAction360(138),
+                       new ReduceAction361(138),
+                       new ReduceAction362(138),
+                       new ReduceAction363(139),
+                       new ReduceAction364(139),
+                       new ReduceAction365(139),
+                       new ReduceAction366(139),
+                       new ReduceAction367(139),
+                       new ReduceAction368(139),
+                       new ReduceAction369(139),
+                       new ReduceAction370(139),
+                       new ReduceAction371(139),
+                       new ReduceAction157(139),
+                       new ReduceAction157(139),
+                       new ReduceAction144(140),
+                       new ReduceAction145(140),
+                       new ReduceAction146(140),
+                       new ReduceAction147(140),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction167(141),
+                       new ReduceAction168(141),
+                       new ReduceAction169(141),
+                       new ReduceAction170(141),
+                       new ReduceAction171(141),
+                       new ReduceAction172(141),
+                       new ReduceAction173(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction181(141),
+                       new ReduceAction182(141),
+                       new ReduceAction183(141),
+                       new ReduceAction182(141),
+                       new ReduceAction185(141),
+                       new ReduceAction186(141),
+                       new ReduceAction187(141),
+                       new ReduceAction186(141),
+                       new ReduceAction189(141),
+                       new ReduceAction190(141),
+                       new ReduceAction191(141),
+                       new ReduceAction192(141),
+                       new ReduceAction193(141),
+                       new ReduceAction192(141),
+                       new ReduceAction195(141),
+                       new ReduceAction196(141),
+                       new ReduceAction195(141),
+                       new ReduceAction198(141),
+                       new ReduceAction205(142),
+                       new ReduceAction206(142),
+                       new ReduceAction207(142),
+                       new ReduceAction208(142),
+                       new ReduceAction209(142),
+                       new ReduceAction210(142),
+                       new ReduceAction211(142),
+                       new ReduceAction212(142),
+                       new ReduceAction209(142),
+                       new ReduceAction210(142),
+                       new ReduceAction215(142),
+                       new ReduceAction216(142),
+                       new ReduceAction217(142),
+                       new ReduceAction218(142),
+                       new ReduceAction219(142),
+                       new ReduceAction220(142),
+                       new ReduceAction217(142),
+                       new ReduceAction218(142),
+                       new ReduceAction223(142),
+                       new ReduceAction224(142),
+                       new ReduceAction225(142),
+                       new ReduceAction226(142),
+                       new ReduceAction227(142),
+                       new ReduceAction228(142),
+                       new ReduceAction229(142),
+                       new ReduceAction230(142),
+                       new ReduceAction231(142),
+                       new ReduceAction228(142),
+                       new ReduceAction229(142),
+                       new ReduceAction234(142),
+                       new ReduceAction235(142),
+                       new ReduceAction236(142),
+                       new ReduceAction237(142),
+                       new ReduceAction238(142),
+                       new ReduceAction239(142),
+                       new ReduceAction236(142),
+                       new ReduceAction237(142),
+                       new ReduceAction242(142),
+                       new ReduceAction157(143),
+                       new ReduceAction280(143),
+                       new ReduceAction157(144),
+                       new ReduceAction282(144),
+                       new ReduceAction283(144),
+                       new ReduceAction284(144),
+                       new ReduceAction285(144),
+                       new ReduceAction157(145),
+                       new ReduceAction287(145),
+                       new ReduceAction157(146),
+                       new ReduceAction289(146),
+                       new ReduceAction290(146),
+                       new ReduceAction291(146),
+                       new ReduceAction292(146),
+                       new ReduceAction293(146),
+                       new ReduceAction294(146),
+                       new ReduceAction295(146),
+                       new ReduceAction296(146),
+                       new ReduceAction157(147),
+                       new ReduceAction298(147),
+                       new ReduceAction157(148),
+                       new ReduceAction300(148),
+                       new ReduceAction157(149),
+                       new ReduceAction302(149),
+                       new ReduceAction157(150),
+                       new ReduceAction304(150),
+                       new ReduceAction305(150),
+                       new ReduceAction157(151),
+                       new ReduceAction307(151),
+                       new ReduceAction308(151),
+                       new ReduceAction157(152),
+                       new ReduceAction310(152),
+                       new ReduceAction311(152),
+                       new ReduceAction312(152),
+                       new ReduceAction157(153),
+                       new ReduceAction314(153),
+                       new ReduceAction157(154),
+                       new ReduceAction316(154),
+                       new ReduceAction317(154),
+                       new ReduceAction318(154),
+                       new ReduceAction319(154),
+                       new ReduceAction157(155),
+                       new ReduceAction321(155),
+                       new ReduceAction322(155),
+                       new ReduceAction323(155),
+                       new ReduceAction324(155),
+                       new ReduceAction157(156),
+                       new ReduceAction326(156),
+                       new ReduceAction327(156),
+                       new ReduceAction181(156),
+                       new ReduceAction329(156),
+                       new ReduceAction182(156),
+                       new ReduceAction331(156),
+                       new ReduceAction183(156),
+                       new ReduceAction333(156),
+                       new ReduceAction182(156),
+                       new ReduceAction331(156),
+                       new ReduceAction185(156),
+                       new ReduceAction337(156),
+                       new ReduceAction186(156),
+                       new ReduceAction339(156),
+                       new ReduceAction187(156),
+                       new ReduceAction341(156),
+                       new ReduceAction186(156),
+                       new ReduceAction339(156),
+                       new ReduceAction189(156),
+                       new ReduceAction345(156),
+                       new ReduceAction190(156),
+                       new ReduceAction347(156),
+                       new ReduceAction191(156),
+                       new ReduceAction349(156),
+                       new ReduceAction350(156),
+                       new ReduceAction351(156),
+                       new ReduceAction352(156),
+                       new ReduceAction353(156),
+                       new ReduceAction354(156),
+                       new ReduceAction355(156),
+                       new ReduceAction356(156),
+                       new ReduceAction353(156),
+                       new ReduceAction354(156),
+                       new ReduceAction359(156),
+                       new ReduceAction360(156),
+                       new ReduceAction361(156),
+                       new ReduceAction362(156),
+                       new ReduceAction363(157),
+                       new ReduceAction364(157),
+                       new ReduceAction365(157),
+                       new ReduceAction366(157),
+                       new ReduceAction367(157),
+                       new ReduceAction368(157),
+                       new ReduceAction369(157),
+                       new ReduceAction370(157),
+                       new ReduceAction371(157),
+                       new ReduceAction157(157),
+                       new ReduceAction396(158),
+                       new ReduceAction397(158),
+                       new ReduceAction398(159),
+                       new ReduceAction22(159),
+                       new ReduceAction400(160),
+                       new ReduceAction400(161),
+                       new ReduceAction381(162),
+                       new ReduceAction382(162),
+                       new ReduceAction424(163),
+                       new ReduceAction157(163),
+                       new ReduceAction157(163),
+                       new ReduceAction427(163),
+                       new ReduceAction428(163),
+                       new ReduceAction144(164),
+                       new ReduceAction145(164),
+                       new ReduceAction157(165),
+                       new ReduceAction280(165),
+                       new ReduceAction157(166),
+                       new ReduceAction282(166),
+                       new ReduceAction283(166),
+                       new ReduceAction284(166),
+                       new ReduceAction285(166),
+                       new ReduceAction157(167),
+                       new ReduceAction287(167),
+                       new ReduceAction157(168),
+                       new ReduceAction289(168),
+                       new ReduceAction290(168),
+                       new ReduceAction291(168),
+                       new ReduceAction292(168),
+                       new ReduceAction293(168),
+                       new ReduceAction294(168),
+                       new ReduceAction295(168),
+                       new ReduceAction296(168),
+                       new ReduceAction157(169),
+                       new ReduceAction298(169),
+                       new ReduceAction157(170),
+                       new ReduceAction300(170),
+                       new ReduceAction157(171),
+                       new ReduceAction302(171),
+                       new ReduceAction157(172),
+                       new ReduceAction304(172),
+                       new ReduceAction305(172),
+                       new ReduceAction157(173),
+                       new ReduceAction307(173),
+                       new ReduceAction308(173),
+                       new ReduceAction157(174),
+                       new ReduceAction310(174),
+                       new ReduceAction311(174),
+                       new ReduceAction312(174),
+                       new ReduceAction157(175),
+                       new ReduceAction314(175),
+                       new ReduceAction157(176),
+                       new ReduceAction316(176),
+                       new ReduceAction317(176),
+                       new ReduceAction318(176),
+                       new ReduceAction319(176),
+                       new ReduceAction157(177),
+                       new ReduceAction321(177),
+                       new ReduceAction322(177),
+                       new ReduceAction836(177),
+                       new ReduceAction157(178),
+                       new ReduceAction838(178),
+                       new ReduceAction839(178),
+                       new ReduceAction840(178),
+                       new ReduceAction841(178),
+                       new ReduceAction842(178),
+                       new ReduceAction181(178),
+                       new ReduceAction329(178),
+                       new ReduceAction841(178),
+                       new ReduceAction842(178),
+                       new ReduceAction189(178),
+                       new ReduceAction345(178),
+                       new ReduceAction849(178),
+                       new ReduceAction850(178),
+                       new ReduceAction351(178),
+                       new ReduceAction352(178),
+                       new ReduceAction353(178),
+                       new ReduceAction354(178),
+                       new ReduceAction355(178),
+                       new ReduceAction356(178),
+                       new ReduceAction353(178),
+                       new ReduceAction354(178),
+                       new ReduceAction359(178),
+                       new ReduceAction360(178),
+                       new ReduceAction361(178),
+                       new ReduceAction362(178),
+                       new ReduceAction363(179),
+                       new ReduceAction364(179),
+                       new ReduceAction365(179),
+                       new ReduceAction366(179),
+                       new ReduceAction367(179),
+                       new ReduceAction368(179),
+                       new ReduceAction369(179),
+                       new ReduceAction370(179),
+                       new ReduceAction371(179),
+                       new ReduceAction157(179),
+                       new ReduceAction873(180),
+                       new ReduceAction874(180),
+                       new ReduceAction154(181),
+                       new ReduceAction155(181),
+                       new ReduceAction156(181),
+                       new ReduceAction157(181),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction167(182),
+                       new ReduceAction168(182),
+                       new ReduceAction169(182),
+                       new ReduceAction170(182),
+                       new ReduceAction171(182),
+                       new ReduceAction172(182),
+                       new ReduceAction173(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction181(182),
+                       new ReduceAction182(182),
+                       new ReduceAction183(182),
+                       new ReduceAction182(182),
+                       new ReduceAction185(182),
+                       new ReduceAction186(182),
+                       new ReduceAction187(182),
+                       new ReduceAction186(182),
+                       new ReduceAction189(182),
+                       new ReduceAction190(182),
+                       new ReduceAction191(182),
+                       new ReduceAction192(182),
+                       new ReduceAction193(182),
+                       new ReduceAction192(182),
+                       new ReduceAction195(182),
+                       new ReduceAction196(182),
+                       new ReduceAction195(182),
+                       new ReduceAction198(182),
+                       new ReduceAction254(183),
+                       new ReduceAction255(183),
+                       new ReduceAction256(184),
+                       new ReduceAction263(185),
+                       new ReduceAction264(185),
+                       new ReduceAction265(186),
+                       new ReduceAction266(186),
+                       new ReduceAction267(187),
+                       new ReduceAction268(187),
+                       new ReduceAction269(188),
+                       new ReduceAction270(188),
+                       new ReduceAction274(189),
+                       new ReduceAction275(189),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction167(190),
+                       new ReduceAction168(190),
+                       new ReduceAction169(190),
+                       new ReduceAction170(190),
+                       new ReduceAction171(190),
+                       new ReduceAction172(190),
+                       new ReduceAction173(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction181(190),
+                       new ReduceAction182(190),
+                       new ReduceAction183(190),
+                       new ReduceAction182(190),
+                       new ReduceAction185(190),
+                       new ReduceAction186(190),
+                       new ReduceAction187(190),
+                       new ReduceAction186(190),
+                       new ReduceAction189(190),
+                       new ReduceAction190(190),
+                       new ReduceAction191(190),
+                       new ReduceAction192(190),
+                       new ReduceAction193(190),
+                       new ReduceAction192(190),
+                       new ReduceAction195(190),
+                       new ReduceAction196(190),
+                       new ReduceAction195(190),
+                       new ReduceAction198(190),
+                       new ReduceAction154(191),
+                       new ReduceAction155(191),
+                       new ReduceAction156(191),
+                       new ReduceAction154(192),
+                       new ReduceAction155(192),
+                       new ReduceAction156(192),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction167(193),
+                       new ReduceAction168(193),
+                       new ReduceAction169(193),
+                       new ReduceAction170(193),
+                       new ReduceAction171(193),
+                       new ReduceAction172(193),
+                       new ReduceAction173(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction198(193),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction167(194),
+                       new ReduceAction168(194),
+                       new ReduceAction169(194),
+                       new ReduceAction170(194),
+                       new ReduceAction171(194),
+                       new ReduceAction172(194),
+                       new ReduceAction173(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction198(194),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction167(195),
+                       new ReduceAction168(195),
+                       new ReduceAction169(195),
+                       new ReduceAction170(195),
+                       new ReduceAction171(195),
+                       new ReduceAction172(195),
+                       new ReduceAction173(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction198(195),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction167(196),
+                       new ReduceAction168(196),
+                       new ReduceAction169(196),
+                       new ReduceAction170(196),
+                       new ReduceAction171(196),
+                       new ReduceAction172(196),
+                       new ReduceAction173(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction198(196),
+                       new ReduceAction430(197),
+                       new ReduceAction432(197),
+                       new ReduceAction1032(198),
+                       new ReduceAction1033(198),
+                       new ReduceAction1034(199),
+                       new ReduceAction1035(199),
+                       new ReduceAction1036(200),
+                       new ReduceAction1037(200),
+                       new ReduceAction1038(201),
+                       new ReduceAction1039(201),
+                       new ReduceAction43(202),
+                       new ReduceAction1041(202),
+                       new ReduceAction1042(203),
+                       new ReduceAction1043(203),
+                       new ReduceAction1044(204),
+                       new ReduceAction1045(204),
+                       new ReduceAction148(205),
+                       new ReduceAction1047(205),
+                       new ReduceAction381(206),
+                       new ReduceAction1049(206),
+                       new ReduceAction381(207),
+                       new ReduceAction1049(207),
+                       new ReduceAction381(208),
+                       new ReduceAction1049(208),
+                       new ReduceAction445(209),
+                       new ReduceAction1055(209),
+                       new ReduceAction403(210),
+                       new ReduceAction1057(210),
+                       new ReduceAction403(211),
+                       new ReduceAction1057(211),
+                       new ReduceAction381(212),
+                       new ReduceAction1049(212),
+                       new ReduceAction381(213),
+                       new ReduceAction1049(213),
+                       new ReduceAction446(214),
+                       new ReduceAction1065(214),
+                       new ReduceAction1066(215),
+                       new ReduceAction1067(215),
+                       new ReduceAction1068(216),
+                       new ReduceAction1069(216)
                )
        end
 end
 
-redef class Prod
-       # Location on the first token after the start of a production
-       # So outside the production for epilon production
-       var _first_location: nullable Location
-end
-
-# Find location of production nodes
-# Uses existing token locations to infer location of productions.
-private class ComputeProdLocationVisitor
-       super Visitor
-       # Currenlty visited productions that need a first token
-       var _need_first_prods: Array[Prod] = new Array[Prod]
-
-       # Already visited epsilon productions that waits something after them
-       var _need_after_epsilons: Array[Prod] = new Array[Prod]
-
-       # Location of the last visited token in the current production
-       var _last_location: nullable Location = null
-
-       redef fun visit(n: ANode)
-       do
-               if n isa Token then
-                       var loc = n.location
-                       _last_location = loc
-
-                       # Add a first token to productions that need one
-                       if not _need_first_prods.is_empty then
-                               for no in _need_first_prods do
-                                       no._first_location = loc
-                               end
-                               _need_first_prods.clear
-                       end
-
-                       # Find location for already visited epsilon production that need one
-                       if not _need_after_epsilons.is_empty then
-                               var loco = new Location(loc.file, loc.line_start, loc.line_start, loc.column_start, loc.column_start) 
-                               for no in _need_after_epsilons do
-                                       no.location = loco
-                               end
-                               _need_after_epsilons.clear
-                       end
-               else
-                       assert n isa Prod
-                       _need_first_prods.add(n)
-
-                       n.visit_all(self)
-
-                       var startl = n._first_location
-                       if startl != null then
-                               # Non-epsilon production
-                               var endl = _last_location
-                               assert endl != null
-
-                               n.location = new Location(startl.file, startl.line_start, endl.line_end, startl.column_start, endl.column_end)
-
-                               if not _need_after_epsilons.is_empty then
-                                       var loc = new Location(endl.file, endl.line_end, endl.line_end, endl.column_end, endl.column_end)
-                                       for no in _need_after_epsilons do
-                                               # Epsilon production that finishes the current non-epsilon production
-                                               no.location = loc
-                                       end
-                                       _need_after_epsilons.clear
-                               end
-                       else
-                               # Epsilon production in the middle or that finishes a parent non-epsilon production
-                               _need_after_epsilons.add(n)
-                       end
-               end
-       end
-
-       init do end
-end
-
-# Each reduca action has its own class, this one is the root of the hierarchy.
-private abstract class ReduceAction
-       fun action(p: Parser) is abstract
-       fun concat(l1, l2 : Array[Object]): Array[Object]
-       do
-               if l1.is_empty then return l2
-               l1.append(l2)
-               return l1
-       end
-       var _goto: Int
-       init(g: Int) do _goto = g
-end
-
 private class ReduceAction0
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pclassdefnode5 = nodearraylist1
+                                       assert pclassdefnode5 isa nullable AClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode4,
-                                               listnode5
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1927,17 +1113,23 @@ private class ReduceAction1
        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 listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
+                                       var pclassdefnode5 = nodearraylist2
+                                       assert pclassdefnode5 isa nullable AClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode4,
-                                               listnode5
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1948,18 +1140,24 @@ private class ReduceAction2
        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 listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
+                                       var pclassdefnode6 = nodearraylist2
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1970,21 +1168,27 @@ private class ReduceAction3
        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 listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1995,18 +1199,24 @@ private class ReduceAction4
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
+                                       var pclassdefnode6 = nodearraylist2
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2017,21 +1227,27 @@ private class ReduceAction5
        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 listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2042,22 +1258,28 @@ private class ReduceAction6
        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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode6,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2068,12 +1290,13 @@ private class ReduceAction7
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var listnode6 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -2082,11 +1305,16 @@ private class ReduceAction7
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode6,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2097,18 +1325,24 @@ private class ReduceAction8
        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 listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode6 = nodearraylist2
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       listnode7 = concat(listnode7, listnode5)
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode4,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2119,21 +1353,27 @@ private class ReduceAction9
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       listnode7 = concat(listnode7, listnode5)
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode4,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2144,22 +1384,28 @@ private class ReduceAction10
        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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode6 = nodearraylist2
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2170,12 +1416,13 @@ private class ReduceAction11
        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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -2183,12 +1430,17 @@ private class ReduceAction11
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2199,22 +1451,28 @@ private class ReduceAction12
        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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist2
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2225,12 +1483,13 @@ private class ReduceAction13
        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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode4 = nodearraylist2
@@ -2238,12 +1497,17 @@ private class ReduceAction13
                                        listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2254,12 +1518,13 @@ private class ReduceAction14
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var listnode6 = new Array[Object]
-                                       var listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
@@ -2268,12 +1533,17 @@ private class ReduceAction14
                                        listnode6 = concat(listnode6, listnode5)
                                        var listnode7 = nodearraylist3
                                        assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa nullable AClassdef
+                                       listnode9 = concat(listnode9, listnode7)
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode6,
-                                               listnode8
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2284,13 +1554,14 @@ private class ReduceAction15
        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 listnode6 = new Array[Object]
-                                       var listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -2301,12 +1572,17 @@ private class ReduceAction15
                                        listnode6 = concat(listnode6, listnode5)
                                        var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode8 = nodearraylist5
+                                       assert pclassdefnode8 isa nullable AClassdef
+                                       listnode9 = concat(listnode9, listnode7)
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode6,
-                                               listnode8
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2317,27 +1593,35 @@ private class ReduceAction16
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist1
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmodulenode5 = nodearraylist4
+                                       assert tkwmodulenode5 isa nullable TKwmodule
+                                       var pmodulenamenode6 = nodearraylist6
+                                       assert pmodulenamenode6 isa nullable AModuleName
+                                       var pannotationsnode7 = nodearraylist7
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode5,
+                                               pmodulenamenode6,
+                                               pannotationsnode7
                                        )
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2346,30 +1630,29 @@ private class ReduceAction17
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode8
+                                       var pvisibilitynode2 = nodearraylist3
+                                       assert pvisibilitynode2 isa nullable AVisibility
+                                       var tkwimportnode3 = nodearraylist4
+                                       assert tkwimportnode3 isa nullable TKwimport
+                                       var pmodulenamenode4 = nodearraylist6
+                                       assert pmodulenamenode4 isa nullable AModuleName
+                                       var pannotationsnode5 = nodearraylist7
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               pmodulenamenode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2378,31 +1661,25 @@ private class ReduceAction18
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode9
+                                       var pvisibilitynode2 = nodearraylist3
+                                       assert pvisibilitynode2 isa nullable AVisibility
+                                       var tkwimportnode3 = nodearraylist4
+                                       assert tkwimportnode3 isa nullable TKwimport
+                                       var tkwendnode4 = nodearraylist6
+                                       assert tkwendnode4 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               tkwendnode4
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2411,34 +1688,9 @@ private class ReduceAction19
        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 listnode5 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
+                                       var pclassdefnode1 = nodearraylist1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2450,28 +1702,15 @@ private class ReduceAction20
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode9
+                                       var pclassdefnode1: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode3
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2480,34 +1719,17 @@ private class ReduceAction21
        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 listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode9
+                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
+                                               listnode3
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2516,35 +1738,7 @@ private class ReduceAction22
        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 listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2553,18268 +1747,34 @@ private class ReduceAction23
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       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 listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction24
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       listnode9 = concat(listnode9, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction25
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       listnode9 = concat(listnode9, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction26
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction27
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction28
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction29
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction30
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode9 = nodearraylist4
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var pclassdefnode8: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode10
-                                       )
-                                       listnode11 = concat(listnode11, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode11.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction31
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       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 listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode9 = nodearraylist5
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var pclassdefnode8: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode10
-                                       )
-                                       listnode11 = concat(listnode11, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode11.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction32
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pclassdefnode5 = nodearraylist1
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode6
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction33
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode6
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction34
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pclassdefnode6 = nodearraylist2
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction35
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction36
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pclassdefnode6 = nodearraylist2
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction37
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction38
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction39
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       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 pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction40
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist2
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       listnode7 = concat(listnode7, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction41
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       listnode7 = concat(listnode7, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction42
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction43
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction44
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction45
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction46
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       listnode9 = concat(listnode9, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction47
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       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 listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       listnode9 = concat(listnode9, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction48
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist1
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist2
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction49
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist3
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction50
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist3
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction51
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist4
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction52
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist3
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction53
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist4
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction54
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist4
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction55
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       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 listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist5
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction56
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist3
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       listnode10 = concat(listnode10, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction57
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist4
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       listnode10 = concat(listnode10, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction58
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist4
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction59
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist5
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction60
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist4
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction61
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist5
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction62
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode9 = nodearraylist4
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var pclassdefnode8: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode10
-                                       )
-                                       var pclassdefnode11 = nodearraylist5
-                                       assert pclassdefnode11 isa nullable AClassdef
-                                       listnode12 = concat(listnode12, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode12.add(pclassdefnode8)
-                                       end
-                                       if pclassdefnode11 != null then
-                                               listnode12.add(pclassdefnode11)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode12
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction63
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       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 listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode9 = nodearraylist5
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var pclassdefnode8: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode10
-                                       )
-                                       var pclassdefnode11 = nodearraylist6
-                                       assert pclassdefnode11 isa nullable AClassdef
-                                       listnode12 = concat(listnode12, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode12.add(pclassdefnode8)
-                                       end
-                                       if pclassdefnode11 != null then
-                                               listnode12.add(pclassdefnode11)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode12
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction64
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwmodulenode3 = nodearraylist2
-                                       assert tkwmodulenode3 isa nullable TKwmodule
-                                       var pmodulenamenode4 = nodearraylist4
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
-                                               pdocnode2,
-                                               tkwmodulenode3,
-                                               pmodulenamenode4,
-                                               null
-                                       )
-                                       node_list = pmoduledeclnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction65
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwmodulenode3 = nodearraylist2
-                                       assert tkwmodulenode3 isa nullable TKwmodule
-                                       var pmodulenamenode4 = nodearraylist4
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pannotationsnode5 = nodearraylist5
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
-                                               pdocnode2,
-                                               tkwmodulenode3,
-                                               pmodulenamenode4,
-                                               pannotationsnode5
-                                       )
-                                       node_list = pmoduledeclnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction66
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var pmodulenamenode4 = nodearraylist5
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               pmodulenamenode4,
-                                               null
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction67
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var pmodulenamenode4 = nodearraylist5
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pannotationsnode5 = nodearraylist6
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               pmodulenamenode4,
-                                               pannotationsnode5
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction68
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var tkwendnode4 = nodearraylist5
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               tkwendnode4
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction69
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var ppropdefnode2 = nodearraylist1
-                                       assert ppropdefnode2 isa nullable APropdef
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
-                                               listnode3
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction70
-       super 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(_goto), node_list)
-       end
-end
-private class ReduceAction71
-       super 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(_goto), node_list)
-       end
-end
-private class ReduceAction73
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist7
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction74
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist8
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction75
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist8
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction76
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction78
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction79
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist10
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction81
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction82
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction83
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction84
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction86
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction87
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction89
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist8
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction90
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist9
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction91
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist9
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction92
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist10
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction94
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist10
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction95
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist11
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction97
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction98
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction99
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction100
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction102
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction103
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction105
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist8
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction106
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction107
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction108
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist10
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction110
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist10
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction111
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist9
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist11
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction113
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction114
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction115
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction116
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction118
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction119
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist12
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction121
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist9
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction122
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist10
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction123
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist10
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction124
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist11
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction126
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist11
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction127
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist10
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist12
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction129
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction130
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction131
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction132
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction134
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction135
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist11
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist13
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction137
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist6
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction138
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction139
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction140
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction142
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction143
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction145
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction146
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction147
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction148
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction150
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction151
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction153
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist7
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction154
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction155
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction156
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction158
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction159
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist10
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction161
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction162
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction163
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction164
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction166
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction167
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction169
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction170
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction171
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction172
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction174
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction175
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist9
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist10
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist12
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction177
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction178
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction179
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction180
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction182
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction183
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist11
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist13
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction185
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction186
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction187
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction188
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist10
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction190
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist10
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction191
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist10
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist11
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist13
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction193
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction194
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction195
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction196
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction198
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction199
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist11
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist12
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist14
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction201
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction202
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction203
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction204
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction206
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction207
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction209
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction210
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction211
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction212
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction214
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction215
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction217
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist7
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction218
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction219
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction220
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction222
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction223
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction225
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist8
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction226
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction227
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction228
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction230
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction231
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist11
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction233
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction234
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction235
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction236
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction238
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction239
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist9
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist12
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction241
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction242
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction243
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction244
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction246
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction247
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist11
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist13
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction249
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction250
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction251
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction252
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction254
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist12
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction255
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist10
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist13
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction257
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction258
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction259
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction260
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist11
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction262
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist11
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction263
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist11
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist12
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist14
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction265
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist6
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction266
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction267
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction268
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction270
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction271
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction273
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist8
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist10
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction274
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction275
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction276
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist10
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist12
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction278
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist10
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist12
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction279
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist11
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist13
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction281
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist7
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist8
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction282
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction283
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction284
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction286
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction287
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist10
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist11
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction289
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist9
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist11
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction290
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction291
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction292
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist11
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist13
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction294
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist11
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist13
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction295
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist12
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist14
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction297
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction298
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction299
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction300
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction302
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist8
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist9
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist12
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction303
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist9
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist10
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist11
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist13
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction305
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction306
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist10
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist12
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction307
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist10
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist12
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction308
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist11
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist13
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction310
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist10
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist11
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist13
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction311
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist11
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist12
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist14
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction313
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction314
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction315
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction316
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist10
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist11
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction318
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist9
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist10
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist11
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist13
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction319
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist10
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist11
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist12
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist14
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction321
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction322
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist11
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist13
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction323
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist11
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist13
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction324
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist12
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist14
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction326
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist7
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist8
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist10
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist11
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist12
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist14
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction327
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist15 = p.pop
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist8
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist9
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist10
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist11
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist12
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist13
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist15
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction329
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwclassnode2 = nodearraylist1
-                                       assert tkwclassnode2 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
-                                               tkwclassnode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction330
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwabstractnode2 = nodearraylist1
-                                       assert tkwabstractnode2 isa nullable TKwabstract
-                                       var tkwclassnode3 = nodearraylist2
-                                       assert tkwclassnode3 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
-                                               tkwabstractnode2,
-                                               tkwclassnode3
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction331
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwinterfacenode2 = nodearraylist1
-                                       assert tkwinterfacenode2 isa nullable TKwinterface
-                                       var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
-                                               tkwinterfacenode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction332
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwenumnode2 = nodearraylist1
-                                       assert tkwenumnode2 isa nullable TKwenum
-                                       var pclasskindnode1: nullable AEnumClasskind = new AEnumClasskind.init_aenumclasskind(
-                                               tkwenumnode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction333
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwexternnode2 = nodearraylist1
-                                       assert tkwexternnode2 isa nullable TKwextern
-                                       var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
-                                               tkwexternnode2,
-                                               null
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction334
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwexternnode2 = nodearraylist1
-                                       assert tkwexternnode2 isa nullable TKwextern
-                                       var tkwclassnode3 = nodearraylist2
-                                       assert tkwclassnode3 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
-                                               tkwexternnode2,
-                                               tkwclassnode3
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction335
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction336
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       var listnode2 = nodearraylist4
-                                       assert listnode2 isa Array[Object]
-                                       if pformaldefnode1 != null then
-                                               listnode3.add(pformaldefnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction337
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pformaldefnode1 = nodearraylist3
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction338
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction339
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pannotationsnode4 = nodearraylist2
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               null,
-                                               pannotationsnode4
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction340
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3,
-                                               null
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction341
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode4 = nodearraylist2
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3,
-                                               pannotationsnode4
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction342
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwsupernode2 = nodearraylist2
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwsupernode2,
-                                               ptypenode3,
-                                               null
-                                       )
-                                       node_list = psuperclassnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction343
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwsupernode2 = nodearraylist2
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode4 = nodearraylist5
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwsupernode2,
-                                               ptypenode3,
-                                               pannotationsnode4
-                                       )
-                                       node_list = psuperclassnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction344
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ppropdefnode1 = nodearraylist1
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction345
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction346
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction347
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction348
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction349
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction350
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction351
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction352
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction353
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction354
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction355
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction356
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction357
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction358
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction359
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction360
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction361
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var 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,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction362
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var 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,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction363
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       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,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction364
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction365
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction366
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction367
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction368
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction369
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction370
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction371
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction372
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction373
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction374
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction375
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction376
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist11
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction377
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction378
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction379
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction380
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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 pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction381
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction382
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction383
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction384
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction385
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction386
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction387
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction388
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction389
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction390
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction391
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction392
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction393
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction394
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction395
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction396
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist8
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction397
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction398
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction399
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction400
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction401
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction402
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction403
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction404
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction405
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction406
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction407
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction408
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction409
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction410
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction411
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction412
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist8
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction413
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction414
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction415
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction416
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction417
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction418
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction419
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction420
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction421
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist5
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction422
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction423
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction424
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction425
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction426
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction427
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction428
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist8
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction429
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction430
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction431
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction432
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction433
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction434
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction435
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction436
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction437
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist8
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction438
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction439
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction440
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction441
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction442
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction443
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction444
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist11
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction445
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist6
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction446
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction447
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction448
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction449
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist5
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction450
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction451
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction452
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction453
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist6
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction454
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction455
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction456
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction457
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist5
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction458
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction459
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction460
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction461
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction462
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction463
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction464
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction465
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction466
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction467
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction468
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction469
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction470
+private class ReduceAction24
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
                                                null,
-                                               null
+                                               pexprnode3
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction471
+private class ReduceAction26
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -20823,38 +1783,47 @@ private class ReduceAction471
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
                                                null,
-                                               null
+                                               listnode11,
+                                               tkwendnode12
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction472
+private class ReduceAction27
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -20864,410 +1833,250 @@ private class ReduceAction472
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               tkwendnode12
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction473
+private class ReduceAction29
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwredefnode1 = nodearraylist1
+                                       node_list = tkwredefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction30
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwclassnode2 = nodearraylist1
+                                       assert tkwclassnode2 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
+                                               tkwclassnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction474
+private class ReduceAction31
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
+                                               tkwabstractnode2,
+                                               tkwclassnode3
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction475
+private class ReduceAction32
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwinterfacenode2 = nodearraylist1
+                                       assert tkwinterfacenode2 isa nullable TKwinterface
+                                       var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
+                                               tkwinterfacenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction476
+private class ReduceAction33
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwenumnode2 = nodearraylist1
+                                       assert tkwenumnode2 isa nullable TKwenum
+                                       var pclasskindnode1: nullable AEnumClasskind = new AEnumClasskind.init_aenumclasskind(
+                                               tkwenumnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction477
+private class ReduceAction34
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwexternnode2 = nodearraylist1
+                                       assert tkwexternnode2 isa nullable TKwextern
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
+                                               tkwexternnode2,
+                                               tkwclassnode3
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction478
+private class ReduceAction35
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction36
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       var listnode2 = nodearraylist4
+                                       assert listnode2 isa Array[Object]
+                                       if pformaldefnode1 != null then
+                                               listnode3.add(pformaldefnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction479
+private class ReduceAction37
+       super 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(_goto), node_list)
+       end
+end
+private class ReduceAction38
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
+                                       var pformaldefnode1 = nodearraylist3
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction480
+private class ReduceAction39
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3,
                                                null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction481
+private class ReduceAction40
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode4 = nodearraylist2
+                                       assert pannotationsnode4 isa nullable AAnnotations
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3,
+                                               pannotationsnode4
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction482
+private class ReduceAction41
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -21281,194 +2090,78 @@ private class ReduceAction482
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwsupernode5 = nodearraylist4
+                                       assert tkwsupernode5 isa nullable TKwsuper
+                                       var ptypenode6 = nodearraylist6
+                                       assert ptypenode6 isa nullable AType
+                                       var pannotationsnode7 = nodearraylist7
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                               tkwsupernode5,
+                                               ptypenode6,
+                                               pannotationsnode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction483
+private class ReduceAction42
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction484
+private class ReduceAction43
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var ppropdefnode1 = nodearraylist1
+                                       if ppropdefnode1 != null then
+                                               listnode2.add(ppropdefnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction485
+private class ReduceAction44
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction486
+private class ReduceAction45
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
+                                       var ppropdefnode1 = nodearraylist1
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction487
+private class ReduceAction46
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21484,34 +2177,37 @@ private class ReduceAction487
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwmethnode5,
+                                               null,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
                                                null,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction488
+private class ReduceAction47
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21532,37 +2228,39 @@ private class ReduceAction488
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwmethnode5,
+                                               null,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
                                                null,
-                                               pexterncodeblocknode10
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction489
+private class ReduceAction48
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -21572,39 +2270,41 @@ private class ReduceAction489
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwmethnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction490
+private class ReduceAction49
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -21617,36 +2317,35 @@ private class ReduceAction490
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction491
+private class ReduceAction50
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -21656,40 +2355,41 @@ private class ReduceAction491
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction492
+private class ReduceAction51
        super ReduceAction
        redef fun action(p: Parser)
        do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
+                                       var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -21704,32 +2404,31 @@ private class ReduceAction492
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction493
+private class ReduceAction52
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21745,39 +2444,41 @@ private class ReduceAction493
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction494
+private class ReduceAction53
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -21793,32 +2494,33 @@ private class ReduceAction494
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction495
+private class ReduceAction54
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21835,43 +2537,43 @@ private class ReduceAction495
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction496
+private class ReduceAction55
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -21886,38 +2588,43 @@ private class ReduceAction496
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist11
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexterncallsnode11 = nodearraylist7
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist8
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwmethnode5,
+                                               null,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction497
+private class ReduceAction56
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -21925,34 +2632,46 @@ private class ReduceAction497
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist5
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexterncallsnode11 = nodearraylist8
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist9
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
+                                               tkwmethnode5,
                                                null,
                                                null,
-                                               pexterncodeblocknode10
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction498
+private class ReduceAction57
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -21965,32 +2684,38 @@ private class ReduceAction498
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction499
+private class ReduceAction58
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -21999,36 +2724,41 @@ private class ReduceAction499
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pannotationsnode9 = nodearraylist10
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
+                                               pexprnode8,
+                                               pannotationsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction500
+private class ReduceAction59
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -22042,34 +2772,37 @@ private class ReduceAction500
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
                                                null,
-                                               pexterncodeblocknode10
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction501
+private class ReduceAction60
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -22078,36 +2811,42 @@ private class ReduceAction501
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction502
+private class ReduceAction61
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -22121,34 +2860,37 @@ private class ReduceAction502
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               pexterncodeblocknode10
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction503
+private class ReduceAction62
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -22158,34 +2900,36 @@ private class ReduceAction503
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction504
+private class ReduceAction63
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22204,36 +2948,38 @@ private class ReduceAction504
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               pexterncodeblocknode10
+                                               tkwinitnode6,
+                                               null,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction505
+private class ReduceAction64
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -22242,36 +2988,43 @@ private class ReduceAction505
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist5
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
+                                               tkwinitnode6,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction506
+private class ReduceAction65
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -22285,34 +3038,40 @@ private class ReduceAction506
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
+                                               tkwinitnode6,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction507
+private class ReduceAction66
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -22322,39 +3081,43 @@ private class ReduceAction507
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwinitnode6,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction508
+private class ReduceAction67
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -22368,32 +3131,28 @@ private class ReduceAction508
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction509
+private class ReduceAction68
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22407,34 +3166,37 @@ private class ReduceAction509
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexterncallsnode11 = nodearraylist6
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist7
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction510
+private class ReduceAction69
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22453,32 +3215,35 @@ private class ReduceAction510
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexterncallsnode11 = nodearraylist7
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist8
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction511
+private class ReduceAction70
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22493,36 +3258,39 @@ private class ReduceAction511
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexterncallsnode11 = nodearraylist7
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist8
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction512
+private class ReduceAction71
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22542,198 +3310,115 @@ private class ReduceAction512
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist4
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexterncallsnode11 = nodearraylist8
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist9
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction513
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pannotationsnode1 = nodearraylist2
-                                       node_list = pannotationsnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction514
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pannotationsnode1 = nodearraylist3
-                                       node_list = pannotationsnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction516
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pannotationsnode1 = nodearraylist3
-                                       node_list = pannotationsnode1
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction517
+private class ReduceAction72
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode3 = nodearraylist1
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode3
-                                       )
-                                       node_list = pablenode1
+                                       var ppropdefnode1 = nodearraylist1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction518
+private class ReduceAction74
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwreadablenode3 = nodearraylist2
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode2,
-                                               tkwreadablenode3
-                                       )
-                                       node_list = pablenode1
+                                       var pannotationsnode1 = nodearraylist2
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction519
+private class ReduceAction75
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode4 = nodearraylist1
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               null,
-                                               tkwwritablenode4
-                                       )
-                                       node_list = pablenode1
+                                       var pannotationsnode1 = nodearraylist3
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction520
+private class ReduceAction78
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
-                                               null,
-                                               tkwwritablenode4
-                                       )
-                                       node_list = pablenode1
+                                       var pannotationsnode1 = nodearraylist3
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction521
+private class ReduceAction79
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pvisibilitynode3 = nodearraylist1
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction522
+private class ReduceAction80
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var pvisibilitynode3 = nodearraylist2
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist3
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                       var tkwpublicnode2 = nodearraylist1
+                                       assert tkwpublicnode2 isa nullable TKwpublic
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode2
                                        )
-                                       node_list = pablenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction523
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility
                                        node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction524
+private class ReduceAction81
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22749,7 +3434,7 @@ private class ReduceAction524
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction525
+private class ReduceAction82
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22765,7 +3450,7 @@ private class ReduceAction525
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction526
+private class ReduceAction83
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22781,22 +3466,7 @@ private class ReduceAction526
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction527
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode2
-                                       )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction528
+private class ReduceAction84
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22811,7 +3481,7 @@ private class ReduceAction528
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction529
+private class ReduceAction85
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22826,7 +3496,7 @@ private class ReduceAction529
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction530
+private class ReduceAction86
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22841,7 +3511,22 @@ private class ReduceAction530
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction531
+private class ReduceAction87
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarstarnode2 = nodearraylist1
+                                       assert tstarstarnode2 isa nullable TStarstar
+                                       var pmethidnode1: nullable AStarstarMethid = new AStarstarMethid.init_astarstarmethid(
+                                               tstarstarnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction88
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22856,7 +3541,7 @@ private class ReduceAction531
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction532
+private class ReduceAction89
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22871,7 +3556,67 @@ private class ReduceAction532
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction533
+private class ReduceAction90
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpipenode2 = nodearraylist1
+                                       assert tpipenode2 isa nullable TPipe
+                                       var pmethidnode1: nullable APipeMethid = new APipeMethid.init_apipemethid(
+                                               tpipenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction91
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcaretnode2 = nodearraylist1
+                                       assert tcaretnode2 isa nullable TCaret
+                                       var pmethidnode1: nullable ACaretMethid = new ACaretMethid.init_acaretmethid(
+                                               tcaretnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction92
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pmethidnode1: nullable AAmpMethid = new AAmpMethid.init_aampmethid(
+                                               tampnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction93
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pmethidnode1: nullable ATildeMethid = new ATildeMethid.init_atildemethid(
+                                               ttildenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction94
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22886,7 +3631,7 @@ private class ReduceAction533
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction534
+private class ReduceAction95
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22901,7 +3646,7 @@ private class ReduceAction534
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction535
+private class ReduceAction96
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22916,7 +3661,7 @@ private class ReduceAction535
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction536
+private class ReduceAction97
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22931,7 +3676,7 @@ private class ReduceAction536
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction537
+private class ReduceAction98
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22946,7 +3691,7 @@ private class ReduceAction537
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction538
+private class ReduceAction99
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22961,7 +3706,7 @@ private class ReduceAction538
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction539
+private class ReduceAction100
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22976,7 +3721,7 @@ private class ReduceAction539
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction540
+private class ReduceAction101
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22991,7 +3736,7 @@ private class ReduceAction540
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction541
+private class ReduceAction102
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23010,7 +3755,7 @@ private class ReduceAction541
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction542
+private class ReduceAction103
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23025,7 +3770,7 @@ private class ReduceAction542
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction543
+private class ReduceAction104
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23044,7 +3789,7 @@ private class ReduceAction543
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction544
+private class ReduceAction105
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23067,34 +3812,22 @@ private class ReduceAction544
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction545
+private class ReduceAction106
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var ptypenode5 = nodearraylist4
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               ptypenode5
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
+                                               tidnode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction546
+private class ReduceAction107
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23125,31 +3858,7 @@ private class ReduceAction546
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction547
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               null
-                                       )
-                                       node_list = psignaturenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction548
+private class ReduceAction108
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23177,7 +3886,7 @@ private class ReduceAction548
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction549
+private class ReduceAction109
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23197,7 +3906,7 @@ private class ReduceAction549
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction550
+private class ReduceAction110
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23214,7 +3923,7 @@ private class ReduceAction550
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction551
+private class ReduceAction111
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23230,7 +3939,7 @@ private class ReduceAction551
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction552
+private class ReduceAction112
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23250,7 +3959,7 @@ private class ReduceAction552
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction553
+private class ReduceAction114
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23263,25 +3972,7 @@ private class ReduceAction553
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction554
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pparamnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction555
+private class ReduceAction115
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23302,7 +3993,7 @@ private class ReduceAction555
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction556
+private class ReduceAction116
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23323,7 +4014,7 @@ private class ReduceAction556
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction557
+private class ReduceAction117
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23347,7 +4038,7 @@ private class ReduceAction557
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction558
+private class ReduceAction118
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23371,7 +4062,7 @@ private class ReduceAction558
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction559
+private class ReduceAction119
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23398,23 +4089,7 @@ private class ReduceAction559
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction560
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist1
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               null,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction561
+private class ReduceAction120
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23438,7 +4113,7 @@ private class ReduceAction561
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction562
+private class ReduceAction121
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23466,7 +4141,7 @@ private class ReduceAction562
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction563
+private class ReduceAction123
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23479,7 +4154,7 @@ private class ReduceAction563
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction564
+private class ReduceAction124
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23490,82 +4165,168 @@ private class ReduceAction564
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction566
+private class ReduceAction126
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwsupernode2 = nodearraylist1
+                                       assert tkwsupernode2 isa nullable TKwsuper
+                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
+                                               tkwsupernode2
+                                       )
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction127
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pmethidnode2 = nodearraylist1
+                                       assert pmethidnode2 isa nullable AMethid
+                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
+                                               pmethidnode2
+                                       )
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction128
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var pmethidnode4 = nodearraylist3
+                                       assert pmethidnode4 isa nullable AMethid
+                                       var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
+                                               ptypenode2,
+                                               tdotnode3,
+                                               pmethidnode4
+                                       )
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction129
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwsupernode2 = nodearraylist1
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
-                                               tkwsupernode2
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
+                                               ptypenode2
                                        )
                                        node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction567
+private class ReduceAction130
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pmethidnode2 = nodearraylist1
-                                       assert pmethidnode2 isa nullable AMethid
-                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
-                                               pmethidnode2
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var tkwasnode4 = nodearraylist3
+                                       assert tkwasnode4 isa nullable TKwas
+                                       var ptypenode5 = nodearraylist7
+                                       assert ptypenode5 isa nullable AType
+                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
+                                               ptypenode2,
+                                               tdotnode3,
+                                               tkwasnode4,
+                                               ptypenode5
                                        )
                                        node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction568
+private class ReduceAction131
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var tquadnode3 = nodearraylist2
-                                       assert tquadnode3 isa nullable TQuad
-                                       var pmethidnode4 = nodearraylist3
-                                       assert pmethidnode4 isa nullable AMethid
-                                       var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
-                                               tclassidnode2,
-                                               tquadnode3,
-                                               pmethidnode4
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var tkwasnode4 = nodearraylist3
+                                       assert tkwasnode4 isa nullable TKwas
+                                       var ptypenode5 = nodearraylist5
+                                       assert ptypenode5 isa nullable AType
+                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
+                                               ptypenode2,
+                                               tdotnode3,
+                                               tkwasnode4,
+                                               ptypenode5
                                        )
                                        node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction569
+private class ReduceAction132
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
-                                               tclassidnode2
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnullablenode4 = nodearraylist7
+                                       assert tkwnullablenode4 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnullablenode4
                                        )
                                        node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction570
+private class ReduceAction133
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -23573,48 +4334,59 @@ private class ReduceAction570
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
+                                       var tkwasnode3 = nodearraylist3
                                        assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist6
-                                       assert ptypenode4 isa nullable AType
-                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
+                                       var tkwnullablenode4 = nodearraylist5
+                                       assert tkwnullablenode4 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
                                                ptypenode2,
                                                tkwasnode3,
-                                               ptypenode4
+                                               tkwnullablenode4
                                        )
                                        node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction571
+private class ReduceAction134
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
+                                       var tkwasnode3 = nodearraylist3
                                        assert tkwasnode3 isa nullable TKwas
-                                       var tkwnullablenode4 = nodearraylist4
-                                       assert tkwnullablenode4 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
+                                       var tkwnotnode4 = nodearraylist7
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullablenode5 = nodearraylist9
+                                       assert tkwnullablenode5 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
                                                ptypenode2,
                                                tkwasnode3,
-                                               tkwnullablenode4
+                                               tkwnotnode4,
+                                               tkwnullablenode5
                                        )
                                        node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction572
+private class ReduceAction135
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -23623,11 +4395,11 @@ private class ReduceAction572
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
+                                       var tkwasnode3 = nodearraylist3
                                        assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist4
+                                       var tkwnotnode4 = nodearraylist5
                                        assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullablenode5 = nodearraylist6
+                                       var tkwnullablenode5 = nodearraylist7
                                        assert tkwnullablenode5 isa nullable TKwnullable
                                        var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
                                                ptypenode2,
@@ -23639,16 +4411,29 @@ private class ReduceAction572
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction573
+private class ReduceAction137
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstringnode1 = nodearraylist1
+                                       node_list = tstringnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction138
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tkwinnode2 = nodearraylist1
                                        assert tkwinnode2 isa nullable TKwin
-                                       var tstringnode3 = nodearraylist2
+                                       var tstringnode3 = nodearraylist3
                                        assert tstringnode3 isa nullable TString
                                        var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
                                                tkwinnode2,
@@ -23658,7 +4443,7 @@ private class ReduceAction573
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction574
+private class ReduceAction139
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23674,7 +4459,7 @@ private class ReduceAction574
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction575
+private class ReduceAction140
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23693,60 +4478,30 @@ private class ReduceAction575
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction576
+private class ReduceAction141
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncodeblocknode1 = nodearraylist2
+                                       var pexterncodeblocknode1 = nodearraylist1
                                        node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction577
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4,
-                                               null
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction578
+private class ReduceAction143
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4,
-                                               null
-                                       )
-                                       node_list = ptypenode1
+                                       var pexterncodeblocknode1 = nodearraylist2
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction579
+private class ReduceAction144
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23768,7 +4523,7 @@ private class ReduceAction579
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction580
+private class ReduceAction145
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23793,64 +4548,7 @@ private class ReduceAction580
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction581
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5,
-                                               null
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction582
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5,
-                                               null
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction583
+private class ReduceAction146
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23880,7 +4578,7 @@ private class ReduceAction583
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction584
+private class ReduceAction147
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23913,7 +4611,7 @@ private class ReduceAction584
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction585
+private class ReduceAction148
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23928,7 +4626,7 @@ private class ReduceAction585
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction586
+private class ReduceAction149
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23947,7 +4645,7 @@ private class ReduceAction586
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction587
+private class ReduceAction150
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23960,7 +4658,7 @@ private class ReduceAction587
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction589
+private class ReduceAction154
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23972,7 +4670,7 @@ private class ReduceAction589
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction590
+private class ReduceAction155
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23990,7 +4688,7 @@ private class ReduceAction590
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction591
+private class ReduceAction156
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24007,7 +4705,7 @@ private class ReduceAction591
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction592
+private class ReduceAction157
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24018,7 +4716,7 @@ private class ReduceAction592
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction593
+private class ReduceAction158
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24038,7 +4736,7 @@ private class ReduceAction593
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction594
+private class ReduceAction159
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24062,7 +4760,7 @@ private class ReduceAction594
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction595
+private class ReduceAction160
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24083,7 +4781,7 @@ private class ReduceAction595
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction596
+private class ReduceAction161
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24108,7 +4806,7 @@ private class ReduceAction596
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction597
+private class ReduceAction162
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24132,7 +4830,7 @@ private class ReduceAction597
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction598
+private class ReduceAction163
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24160,122 +4858,77 @@ private class ReduceAction598
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction602
-       super 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(_goto), node_list)
-       end
-end
-private class ReduceAction603
+private class ReduceAction167
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tkwreturnnode2 = nodearraylist1
                                        assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
                                                tkwreturnnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction604
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction605
+private class ReduceAction168
        super 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
+                                       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(_goto), node_list)
        end
 end
-private class ReduceAction606
+private class ReduceAction169
        super 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
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction607
+private class ReduceAction170
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tkwbreaknode2 = nodearraylist1
                                        assert tkwbreaknode2 isa nullable TKwbreak
                                        var 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
+                                               plabelnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction608
+private class ReduceAction171
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24290,87 +4943,42 @@ private class ReduceAction608
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction609
-       super 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(_goto), node_list)
-       end
-end
-private class ReduceAction610
+private class ReduceAction172
        super 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(_goto), node_list)
        end
 end
-private class ReduceAction611
-       super 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(_goto), node_list)
-       end
-end
-private class ReduceAction612
+private class ReduceAction173
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tkwcontinuenode2 = nodearraylist1
                                        assert tkwcontinuenode2 isa nullable TKwcontinue
                                        var 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
+                                               plabelnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction619
+private class ReduceAction181
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24395,17 +5003,22 @@ private class ReduceAction619
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction620
+private class ReduceAction182
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
+                                       var pexprsnode4 = nodearraylist6
                                        assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
@@ -24416,11 +5029,12 @@ private class ReduceAction620
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction621
+private class ReduceAction183
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -24429,9 +5043,9 @@ private class ReduceAction621
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist5
+                                       var tidnode3 = nodearraylist6
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist6
+                                       var pexprsnode4 = nodearraylist7
                                        assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
@@ -24442,23 +5056,17 @@ private class ReduceAction621
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction622
+private class ReduceAction185
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist6
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist7
+                                       var pexprsnode4 = nodearraylist2
                                        assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
@@ -24469,7 +5077,7 @@ private class ReduceAction622
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction624
+private class ReduceAction186
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24491,7 +5099,7 @@ private class ReduceAction624
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction625
+private class ReduceAction187
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24514,19 +5122,22 @@ private class ReduceAction625
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction627
+private class ReduceAction189
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwsupernode3 = nodearraylist1
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
                                        assert tkwsupernode3 isa nullable TKwsuper
-                                       var pexprsnode4 = nodearraylist2
+                                       var pexprsnode4 = nodearraylist3
                                        assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
+                                               pqualifiednode2,
                                                tkwsupernode3,
                                                pexprsnode4
                                        )
@@ -24534,96 +5145,7 @@ private class ReduceAction627
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction628
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tclassidnode4 = nodearraylist1
-                                       assert tclassidnode4 isa nullable TClassid
-                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               tclassidnode4
-                                       )
-                                       var tkwsupernode5 = nodearraylist2
-                                       assert tkwsupernode5 isa nullable TKwsuper
-                                       var pexprsnode6 = nodearraylist3
-                                       assert pexprsnode6 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode5,
-                                               pexprsnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction629
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tclassidnode5 = nodearraylist2
-                                       assert tclassidnode5 isa nullable TClassid
-                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode4,
-                                               tclassidnode5
-                                       )
-                                       var tkwsupernode6 = nodearraylist3
-                                       assert tkwsupernode6 isa nullable TKwsuper
-                                       var pexprsnode7 = nodearraylist4
-                                       assert pexprsnode7 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode6,
-                                               pexprsnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction630
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode4,
-                                               null
-                                       )
-                                       var tkwsupernode6 = nodearraylist2
-                                       assert tkwsupernode6 isa nullable TKwsuper
-                                       var pexprsnode7 = nodearraylist3
-                                       assert pexprsnode7 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode6,
-                                               pexprsnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction631
+private class ReduceAction190
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24648,7 +5170,7 @@ private class ReduceAction631
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction632
+private class ReduceAction191
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24669,7 +5191,7 @@ private class ReduceAction632
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction633
+private class ReduceAction192
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24695,7 +5217,7 @@ private class ReduceAction633
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction634
+private class ReduceAction193
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24722,7 +5244,7 @@ private class ReduceAction634
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction636
+private class ReduceAction195
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24744,7 +5266,7 @@ private class ReduceAction636
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction637
+private class ReduceAction196
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24758,190 +5280,83 @@ private class ReduceAction637
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var pexprsnode4 = nodearraylist4
                                        assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction639
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdebugnode2 = nodearraylist1
-                                       assert tkwdebugnode2 isa nullable TKwdebug
-                                       var tkwtypenode3 = nodearraylist2
-                                       assert tkwtypenode3 isa nullable TKwtype
-                                       var pexprnode4 = nodearraylist5
-                                       assert pexprnode4 isa nullable AExpr
-                                       var ptypenode5 = nodearraylist3
-                                       assert ptypenode5 isa nullable AType
-                                       var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
-                                               tkwdebugnode2,
-                                               tkwtypenode3,
-                                               pexprnode4,
-                                               ptypenode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction640
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwlabelnode2 = nodearraylist1
-                                       assert tkwlabelnode2 isa nullable TKwlabel
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
-                                               tkwlabelnode2,
-                                               tidnode3
-                                       )
-                                       node_list = plabelnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction641
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode4 = nodearraylist1
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               null,
-                                               null,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction642
-       super 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,
-                                               null
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction643
+private class ReduceAction198
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null,
-                                               pannotationsnode7
+                                       var tkwdebugnode2 = nodearraylist1
+                                       assert tkwdebugnode2 isa nullable TKwdebug
+                                       var tkwtypenode3 = nodearraylist2
+                                       assert tkwtypenode3 isa nullable TKwtype
+                                       var pexprnode4 = nodearraylist5
+                                       assert pexprnode4 isa nullable AExpr
+                                       var ptypenode5 = nodearraylist3
+                                       assert ptypenode5 isa nullable AType
+                                       var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
+                                               tkwdebugnode2,
+                                               tkwtypenode3,
+                                               pexprnode4,
+                                               ptypenode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction644
+private class ReduceAction199
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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,
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction645
+private class ReduceAction200
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
                                        var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               null,
-                                               null,
-                                               pannotationsnode7
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               tidnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction646
+private class ReduceAction201
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
@@ -24949,29 +5364,25 @@ private class ReduceAction646
                                        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 ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
                                        var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
                                                tkwvarnode2,
                                                tidnode3,
+                                               ptypenode4,
+                                               null,
                                                null,
-                                               tassignnode5,
-                                               pexprnode6,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction647
+private class ReduceAction202
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
@@ -24980,25 +5391,23 @@ private class ReduceAction647
                                        assert tkwvarnode2 isa nullable TKwvar
                                        var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
                                        var pannotationsnode7 = nodearraylist3
                                        assert pannotationsnode7 isa nullable AAnnotations
                                        var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
                                                tkwvarnode2,
                                                tidnode3,
+                                               ptypenode4,
+                                               null,
                                                null,
-                                               tassignnode5,
-                                               pexprnode6,
                                                pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction648
+private class ReduceAction203
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25031,7 +5440,7 @@ private class ReduceAction648
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction649
+private class ReduceAction204
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25067,11 +5476,12 @@ private class ReduceAction649
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction650
+private class ReduceAction205
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -25080,11 +5490,11 @@ private class ReduceAction650
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
+                                       var tattridnode3 = nodearraylist5
                                        assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
+                                       var tassignnode4 = nodearraylist6
                                        assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
+                                       var pexprnode5 = nodearraylist7
                                        assert pexprnode5 isa nullable AExpr
                                        var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
                                                pexprnode2,
@@ -25096,20 +5506,21 @@ private class ReduceAction650
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction651
+private class ReduceAction206
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
+                                       var tattridnode3 = nodearraylist2
                                        assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
+                                       var tassignnode4 = nodearraylist3
                                        assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
+                                       var pexprnode5 = nodearraylist4
                                        assert pexprnode5 isa nullable AExpr
                                        var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
                                                pexprnode2,
@@ -25121,7 +5532,7 @@ private class ReduceAction651
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction652
+private class ReduceAction207
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25135,29 +5546,30 @@ private class ReduceAction652
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist5
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist6
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist6
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction653
+private class ReduceAction208
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -25166,80 +5578,103 @@ private class ReduceAction653
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist6
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist7
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist5
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction655
+private class ReduceAction209
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist7
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist8
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction656
+private class ReduceAction210
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist3
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist4
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       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,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction658
+private class ReduceAction211
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -25249,13 +5684,13 @@ private class ReduceAction658
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
+                                       var tidnode3 = nodearraylist6
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
+                                       var pexprsnode4 = nodearraylist7
                                        assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist6
+                                       var tassignnode5 = nodearraylist8
                                        assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist7
+                                       var pexprnode6 = nodearraylist9
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
@@ -25268,7 +5703,43 @@ private class ReduceAction658
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction659
+private class ReduceAction212
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist7
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction215
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25297,63 +5768,54 @@ private class ReduceAction659
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction660
+private class ReduceAction216
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist5
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist6
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist7
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist8
-                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist2
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist3
+                                       assert pexprnode7 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction661
+private class ReduceAction217
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist6
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist7
+                                       var pexprsnode4 = nodearraylist3
                                        assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist8
+                                       var tassignnode5 = nodearraylist4
                                        assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist9
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
@@ -25366,12 +5828,11 @@ private class ReduceAction661
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction663
+private class ReduceAction218
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
@@ -25379,24 +5840,26 @@ private class ReduceAction663
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       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,
                                                pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction664
+private class ReduceAction219
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25427,7 +5890,39 @@ private class ReduceAction664
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction666
+private class ReduceAction220
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist4
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction223
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25454,11 +5949,12 @@ private class ReduceAction666
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction667
+private class ReduceAction224
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -25467,11 +5963,11 @@ private class ReduceAction667
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
+                                       var tattridnode3 = nodearraylist5
                                        assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
+                                       var passignopnode4 = nodearraylist6
                                        assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist6
+                                       var pexprnode5 = nodearraylist7
                                        assert pexprnode5 isa nullable AExpr
                                        var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
@@ -25483,20 +5979,21 @@ private class ReduceAction667
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction668
+private class ReduceAction225
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
+                                       var tattridnode3 = nodearraylist2
                                        assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
+                                       var passignopnode4 = nodearraylist3
                                        assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist3
+                                       var pexprnode5 = nodearraylist4
                                        assert pexprnode5 isa nullable AExpr
                                        var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
@@ -25508,7 +6005,7 @@ private class ReduceAction668
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction669
+private class ReduceAction226
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25522,29 +6019,30 @@ private class ReduceAction669
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist5
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist6
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist6
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction670
+private class ReduceAction227
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -25553,80 +6051,103 @@ private class ReduceAction670
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist6
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist7
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist5
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction672
+private class ReduceAction228
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist7
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist8
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction673
+private class ReduceAction229
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist3
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist4
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       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,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction675
+private class ReduceAction230
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -25636,13 +6157,13 @@ private class ReduceAction675
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
+                                       var tidnode3 = nodearraylist6
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
+                                       var pexprsnode4 = nodearraylist7
                                        assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist6
+                                       var passignopnode5 = nodearraylist8
                                        assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist7
+                                       var pexprnode6 = nodearraylist9
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -25655,7 +6176,43 @@ private class ReduceAction675
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction676
+private class ReduceAction231
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist7
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction234
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25677,35 +6234,61 @@ private class ReduceAction676
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction235
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist2
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist3
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction677
+private class ReduceAction236
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist5
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist6
+                                       var pexprsnode4 = nodearraylist3
                                        assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist7
+                                       var passignopnode5 = nodearraylist4
                                        assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist8
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -25718,59 +6301,56 @@ private class ReduceAction677
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction678
+private class ReduceAction237
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist6
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist7
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist8
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist9
-                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       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,
                                                pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction680
+private class ReduceAction238
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist2
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist3
+                                       var pexprsnode4 = nodearraylist4
                                        assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist4
+                                       var passignopnode5 = nodearraylist5
                                        assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist5
+                                       var pexprnode6 = nodearraylist6
                                        assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
@@ -25783,12 +6363,11 @@ private class ReduceAction680
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction681
+private class ReduceAction239
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -25797,24 +6376,26 @@ private class ReduceAction681
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist4
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist5
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist4
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction683
+private class ReduceAction242
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25841,7 +6422,7 @@ private class ReduceAction683
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction684
+private class ReduceAction243
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25856,7 +6437,7 @@ private class ReduceAction684
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction685
+private class ReduceAction244
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25871,7 +6452,142 @@ private class ReduceAction685
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction686
+private class ReduceAction245
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstareqnode2 = nodearraylist1
+                                       assert tstareqnode2 isa nullable TStareq
+                                       var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
+                                               tstareqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction246
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tslasheqnode2 = nodearraylist1
+                                       assert tslasheqnode2 isa nullable TSlasheq
+                                       var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+                                               tslasheqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction247
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpercenteqnode2 = nodearraylist1
+                                       assert tpercenteqnode2 isa nullable TPercenteq
+                                       var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+                                               tpercenteqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction248
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarstareqnode2 = nodearraylist1
+                                       assert tstarstareqnode2 isa nullable TStarstareq
+                                       var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
+                                               tstarstareqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction249
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpipeeqnode2 = nodearraylist1
+                                       assert tpipeeqnode2 isa nullable TPipeeq
+                                       var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+                                               tpipeeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction250
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcareteqnode2 = nodearraylist1
+                                       assert tcareteqnode2 isa nullable TCareteq
+                                       var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+                                               tcareteqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction251
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tampeqnode2 = nodearraylist1
+                                       assert tampeqnode2 isa nullable TAmpeq
+                                       var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+                                               tampeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction252
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tlleqnode2 = nodearraylist1
+                                       assert tlleqnode2 isa nullable TLleq
+                                       var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+                                               tlleqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction253
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tggeqnode2 = nodearraylist1
+                                       assert tggeqnode2 isa nullable TGgeq
+                                       var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+                                               tggeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction254
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25894,7 +6610,7 @@ private class ReduceAction686
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction687
+private class ReduceAction255
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25914,7 +6630,7 @@ private class ReduceAction687
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction688
+private class ReduceAction256
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25945,7 +6661,7 @@ private class ReduceAction688
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction689
+private class ReduceAction257
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25972,7 +6688,7 @@ private class ReduceAction689
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction690
+private class ReduceAction258
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26003,7 +6719,7 @@ private class ReduceAction690
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction691
+private class ReduceAction259
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26030,7 +6746,7 @@ private class ReduceAction691
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction692
+private class ReduceAction260
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26058,7 +6774,7 @@ private class ReduceAction692
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction695
+private class ReduceAction263
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26081,7 +6797,7 @@ private class ReduceAction695
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction696
+private class ReduceAction264
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26101,7 +6817,7 @@ private class ReduceAction696
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction697
+private class ReduceAction265
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26134,7 +6850,7 @@ private class ReduceAction697
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction698
+private class ReduceAction266
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26164,15 +6880,11 @@ private class ReduceAction698
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction699
+private class ReduceAction267
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist15 = p.pop
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -26187,16 +6899,16 @@ private class ReduceAction699
                                        var listnode4 = new Array[Object]
                                        var tkwfornode2 = nodearraylist1
                                        assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist5
+                                       var listnode3 = nodearraylist3
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist11
+                                       var pexprnode5 = nodearraylist7
                                        assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist13
+                                       var tkwdonode6 = nodearraylist9
                                        assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist14
+                                       var pexprnode7 = nodearraylist10
                                        assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist15
+                                       var plabelnode8 = nodearraylist11
                                        assert plabelnode8 isa nullable ALabel
                                        var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
                                                tkwfornode2,
@@ -26210,12 +6922,11 @@ private class ReduceAction699
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction700
+private class ReduceAction268
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -26238,32 +6949,23 @@ private class ReduceAction700
                                        assert tkwdonode6 isa nullable TKwdo
                                        var pexprnode7 = nodearraylist10
                                        assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist11
-                                       assert plabelnode8 isa nullable ALabel
                                        var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
                                                tkwfornode2,
                                                listnode4,
                                                pexprnode5,
                                                tkwdonode6,
                                                pexprnode7,
-                                               plabelnode8
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction701
+private class ReduceAction269
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist14 = p.pop
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -26271,70 +6973,121 @@ private class ReduceAction701
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist5
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist11
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist13
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist14
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
+                                               pexprnode3,
+                                               tkwdonode4,
                                                pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
+                                               plabelnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction270
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction271
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction702
+private class ReduceAction272
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist9
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist10
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pannotationsnode7 = nodearraylist2
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction703
+private class ReduceAction274
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26359,7 +7112,7 @@ private class ReduceAction703
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction704
+private class ReduceAction275
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26387,7 +7140,7 @@ private class ReduceAction704
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction705
+private class ReduceAction276
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26408,7 +7161,7 @@ private class ReduceAction705
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction706
+private class ReduceAction277
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26432,7 +7185,7 @@ private class ReduceAction706
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction707
+private class ReduceAction278
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26444,7 +7197,7 @@ private class ReduceAction707
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction710
+private class ReduceAction280
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26484,7 +7237,7 @@ private class ReduceAction710
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction712
+private class ReduceAction282
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26495,17 +7248,20 @@ private class ReduceAction712
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tkwornode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction713
+private class ReduceAction283
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26516,17 +7272,20 @@ private class ReduceAction713
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwandnode3 = nodearraylist2
+                                       assert tkwandnode3 isa nullable TKwand
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tkwandnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction714
+private class ReduceAction284
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26538,17 +7297,23 @@ private class ReduceAction714
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist5
-                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var tkwelsenode4 = nodearraylist3
+                                       assert tkwelsenode4 isa nullable TKwelse
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
                                        var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tkwornode3,
+                                               tkwelsenode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction715
+private class ReduceAction285
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26559,17 +7324,20 @@ private class ReduceAction715
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwimpliesnode3 = nodearraylist2
+                                       assert tkwimpliesnode3 isa nullable TKwimplies
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tkwimpliesnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction717
+private class ReduceAction287
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26589,7 +7357,7 @@ private class ReduceAction717
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction719
+private class ReduceAction289
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26600,17 +7368,20 @@ private class ReduceAction719
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
+                                       var teqnode3 = nodearraylist2
+                                       assert teqnode3 isa nullable TEq
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               teqnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction720
+private class ReduceAction290
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26621,17 +7392,20 @@ private class ReduceAction720
                                        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(
+                                       var tnenode3 = nodearraylist2
+                                       assert tnenode3 isa nullable TNe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tnenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction721
+private class ReduceAction291
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26642,17 +7416,20 @@ private class ReduceAction721
                                        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(
+                                       var tltnode3 = nodearraylist2
+                                       assert tltnode3 isa nullable TLt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tltnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction722
+private class ReduceAction292
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26663,17 +7440,20 @@ private class ReduceAction722
                                        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(
+                                       var tlenode3 = nodearraylist2
+                                       assert tlenode3 isa nullable TLe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tlenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction723
+private class ReduceAction293
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26684,17 +7464,20 @@ private class ReduceAction723
                                        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(
+                                       var tgtnode3 = nodearraylist2
+                                       assert tgtnode3 isa nullable TGt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tgtnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction724
+private class ReduceAction294
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26705,17 +7488,20 @@ private class ReduceAction724
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+                                       var tgenode3 = nodearraylist2
+                                       assert tgenode3 isa nullable TGe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tgenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction725
+private class ReduceAction295
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26726,17 +7512,20 @@ private class ReduceAction725
                                        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(
+                                       var tstarshipnode3 = nodearraylist2
+                                       assert tstarshipnode3 isa nullable TStarship
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tstarshipnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction726
+private class ReduceAction296
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26747,17 +7536,20 @@ private class ReduceAction726
                                        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(
+                                       var tkwisanode3 = nodearraylist2
+                                       assert tkwisanode3 isa nullable TKwisa
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tkwisanode3,
+                                               ptypenode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction727
+private class ReduceAction298
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26768,17 +7560,20 @@ private class ReduceAction727
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
+                                       var tpipenode3 = nodearraylist2
+                                       assert tpipenode3 isa nullable TPipe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tpipenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction728
+private class ReduceAction300
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26789,17 +7584,20 @@ private class ReduceAction728
                                        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(
+                                       var tcaretnode3 = nodearraylist2
+                                       assert tcaretnode3 isa nullable TCaret
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tcaretnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction729
+private class ReduceAction302
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26810,17 +7608,20 @@ private class ReduceAction729
                                        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(
+                                       var tampnode3 = nodearraylist2
+                                       assert tampnode3 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
                                                pexprnode2,
-                                               ptypenode3
+                                               tampnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction731
+private class ReduceAction304
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26831,17 +7632,140 @@ private class ReduceAction731
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
+                                       var tllnode3 = nodearraylist2
+                                       assert tllnode3 isa nullable TLl
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+                                               pexprnode2,
+                                               tllnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction305
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tggnode3 = nodearraylist2
+                                       assert tggnode3 isa nullable TGg
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
+                                               pexprnode2,
+                                               tggnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction307
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tplusnode3 = nodearraylist2
+                                       assert tplusnode3 isa nullable TPlus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tplusnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction308
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tminusnode3 = nodearraylist2
+                                       assert tminusnode3 isa nullable TMinus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               tminusnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction310
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tstarnode3 = nodearraylist2
+                                       assert tstarnode3 isa nullable TStar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               tstarnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction311
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tslashnode3 = nodearraylist2
+                                       assert tslashnode3 isa nullable TSlash
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               tslashnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction732
+private class ReduceAction312
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26852,17 +7776,20 @@ private class ReduceAction732
                                        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(
+                                       var tpercentnode3 = nodearraylist2
+                                       assert tpercentnode3 isa nullable TPercent
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tpercentnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction734
+private class ReduceAction314
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26873,79 +7800,77 @@ private class ReduceAction734
                                        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(
+                                       var tstarstarnode3 = nodearraylist2
+                                       assert tstarstarnode3 isa nullable TStarstar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tstarstarnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction735
+private class ReduceAction316
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction736
+private class ReduceAction317
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
+                                               tplusnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction738
+private class ReduceAction318
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist3
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
+                                       var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
+                                               ttildenode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction739
+private class ReduceAction319
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26965,7 +7890,7 @@ private class ReduceAction739
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction741
+private class ReduceAction321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26990,11 +7915,38 @@ private class ReduceAction741
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction742
+private class ReduceAction322
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               pexprsnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction323
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -27004,7 +7956,7 @@ private class ReduceAction742
                                        assert tkwissetnode2 isa nullable TKwisset
                                        var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist5
+                                       var tattridnode4 = nodearraylist6
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
                                                tkwissetnode2,
@@ -27015,17 +7967,18 @@ private class ReduceAction742
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction743
+private class ReduceAction324
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tkwissetnode2 = nodearraylist1
                                        assert tkwissetnode2 isa nullable TKwisset
                                        var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode4 = nodearraylist2
+                                       var tattridnode4 = nodearraylist3
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
                                                tkwissetnode2,
@@ -27036,225 +7989,269 @@ private class ReduceAction743
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction744
+private class ReduceAction326
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist6
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction745
+private class ReduceAction327
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist7
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction747
+private class ReduceAction329
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode4 = nodearraylist3
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction748
+private class ReduceAction331
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode4 = nodearraylist4
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction750
+private class ReduceAction333
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction751
+private class ReduceAction337
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction752
+private class ReduceAction339
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist5
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction753
+private class ReduceAction341
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist6
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction755
+private class ReduceAction345
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction347
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction756
+private class ReduceAction349
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist3
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction772
+private class ReduceAction350
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27273,7 +8270,7 @@ private class ReduceAction772
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction773
+private class ReduceAction351
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27303,13 +8300,11 @@ private class ReduceAction773
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction774
+private class ReduceAction352
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -27320,10 +8315,12 @@ private class ReduceAction774
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist7
+                                       var tidnode4 = nodearraylist6
                                        assert tidnode4 isa nullable TId
-                                       var pexprsnode5 = nodearraylist8
-                                       assert pexprsnode5 isa nullable AExprs
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
@@ -27334,12 +8331,11 @@ private class ReduceAction774
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction775
+private class ReduceAction353
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -27352,9 +8348,9 @@ private class ReduceAction775
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist8
+                                       var tidnode4 = nodearraylist7
                                        assert tidnode4 isa nullable TId
-                                       var pexprsnode5 = nodearraylist9
+                                       var pexprsnode5 = nodearraylist8
                                        assert pexprsnode5 isa nullable AExprs
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
@@ -27366,13 +8362,11 @@ private class ReduceAction775
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction777
+private class ReduceAction354
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -27380,31 +8374,31 @@ private class ReduceAction777
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tcbranode5 = nodearraylist9
-                                       assert tcbranode5 isa nullable TCbra
-                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tcbranode5,
-                                               null
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist7
+                                       assert tidnode4 isa nullable TId
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction778
+private class ReduceAction355
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -27414,33 +8408,29 @@ private class ReduceAction778
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tcbranode5 = nodearraylist9
-                                       assert tcbranode5 isa nullable TCbra
-                                       var pannotationsnode6 = nodearraylist10
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tcbranode5,
-                                               pannotationsnode6
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist8
+                                       assert tidnode4 isa nullable TId
+                                       var pexprsnode5 = nodearraylist9
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction779
+private class ReduceAction356
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -27449,26 +8439,27 @@ private class ReduceAction779
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tobranode5 = nodearraylist9
-                                       assert tobranode5 isa nullable TObra
-                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tobranode5,
-                                               null
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist8
+                                       assert tidnode4 isa nullable TId
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction780
+private class ReduceAction359
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27483,149 +8474,159 @@ private class ReduceAction780
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tobranode5 = nodearraylist9
-                                       assert tobranode5 isa nullable TObra
-                                       var pannotationsnode6 = nodearraylist10
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tobranode5,
-                                               pannotationsnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction781
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprsnode2 = nodearraylist1
-                                       assert pexprsnode2 isa nullable AExprs
-                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               pexprsnode2,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var toparnode4 = nodearraylist6
+                                       assert toparnode4 isa nullable TOpar
+                                       var ptypenode5 = nodearraylist8
+                                       assert ptypenode5 isa nullable AType
+                                       var tcparnode6 = nodearraylist10
+                                       assert tcparnode6 isa nullable TCpar
+                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               toparnode4,
+                                               ptypenode5,
+                                               tcparnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction782
+private class ReduceAction360
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprsnode2 = nodearraylist1
-                                       assert pexprsnode2 isa nullable AExprs
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               pexprsnode2,
-                                               pannotationsnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var toparnode4 = nodearraylist6
+                                       assert toparnode4 isa nullable TOpar
+                                       var tkwnotnode5 = nodearraylist8
+                                       assert tkwnotnode5 isa nullable TKwnot
+                                       var tkwnullnode6 = nodearraylist10
+                                       assert tkwnullnode6 isa nullable TKwnull
+                                       var tcparnode7 = nodearraylist12
+                                       assert tcparnode7 isa nullable TCpar
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               toparnode4,
+                                               tkwnotnode5,
+                                               tkwnullnode6,
+                                               tcparnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction783
+private class ReduceAction361
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2,
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode5 = nodearraylist6
+                                       assert tkwnotnode5 isa nullable TKwnot
+                                       var tkwnullnode6 = nodearraylist8
+                                       assert tkwnullnode6 isa nullable TKwnull
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               null,
+                                               tkwnotnode5,
+                                               tkwnullnode6,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction784
+private class ReduceAction362
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2,
-                                               pannotationsnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction785
-       super 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,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tdotdotdotnode3 = nodearraylist2
+                                       assert tdotdotdotnode3 isa nullable TDotdotdot
+                                       var pexprnode1: nullable AVarargExpr = new AVarargExpr.init_avarargexpr(
+                                               pexprnode2,
+                                               tdotdotdotnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction786
+private class ReduceAction363
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa nullable TKwself
                                        var pannotationsnode3 = nodearraylist2
                                        assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2,
+                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2,
                                                pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction787
+private class ReduceAction364
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2,
-                                               null
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction788
+private class ReduceAction365
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27644,23 +8645,7 @@ private class ReduceAction788
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction789
-       super 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,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction790
+private class ReduceAction366
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27679,23 +8664,7 @@ private class ReduceAction790
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction791
-       super 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,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction792
+private class ReduceAction367
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27706,7 +8675,7 @@ private class ReduceAction792
                                        assert tnumbernode2 isa nullable TNumber
                                        var pannotationsnode3 = nodearraylist2
                                        assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
+                                       var pexprnode1: nullable ADecIntExpr = new ADecIntExpr.init_adecintexpr(
                                                tnumbernode2,
                                                pannotationsnode3
                                        )
@@ -27714,23 +8683,26 @@ private class ReduceAction792
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction793
+private class ReduceAction368
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2,
-                                               null
+                                       var thexnumbernode2 = nodearraylist1
+                                       assert thexnumbernode2 isa nullable THexNumber
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AHexIntExpr = new AHexIntExpr.init_ahexintexpr(
+                                               thexnumbernode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction794
+private class ReduceAction369
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27749,103 +8721,151 @@ private class ReduceAction794
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction795
+private class ReduceAction370
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tcharnode2 = nodearraylist1
                                        assert tcharnode2 isa nullable TChar
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
                                        var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
                                                tcharnode2,
-                                               null
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction796
+private class ReduceAction371
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa nullable TString
                                        var pannotationsnode3 = nodearraylist2
                                        assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2,
+                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
+                                               tstringnode2,
                                                pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction797
+private class ReduceAction374
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2,
-                                               null
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tcbranode5 = nodearraylist9
+                                       assert tcbranode5 isa nullable TCbra
+                                       var pannotationsnode6 = nodearraylist10
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
+                                               tobranode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               tcbranode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction798
+private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2,
-                                               pannotationsnode3
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tobranode5 = nodearraylist9
+                                       assert tobranode5 isa nullable TObra
+                                       var pannotationsnode6 = nodearraylist10
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
+                                               tobranode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               tobranode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction800
+private class ReduceAction376
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tcparnode4 = nodearraylist5
-                                       assert tcparnode4 isa nullable TCpar
-                                       var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
-                                               toparnode2,
-                                               pexprnode3,
-                                               tcparnode4,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var ptypenode5 = nodearraylist4
+                                       assert ptypenode5 isa nullable AType
+                                       var tcbranode6 = nodearraylist5
+                                       assert tcbranode6 isa nullable TCbra
+                                       var pannotationsnode7 = nodearraylist6
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
+                                               tobranode2,
+                                               listnode4,
+                                               ptypenode5,
+                                               tcbranode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction801
+private class ReduceAction377
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27874,136 +8894,117 @@ private class ReduceAction801
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction802
+private class ReduceAction379
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var toparnode4 = nodearraylist6
-                                       assert toparnode4 isa nullable TOpar
-                                       var ptypenode5 = nodearraylist8
-                                       assert ptypenode5 isa nullable AType
-                                       var tcparnode6 = nodearraylist10
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               toparnode4,
-                                               ptypenode5,
-                                               tcparnode6
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable AManyExpr = new AManyExpr.init_amanyexpr(
+                                               listnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction803
+private class ReduceAction380
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var toparnode4 = nodearraylist6
-                                       assert toparnode4 isa nullable TOpar
-                                       var tkwnotnode5 = nodearraylist8
-                                       assert tkwnotnode5 isa nullable TKwnot
-                                       var tkwnullnode6 = nodearraylist10
-                                       assert tkwnullnode6 isa nullable TKwnull
-                                       var tcparnode7 = nodearraylist12
-                                       assert tcparnode7 isa nullable TCpar
-                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               toparnode4,
-                                               tkwnotnode5,
-                                               tkwnullnode6,
-                                               tcparnode7
-                                       )
+                                       var pexprnode1 = nodearraylist3
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction804
+private class ReduceAction381
+       super 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
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction382
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       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(_goto), node_list)
+       end
+end
+private class ReduceAction384
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       listnode4 = concat(listnode4, listnode2)
-                                       if pexprnode3 != null then
-                                               listnode4.add(pexprnode3)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode4,
-                                               null
-                                       )
+                                       var pexprnode1 = nodearraylist1
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction805
+private class ReduceAction386
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
                                        assert pexprnode4 isa nullable AExpr
-                                       listnode5 = concat(listnode5, listnode2)
-                                       listnode5 = concat(listnode5, listnode3)
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode5,
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction806
+private class ReduceAction387
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28030,7 +9031,7 @@ private class ReduceAction806
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction807
+private class ReduceAction388
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28061,7 +9062,7 @@ private class ReduceAction807
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction808
+private class ReduceAction389
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28083,7 +9084,23 @@ private class ReduceAction808
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction809
+private class ReduceAction390
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction391
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28098,7 +9115,7 @@ private class ReduceAction809
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction811
+private class ReduceAction394
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28113,7 +9130,7 @@ private class ReduceAction811
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction812
+private class ReduceAction395
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28128,7 +9145,7 @@ private class ReduceAction812
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction813
+private class ReduceAction396
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28153,7 +9170,7 @@ private class ReduceAction813
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction814
+private class ReduceAction397
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28184,86 +9201,56 @@ private class ReduceAction814
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction815
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode4,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction816
+private class ReduceAction398
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationsnode6 = nodearraylist2
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode4,
-                                               null,
-                                               pannotationsnode6
-                                       )
-                                       node_list = pannotationnode1
+                                       var pannotationsnode1 = nodearraylist1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction817
+private class ReduceAction400
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist2
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist6
-                                       assert tcparnode6 isa nullable TCpar
+                                       var listnode7 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist3
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationsnode9 = nodearraylist4
+                                       assert pannotationsnode9 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               null
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction818
+private class ReduceAction401
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -28271,30 +9258,37 @@ private class ReduceAction818
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist2
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist6
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pannotationsnode7 = nodearraylist7
-                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist3
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist4
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist8
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationsnode10 = nodearraylist9
+                                       assert pannotationsnode10 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               pannotationsnode7
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction819
+private class ReduceAction402
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28314,7 +9308,7 @@ private class ReduceAction819
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction820
+private class ReduceAction403
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28329,7 +9323,7 @@ private class ReduceAction820
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction821
+private class ReduceAction404
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28348,123 +9342,7 @@ private class ReduceAction821
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction823
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode4,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction824
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationsnode6 = nodearraylist3
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode4,
-                                               null,
-                                               pannotationsnode6
-                                       )
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction825
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist3
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist6
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               null
-                                       )
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction826
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist3
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist6
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pannotationsnode7 = nodearraylist7
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               pannotationsnode7
-                                       )
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction827
+private class ReduceAction407
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28473,16 +9351,25 @@ private class ReduceAction827
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist3
+                                       assert patidnode5 isa nullable AAtid
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
                                                null,
-                                               listnode5,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
                                                null,
                                                null
                                        )
@@ -28490,7 +9377,7 @@ private class ReduceAction827
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction828
+private class ReduceAction409
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28503,291 +9390,479 @@ private class ReduceAction828
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction829
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var patargnode1 = nodearraylist1
-                                       if patargnode1 != null then
-                                               listnode2.add(patargnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction830
+private class ReduceAction411
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var patargnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if patargnode1 != null then
-                                               listnode3.add(patargnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var listnode7 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction831
+private class ReduceAction412
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var patargnode1 = nodearraylist3
-                                       node_list = patargnode1
+                                       var listnode7 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationsnode9 = nodearraylist5
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction832
+private class ReduceAction413
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var patargnode1: nullable ATypeAtArg = new ATypeAtArg.init_atypeatarg(
-                                               ptypenode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist5
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist8
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               null
                                        )
-                                       node_list = patargnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction833
+private class ReduceAction414
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var patargnode1: nullable AExprAtArg = new AExprAtArg.init_aexpratarg(
-                                               pexprnode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist5
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist8
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationsnode10 = nodearraylist9
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
                                        )
-                                       node_list = patargnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction835
+private class ReduceAction415
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationsnode2 = nodearraylist1
-                                       assert pannotationsnode2 isa nullable AAnnotations
-                                       var patargnode1: nullable AAtAtArg = new AAtAtArg.init_aatatarg(
-                                               pannotationsnode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               null
                                        )
-                                       node_list = patargnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction836
+private class ReduceAction416
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
+                                       var listnode7 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               null
                                        )
-                                       node_list = patidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction837
+private class ReduceAction417
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist2
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
+                                       var listnode7 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationsnode9 = nodearraylist3
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
                                        )
-                                       node_list = patidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction838
+private class ReduceAction418
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist3
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist3
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist6
+                                       assert tcparnode9 isa nullable TCpar
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               null
                                        )
-                                       node_list = patidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction840
+private class ReduceAction419
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode2 = nodearraylist1
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist3
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist6
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
                                        )
-                                       node_list = patidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction841
+private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode2 = nodearraylist2
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var listnode7 = nodearraylist3
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               null
                                        )
-                                       node_list = patidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction842
+private class ReduceAction424
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode2 = nodearraylist3
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var pexprnode1: nullable ATypeExpr = new ATypeExpr.init_atypeexpr(
+                                               ptypenode2
                                        )
-                                       node_list = patidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction844
+private class ReduceAction427
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode2 = nodearraylist1
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pmethidnode3 = nodearraylist4
+                                       assert pmethidnode3 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
+                                               pexprnode2,
+                                               pmethidnode3
                                        )
-                                       node_list = patidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction845
+private class ReduceAction428
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode2 = nodearraylist2
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var pmethidnode3 = nodearraylist1
+                                       assert pmethidnode3 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
+                                               pexprnode2,
+                                               pmethidnode3
                                        )
-                                       node_list = patidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction846
+private class ReduceAction429
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode2 = nodearraylist3
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       var pannotationsnode2 = nodearraylist1
+                                       assert pannotationsnode2 isa nullable AAnnotations
+                                       var pexprnode1: nullable AAtExpr = new AAtExpr.init_aatexpr(
+                                               pannotationsnode2
                                        )
-                                       node_list = patidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction848
+private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwimportnode2 = nodearraylist1
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
-                                               tkwimportnode2
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction849
+private class ReduceAction431
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwimportnode2 = nodearraylist2
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
-                                               tkwimportnode2
+                                       var tkwexternnode2 = nodearraylist1
+                                       assert tkwexternnode2 isa nullable TKwextern
+                                       var patidnode1: nullable AKwexternAtid = new AKwexternAtid.init_akwexternatid(
+                                               tkwexternnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction850
+private class ReduceAction432
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwimportnode2 = nodearraylist3
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
-                                               tkwimportnode2
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var patidnode1: nullable AKwabstractAtid = new AKwabstractAtid.init_akwabstractatid(
+                                               tkwabstractnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction852
+private class ReduceAction433
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28813,7 +9888,7 @@ private class ReduceAction852
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction853
+private class ReduceAction434
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28835,39 +9910,39 @@ private class ReduceAction853
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction854
+private class ReduceAction436
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode2 = new Array[Object]
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
                                        var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode2
+                                               listnode3
                                        )
                                        node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction856
+private class ReduceAction438
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
+                                       var listnode2 = new Array[Object]
                                        var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode3
+                                               listnode2
                                        )
                                        node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction859
+private class ReduceAction439
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28893,23 +9968,24 @@ private class ReduceAction859
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction860
+private class ReduceAction440
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode3
+                                       )
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction861
+private class ReduceAction442
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28929,7 +10005,7 @@ private class ReduceAction861
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction862
+private class ReduceAction443
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28943,7 +10019,39 @@ private class ReduceAction862
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction863
+private class ReduceAction444
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist3
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction445
+       super 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(_goto), node_list)
+       end
+end
+private class ReduceAction446
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28958,12 +10066,11 @@ private class ReduceAction863
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction864
+private class ReduceAction447
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
@@ -28971,7 +10078,7 @@ private class ReduceAction864
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var tidnode2 = nodearraylist5
+                                       var tidnode2 = nodearraylist4
                                        listnode3 = concat(listnode3, listnode1)
                                        if tidnode2 != null then
                                                listnode3.add(tidnode2)
@@ -28980,7 +10087,7 @@ private class ReduceAction864
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction865
+private class ReduceAction448
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28998,7 +10105,7 @@ private class ReduceAction865
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction866
+private class ReduceAction449
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29020,55 +10127,183 @@ private class ReduceAction866
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction867
+private class ReduceAction450
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tquadnode2 = nodearraylist1
+                                       assert tquadnode2 isa nullable TQuad
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               tquadnode2,
+                                               listnode3,
+                                               tidnode4
+                                       )
+                                       node_list = pmodulenamenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction451
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var tquadnode2 = nodearraylist1
+                                       assert tquadnode2 isa nullable TQuad
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               tquadnode2,
+                                               listnode4,
+                                               tidnode5
+                                       )
+                                       node_list = pmodulenamenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction452
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode2,
+                                               tclassidnode3
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction453
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var tclassidnode4 = nodearraylist2
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction454
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               null
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction456
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode1 = nodearraylist1
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction457
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode1 = nodearraylist2
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction458
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode1 = nodearraylist3
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction460
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pmethidnode1 = nodearraylist1
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction461
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tquadnode2 = nodearraylist1
-                                       assert tquadnode2 isa nullable TQuad
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               tquadnode2,
-                                               listnode3,
-                                               tidnode4
-                                       )
-                                       node_list = pmodulenamenode1
+                                       var pmethidnode1 = nodearraylist2
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction868
+private class ReduceAction462
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tquadnode2 = nodearraylist1
-                                       assert tquadnode2 isa nullable TQuad
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tidnode5 = nodearraylist4
-                                       assert tidnode5 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               tquadnode2,
-                                               listnode4,
-                                               tidnode5
-                                       )
-                                       node_list = pmodulenamenode1
+                                       var pmethidnode1 = nodearraylist3
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction869
+private class ReduceAction464
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29081,7 +10316,7 @@ private class ReduceAction869
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction870
+private class ReduceAction465
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29094,16 +10329,27 @@ private class ReduceAction870
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction871
+private class ReduceAction467
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
+                                       var tkwendnode1 = nodearraylist1
+                                       node_list = tkwendnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction873
+private class ReduceAction468
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction470
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29120,7 +10366,7 @@ private class ReduceAction873
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction874
+private class ReduceAction471
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29138,16 +10384,7 @@ private class ReduceAction874
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction876
-       super 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
-end
-private class ReduceAction877
+private class ReduceAction474
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29158,7 +10395,7 @@ private class ReduceAction877
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction878
+private class ReduceAction475
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29168,7 +10405,7 @@ private class ReduceAction878
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction879
+private class ReduceAction476
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29179,11 +10416,12 @@ private class ReduceAction879
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1227
+private class ReduceAction836
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
@@ -29191,7 +10429,7 @@ private class ReduceAction1227
                                        assert tkwissetnode2 isa nullable TKwisset
                                        var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist3
+                                       var tattridnode4 = nodearraylist4
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
                                                tkwissetnode2,
@@ -29202,82 +10440,87 @@ private class ReduceAction1227
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1228
+private class ReduceAction838
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist4
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist3
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1231
+private class ReduceAction839
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1232
+private class ReduceAction840
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist3
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1235
+private class ReduceAction841
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist2
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist3
+                                       var pexprsnode4 = nodearraylist4
                                        assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
@@ -29288,12 +10531,11 @@ private class ReduceAction1235
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1236
+private class ReduceAction842
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
@@ -29301,8 +10543,10 @@ private class ReduceAction1236
                                        assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist4
-                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
@@ -29312,7 +10556,7 @@ private class ReduceAction1236
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1243
+private class ReduceAction849
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29335,7 +10579,31 @@ private class ReduceAction1243
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1267
+private class ReduceAction850
+       super 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 tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction873
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29348,7 +10616,7 @@ private class ReduceAction1267
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1268
+private class ReduceAction874
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29358,7 +10626,7 @@ private class ReduceAction1268
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1622
+private class ReduceAction1032
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29373,7 +10641,7 @@ private class ReduceAction1622
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1623
+private class ReduceAction1033
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29392,7 +10660,7 @@ private class ReduceAction1623
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1624
+private class ReduceAction1034
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29407,7 +10675,7 @@ private class ReduceAction1624
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1625
+private class ReduceAction1035
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29426,7 +10694,7 @@ private class ReduceAction1625
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1626
+private class ReduceAction1036
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29441,7 +10709,7 @@ private class ReduceAction1626
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1627
+private class ReduceAction1037
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29460,56 +10728,22 @@ private class ReduceAction1627
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1628
-       super 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
-                                       if ppropdefnode1 != null then
-                                               listnode2.add(ppropdefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1629
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1630
+private class ReduceAction1038
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var psuperclassnode1 = nodearraylist1
-                                       if psuperclassnode1 != null then
-                                               listnode2.add(psuperclassnode1)
+                                       var pformaldefnode1 = nodearraylist1
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1631
+private class ReduceAction1039
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29519,31 +10753,16 @@ private class ReduceAction1631
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var psuperclassnode2 = nodearraylist2
+                                       var pformaldefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if psuperclassnode2 != null then
-                                               listnode3.add(psuperclassnode2)
+                                       if pformaldefnode2 != null then
+                                               listnode3.add(pformaldefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1634
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist1
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1635
+private class ReduceAction1041
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29553,16 +10772,16 @@ private class ReduceAction1635
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pformaldefnode2 = nodearraylist2
+                                       var ppropdefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pformaldefnode2 != null then
-                                               listnode3.add(pformaldefnode2)
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1636
+private class ReduceAction1042
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29577,7 +10796,7 @@ private class ReduceAction1636
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1637
+private class ReduceAction1043
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29596,7 +10815,7 @@ private class ReduceAction1637
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1638
+private class ReduceAction1044
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29611,7 +10830,7 @@ private class ReduceAction1638
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1639
+private class ReduceAction1045
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29630,7 +10849,7 @@ private class ReduceAction1639
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1641
+private class ReduceAction1047
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29649,22 +10868,7 @@ private class ReduceAction1641
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1642
-       super 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
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1643
+private class ReduceAction1049
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29683,21 +10887,7 @@ private class ReduceAction1643
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1644
-       super 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(_goto), node_list)
-       end
-end
-private class ReduceAction1645
+private class ReduceAction1055
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29715,7 +10905,7 @@ private class ReduceAction1645
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1647
+private class ReduceAction1057
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29734,26 +10924,7 @@ private class ReduceAction1647
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1651
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var patargnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if patargnode2 != null then
-                                               listnode3.add(patargnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1655
+private class ReduceAction1065
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29772,7 +10943,7 @@ private class ReduceAction1655
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1656
+private class ReduceAction1066
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29787,7 +10958,7 @@ private class ReduceAction1656
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1657
+private class ReduceAction1067
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29806,7 +10977,7 @@ private class ReduceAction1657
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1658
+private class ReduceAction1068
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29821,7 +10992,7 @@ private class ReduceAction1658
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1659
+private class ReduceAction1069
        super ReduceAction
        redef fun action(p: Parser)
        do