parser: regenerate with multi-iterators
[nit.git] / src / parser / parser.nit
index 7c3afb6..d907890 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
-       do
-               _reduce_table = new Array[ReduceAction].with_items(
-                       new ReduceAction0(0),
-                       new ReduceAction1(0),
-                       new ReduceAction2(0),
-                       new ReduceAction3(0),
-                       new ReduceAction4(0),
-                       new ReduceAction5(0),
-                       new ReduceAction6(0),
-                       new ReduceAction7(0),
-                       new ReduceAction8(0),
-                       new ReduceAction9(0),
-                       new ReduceAction10(0),
-                       new ReduceAction11(0),
-                       new ReduceAction12(0),
-                       new ReduceAction13(0),
-                       new ReduceAction14(0),
-                       new ReduceAction15(0),
-                       new ReduceAction16(0),
-                       new ReduceAction17(0),
-                       new ReduceAction18(0),
-                       new ReduceAction19(0),
-                       new ReduceAction20(0),
-                       new ReduceAction21(0),
-                       new ReduceAction22(0),
-                       new ReduceAction23(0),
-                       new ReduceAction24(0),
-                       new ReduceAction25(0),
-                       new ReduceAction26(0),
-                       new ReduceAction27(0),
-                       new ReduceAction28(0),
-                       new ReduceAction29(0),
-                       new ReduceAction30(0),
-                       new ReduceAction31(0),
-                       new ReduceAction32(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 ReduceAction592(61),
-                       new ReduceAction730(61),
-                       new ReduceAction731(61),
-                       new ReduceAction592(62),
-                       new ReduceAction733(62),
-                       new ReduceAction734(62),
-                       new ReduceAction735(62),
-                       new ReduceAction592(63),
-                       new ReduceAction737(63),
-                       new ReduceAction738(63),
-                       new ReduceAction592(64),
-                       new ReduceAction740(64),
-                       new ReduceAction741(64),
-                       new ReduceAction742(64),
-                       new ReduceAction743(64),
-                       new ReduceAction744(64),
-                       new ReduceAction743(64),
-                       new ReduceAction746(64),
-                       new ReduceAction747(64),
-                       new ReduceAction746(64),
-                       new ReduceAction749(65),
-                       new ReduceAction750(65),
-                       new ReduceAction751(65),
-                       new ReduceAction752(65),
-                       new ReduceAction751(65),
-                       new ReduceAction754(65),
-                       new ReduceAction755(65),
-                       new ReduceAction754(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 ReduceAction771(65),
-                       new ReduceAction772(65),
-                       new ReduceAction773(65),
-                       new ReduceAction774(65),
-                       new ReduceAction773(65),
-                       new ReduceAction776(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 ReduceAction592(65),
-                       new ReduceAction799(65),
-                       new ReduceAction800(65),
-                       new ReduceAction801(65),
-                       new ReduceAction802(65),
-                       new ReduceAction803(66),
-                       new ReduceAction804(66),
-                       new ReduceAction805(66),
-                       new ReduceAction806(66),
-                       new ReduceAction807(67),
-                       new ReduceAction808(68),
-                       new ReduceAction807(69),
-                       new ReduceAction810(70),
-                       new ReduceAction811(71),
-                       new ReduceAction812(72),
-                       new ReduceAction813(72),
-                       new ReduceAction814(73),
-                       new ReduceAction815(73),
-                       new ReduceAction816(73),
-                       new ReduceAction817(73),
-                       new ReduceAction818(74),
-                       new ReduceAction819(75),
-                       new ReduceAction820(75),
-                       new ReduceAction818(76),
-                       new ReduceAction822(77),
-                       new ReduceAction823(77),
-                       new ReduceAction824(77),
-                       new ReduceAction825(77),
-                       new ReduceAction826(77),
-                       new ReduceAction827(78),
-                       new ReduceAction828(79),
-                       new ReduceAction829(79),
-                       new ReduceAction830(80),
-                       new ReduceAction831(81),
-                       new ReduceAction832(81),
-                       new ReduceAction832(81),
-                       new ReduceAction834(81),
-                       new ReduceAction835(82),
-                       new ReduceAction836(82),
-                       new ReduceAction837(82),
-                       new ReduceAction836(82),
-                       new ReduceAction839(82),
-                       new ReduceAction840(82),
-                       new ReduceAction841(82),
-                       new ReduceAction840(82),
-                       new ReduceAction843(82),
-                       new ReduceAction844(82),
-                       new ReduceAction845(82),
-                       new ReduceAction844(82),
-                       new ReduceAction847(82),
-                       new ReduceAction848(82),
-                       new ReduceAction849(82),
-                       new ReduceAction848(82),
-                       new ReduceAction851(83),
-                       new ReduceAction852(83),
-                       new ReduceAction853(83),
-                       new ReduceAction851(84),
-                       new ReduceAction855(84),
-                       new ReduceAction852(84),
-                       new ReduceAction853(84),
-                       new ReduceAction858(85),
-                       new ReduceAction859(86),
-                       new ReduceAction860(86),
-                       new ReduceAction861(87),
-                       new ReduceAction862(88),
-                       new ReduceAction863(88),
-                       new ReduceAction864(89),
-                       new ReduceAction865(89),
-                       new ReduceAction866(89),
-                       new ReduceAction867(89),
-                       new ReduceAction868(90),
-                       new ReduceAction869(91),
-                       new ReduceAction870(92),
-                       new ReduceAction870(92),
-                       new ReduceAction872(93),
-                       new ReduceAction873(93),
-                       new ReduceAction70(93),
-                       new ReduceAction875(94),
-                       new ReduceAction876(94),
-                       new ReduceAction877(95),
-                       new ReduceAction878(95),
-                       new ReduceAction870(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 ReduceAction592(105),
-                       new ReduceAction730(105),
-                       new ReduceAction731(105),
-                       new ReduceAction592(106),
-                       new ReduceAction733(106),
-                       new ReduceAction734(106),
-                       new ReduceAction735(106),
-                       new ReduceAction592(107),
-                       new ReduceAction737(107),
-                       new ReduceAction738(107),
-                       new ReduceAction592(108),
-                       new ReduceAction740(108),
-                       new ReduceAction741(108),
-                       new ReduceAction742(108),
-                       new ReduceAction743(108),
-                       new ReduceAction746(108),
-                       new ReduceAction744(108),
-                       new ReduceAction747(108),
-                       new ReduceAction743(108),
-                       new ReduceAction746(108),
-                       new ReduceAction749(109),
-                       new ReduceAction750(109),
-                       new ReduceAction751(109),
-                       new ReduceAction754(109),
-                       new ReduceAction752(109),
-                       new ReduceAction755(109),
-                       new ReduceAction751(109),
-                       new ReduceAction754(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 ReduceAction772(109),
-                       new ReduceAction773(109),
-                       new ReduceAction774(109),
-                       new ReduceAction773(109),
-                       new ReduceAction782(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 ReduceAction592(109),
-                       new ReduceAction799(109),
-                       new ReduceAction800(109),
-                       new ReduceAction801(109),
-                       new ReduceAction802(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 ReduceAction592(118),
-                       new ReduceAction730(118),
-                       new ReduceAction731(118),
-                       new ReduceAction592(119),
-                       new ReduceAction733(119),
-                       new ReduceAction734(119),
-                       new ReduceAction735(119),
-                       new ReduceAction592(120),
-                       new ReduceAction737(120),
-                       new ReduceAction738(120),
-                       new ReduceAction592(121),
-                       new ReduceAction740(121),
-                       new ReduceAction741(121),
-                       new ReduceAction742(121),
-                       new ReduceAction743(121),
-                       new ReduceAction744(121),
-                       new ReduceAction743(121),
-                       new ReduceAction746(121),
-                       new ReduceAction747(121),
-                       new ReduceAction746(121),
-                       new ReduceAction749(122),
-                       new ReduceAction750(122),
-                       new ReduceAction751(122),
-                       new ReduceAction752(122),
-                       new ReduceAction751(122),
-                       new ReduceAction754(122),
-                       new ReduceAction755(122),
-                       new ReduceAction754(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 ReduceAction771(122),
-                       new ReduceAction772(122),
-                       new ReduceAction773(122),
-                       new ReduceAction774(122),
-                       new ReduceAction773(122),
-                       new ReduceAction782(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 ReduceAction592(122),
-                       new ReduceAction801(122),
-                       new ReduceAction802(122),
-                       new ReduceAction812(123),
-                       new ReduceAction813(123),
-                       new ReduceAction814(124),
-                       new ReduceAction815(124),
-                       new ReduceAction828(125),
-                       new ReduceAction829(125),
-                       new ReduceAction831(126),
-                       new ReduceAction832(126),
-                       new ReduceAction832(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 ReduceAction592(133),
-                       new ReduceAction730(133),
-                       new ReduceAction731(133),
-                       new ReduceAction592(134),
-                       new ReduceAction733(134),
-                       new ReduceAction734(134),
-                       new ReduceAction735(134),
-                       new ReduceAction592(135),
-                       new ReduceAction737(135),
-                       new ReduceAction738(135),
-                       new ReduceAction592(136),
-                       new ReduceAction740(136),
-                       new ReduceAction1223(136),
-                       new ReduceAction1224(136),
-                       new ReduceAction741(136),
-                       new ReduceAction1224(136),
-                       new ReduceAction1227(137),
-                       new ReduceAction1228(137),
-                       new ReduceAction749(137),
-                       new ReduceAction1228(137),
-                       new ReduceAction1231(137),
-                       new ReduceAction1232(137),
-                       new ReduceAction619(137),
-                       new ReduceAction1232(137),
-                       new ReduceAction627(137),
-                       new ReduceAction628(137),
-                       new ReduceAction629(137),
-                       new ReduceAction630(137),
-                       new ReduceAction1239(137),
-                       new ReduceAction772(137),
-                       new ReduceAction773(137),
-                       new ReduceAction774(137),
-                       new ReduceAction773(137),
-                       new ReduceAction782(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 ReduceAction592(137),
-                       new ReduceAction801(137),
-                       new ReduceAction802(137),
-                       new ReduceAction1263(138),
-                       new ReduceAction1264(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 ReduceAction822(162),
-                       new ReduceAction823(162),
-                       new ReduceAction824(162),
-                       new ReduceAction825(162),
-                       new ReduceAction826(162),
-                       new ReduceAction835(163),
-                       new ReduceAction836(163),
-                       new ReduceAction837(163),
-                       new ReduceAction836(163),
-                       new ReduceAction847(163),
-                       new ReduceAction848(163),
-                       new ReduceAction849(163),
-                       new ReduceAction848(163),
-                       new ReduceAction1538(164),
-                       new ReduceAction1539(164),
-                       new ReduceAction1540(165),
-                       new ReduceAction1541(165),
-                       new ReduceAction1542(166),
-                       new ReduceAction1543(166),
-                       new ReduceAction1544(167),
-                       new ReduceAction1545(167),
-                       new ReduceAction1546(168),
-                       new ReduceAction1547(168),
-                       new ReduceAction1544(169),
-                       new ReduceAction1545(169),
-                       new ReduceAction1550(170),
-                       new ReduceAction1551(170),
-                       new ReduceAction1552(171),
-                       new ReduceAction1553(171),
-                       new ReduceAction1554(172),
-                       new ReduceAction1555(172),
-                       new ReduceAction585(173),
-                       new ReduceAction1557(173),
-                       new ReduceAction1558(174),
-                       new ReduceAction1559(174),
-                       new ReduceAction1560(175),
-                       new ReduceAction1561(175),
-                       new ReduceAction819(176),
-                       new ReduceAction1563(176),
-                       new ReduceAction819(177),
-                       new ReduceAction1563(177),
-                       new ReduceAction828(178),
-                       new ReduceAction1567(178),
-                       new ReduceAction1558(179),
-                       new ReduceAction1559(179),
-                       new ReduceAction862(180),
-                       new ReduceAction1571(180),
-                       new ReduceAction1572(181),
-                       new ReduceAction1573(181),
-                       new ReduceAction1574(182),
-                       new ReduceAction1575(182),
-                       new ReduceAction819(183),
-                       new ReduceAction1563(183)
-               )
-       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
+redef class Parser
+       redef fun build_reduce_table
+       do
+               var reduce_table = new Array[ReduceAction].with_capacity(1091)
+               self.reduce_table = reduce_table
+               reduce_table.add new ReduceAction0(0)
+               reduce_table.add new ReduceAction1(0)
+               reduce_table.add new ReduceAction2(0)
+               reduce_table.add new ReduceAction3(0)
+               reduce_table.add new ReduceAction4(0)
+               reduce_table.add new ReduceAction5(0)
+               reduce_table.add new ReduceAction6(0)
+               reduce_table.add new ReduceAction7(0)
+               reduce_table.add new ReduceAction8(0)
+               reduce_table.add new ReduceAction9(0)
+               reduce_table.add new ReduceAction10(0)
+               reduce_table.add new ReduceAction11(0)
+               reduce_table.add new ReduceAction12(0)
+               reduce_table.add new ReduceAction13(0)
+               reduce_table.add new ReduceAction14(0)
+               reduce_table.add new ReduceAction15(0)
+               reduce_table.add new ReduceAction16(1)
+               reduce_table.add new ReduceAction17(2)
+               reduce_table.add new ReduceAction18(2)
+               reduce_table.add new ReduceAction19(3)
+               reduce_table.add new ReduceAction20(3)
+               reduce_table.add new ReduceAction21(4)
+               reduce_table.add new ReduceAction22(4)
+               reduce_table.add new ReduceAction23(4)
+               reduce_table.add new ReduceAction24(5)
+               reduce_table.add new ReduceAction24(5)
+               reduce_table.add new ReduceAction26(6)
+               reduce_table.add new ReduceAction27(6)
+               reduce_table.add new ReduceAction28(6)
+               reduce_table.add new ReduceAction29(6)
+               reduce_table.add new ReduceAction22(7)
+               reduce_table.add new ReduceAction31(7)
+               reduce_table.add new ReduceAction32(8)
+               reduce_table.add new ReduceAction33(8)
+               reduce_table.add new ReduceAction34(8)
+               reduce_table.add new ReduceAction35(8)
+               reduce_table.add new ReduceAction36(8)
+               reduce_table.add new ReduceAction37(9)
+               reduce_table.add new ReduceAction38(9)
+               reduce_table.add new ReduceAction39(9)
+               reduce_table.add new ReduceAction40(10)
+               reduce_table.add new ReduceAction41(11)
+               reduce_table.add new ReduceAction42(11)
+               reduce_table.add new ReduceAction43(12)
+               reduce_table.add new ReduceAction44(13)
+               reduce_table.add new ReduceAction45(13)
+               reduce_table.add new ReduceAction46(13)
+               reduce_table.add new ReduceAction47(14)
+               reduce_table.add new ReduceAction48(15)
+               reduce_table.add new ReduceAction49(15)
+               reduce_table.add new ReduceAction50(15)
+               reduce_table.add new ReduceAction51(15)
+               reduce_table.add new ReduceAction52(15)
+               reduce_table.add new ReduceAction53(15)
+               reduce_table.add new ReduceAction54(15)
+               reduce_table.add new ReduceAction55(15)
+               reduce_table.add new ReduceAction56(15)
+               reduce_table.add new ReduceAction57(15)
+               reduce_table.add new ReduceAction58(15)
+               reduce_table.add new ReduceAction59(15)
+               reduce_table.add new ReduceAction60(15)
+               reduce_table.add new ReduceAction61(15)
+               reduce_table.add new ReduceAction62(15)
+               reduce_table.add new ReduceAction63(15)
+               reduce_table.add new ReduceAction64(15)
+               reduce_table.add new ReduceAction65(15)
+               reduce_table.add new ReduceAction66(15)
+               reduce_table.add new ReduceAction67(15)
+               reduce_table.add new ReduceAction68(15)
+               reduce_table.add new ReduceAction69(15)
+               reduce_table.add new ReduceAction70(15)
+               reduce_table.add new ReduceAction71(15)
+               reduce_table.add new ReduceAction72(15)
+               reduce_table.add new ReduceAction73(15)
+               reduce_table.add new ReduceAction74(15)
+               reduce_table.add new ReduceAction74(15)
+               reduce_table.add new ReduceAction76(16)
+               reduce_table.add new ReduceAction77(16)
+               reduce_table.add new ReduceAction22(16)
+               reduce_table.add new ReduceAction76(17)
+               reduce_table.add new ReduceAction80(17)
+               reduce_table.add new ReduceAction81(18)
+               reduce_table.add new ReduceAction82(18)
+               reduce_table.add new ReduceAction83(18)
+               reduce_table.add new ReduceAction84(18)
+               reduce_table.add new ReduceAction85(18)
+               reduce_table.add new ReduceAction86(19)
+               reduce_table.add new ReduceAction87(19)
+               reduce_table.add new ReduceAction88(19)
+               reduce_table.add new ReduceAction89(19)
+               reduce_table.add new ReduceAction90(19)
+               reduce_table.add new ReduceAction91(19)
+               reduce_table.add new ReduceAction92(19)
+               reduce_table.add new ReduceAction93(19)
+               reduce_table.add new ReduceAction94(19)
+               reduce_table.add new ReduceAction95(19)
+               reduce_table.add new ReduceAction96(19)
+               reduce_table.add new ReduceAction97(19)
+               reduce_table.add new ReduceAction98(19)
+               reduce_table.add new ReduceAction99(19)
+               reduce_table.add new ReduceAction100(19)
+               reduce_table.add new ReduceAction101(19)
+               reduce_table.add new ReduceAction102(19)
+               reduce_table.add new ReduceAction103(19)
+               reduce_table.add new ReduceAction104(19)
+               reduce_table.add new ReduceAction105(19)
+               reduce_table.add new ReduceAction106(19)
+               reduce_table.add new ReduceAction107(19)
+               reduce_table.add new ReduceAction108(19)
+               reduce_table.add new ReduceAction109(20)
+               reduce_table.add new ReduceAction110(20)
+               reduce_table.add new ReduceAction111(20)
+               reduce_table.add new ReduceAction112(20)
+               reduce_table.add new ReduceAction113(21)
+               reduce_table.add new ReduceAction114(21)
+               reduce_table.add new ReduceAction39(21)
+               reduce_table.add new ReduceAction116(22)
+               reduce_table.add new ReduceAction117(23)
+               reduce_table.add new ReduceAction118(23)
+               reduce_table.add new ReduceAction119(23)
+               reduce_table.add new ReduceAction120(23)
+               reduce_table.add new ReduceAction121(23)
+               reduce_table.add new ReduceAction122(24)
+               reduce_table.add new ReduceAction123(24)
+               reduce_table.add new ReduceAction22(24)
+               reduce_table.add new ReduceAction125(25)
+               reduce_table.add new ReduceAction126(26)
+               reduce_table.add new ReduceAction126(26)
+               reduce_table.add new ReduceAction128(26)
+               reduce_table.add new ReduceAction129(27)
+               reduce_table.add new ReduceAction130(27)
+               reduce_table.add new ReduceAction131(27)
+               reduce_table.add new ReduceAction132(28)
+               reduce_table.add new ReduceAction133(28)
+               reduce_table.add new ReduceAction134(28)
+               reduce_table.add new ReduceAction135(28)
+               reduce_table.add new ReduceAction136(28)
+               reduce_table.add new ReduceAction137(28)
+               reduce_table.add new ReduceAction22(29)
+               reduce_table.add new ReduceAction139(29)
+               reduce_table.add new ReduceAction140(30)
+               reduce_table.add new ReduceAction141(31)
+               reduce_table.add new ReduceAction142(31)
+               reduce_table.add new ReduceAction143(32)
+               reduce_table.add new ReduceAction22(32)
+               reduce_table.add new ReduceAction145(33)
+               reduce_table.add new ReduceAction146(34)
+               reduce_table.add new ReduceAction147(34)
+               reduce_table.add new ReduceAction148(34)
+               reduce_table.add new ReduceAction149(34)
+               reduce_table.add new ReduceAction150(35)
+               reduce_table.add new ReduceAction151(35)
+               reduce_table.add new ReduceAction152(36)
+               reduce_table.add new ReduceAction152(37)
+               reduce_table.add new ReduceAction152(38)
+               reduce_table.add new ReduceAction22(38)
+               reduce_table.add new ReduceAction156(39)
+               reduce_table.add new ReduceAction157(39)
+               reduce_table.add new ReduceAction158(39)
+               reduce_table.add new ReduceAction159(39)
+               reduce_table.add new ReduceAction160(40)
+               reduce_table.add new ReduceAction161(40)
+               reduce_table.add new ReduceAction162(41)
+               reduce_table.add new ReduceAction163(41)
+               reduce_table.add new ReduceAction164(42)
+               reduce_table.add new ReduceAction165(42)
+               reduce_table.add new ReduceAction156(43)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction169(44)
+               reduce_table.add new ReduceAction170(44)
+               reduce_table.add new ReduceAction171(44)
+               reduce_table.add new ReduceAction172(44)
+               reduce_table.add new ReduceAction173(44)
+               reduce_table.add new ReduceAction174(44)
+               reduce_table.add new ReduceAction175(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction159(44)
+               reduce_table.add new ReduceAction183(44)
+               reduce_table.add new ReduceAction184(44)
+               reduce_table.add new ReduceAction185(44)
+               reduce_table.add new ReduceAction186(44)
+               reduce_table.add new ReduceAction187(44)
+               reduce_table.add new ReduceAction188(44)
+               reduce_table.add new ReduceAction189(44)
+               reduce_table.add new ReduceAction190(44)
+               reduce_table.add new ReduceAction191(44)
+               reduce_table.add new ReduceAction192(44)
+               reduce_table.add new ReduceAction193(44)
+               reduce_table.add new ReduceAction194(44)
+               reduce_table.add new ReduceAction195(44)
+               reduce_table.add new ReduceAction194(44)
+               reduce_table.add new ReduceAction197(44)
+               reduce_table.add new ReduceAction198(44)
+               reduce_table.add new ReduceAction197(44)
+               reduce_table.add new ReduceAction200(44)
+               reduce_table.add new ReduceAction201(45)
+               reduce_table.add new ReduceAction202(45)
+               reduce_table.add new ReduceAction203(46)
+               reduce_table.add new ReduceAction204(46)
+               reduce_table.add new ReduceAction205(46)
+               reduce_table.add new ReduceAction206(46)
+               reduce_table.add new ReduceAction207(47)
+               reduce_table.add new ReduceAction208(47)
+               reduce_table.add new ReduceAction209(47)
+               reduce_table.add new ReduceAction210(47)
+               reduce_table.add new ReduceAction211(47)
+               reduce_table.add new ReduceAction212(47)
+               reduce_table.add new ReduceAction213(47)
+               reduce_table.add new ReduceAction214(47)
+               reduce_table.add new ReduceAction215(47)
+               reduce_table.add new ReduceAction216(47)
+               reduce_table.add new ReduceAction217(47)
+               reduce_table.add new ReduceAction218(47)
+               reduce_table.add new ReduceAction219(47)
+               reduce_table.add new ReduceAction220(47)
+               reduce_table.add new ReduceAction221(47)
+               reduce_table.add new ReduceAction222(47)
+               reduce_table.add new ReduceAction223(47)
+               reduce_table.add new ReduceAction224(47)
+               reduce_table.add new ReduceAction225(47)
+               reduce_table.add new ReduceAction226(47)
+               reduce_table.add new ReduceAction227(47)
+               reduce_table.add new ReduceAction228(47)
+               reduce_table.add new ReduceAction229(47)
+               reduce_table.add new ReduceAction230(47)
+               reduce_table.add new ReduceAction231(47)
+               reduce_table.add new ReduceAction232(47)
+               reduce_table.add new ReduceAction233(47)
+               reduce_table.add new ReduceAction234(47)
+               reduce_table.add new ReduceAction235(47)
+               reduce_table.add new ReduceAction236(47)
+               reduce_table.add new ReduceAction237(47)
+               reduce_table.add new ReduceAction238(47)
+               reduce_table.add new ReduceAction239(47)
+               reduce_table.add new ReduceAction240(47)
+               reduce_table.add new ReduceAction241(47)
+               reduce_table.add new ReduceAction242(47)
+               reduce_table.add new ReduceAction243(47)
+               reduce_table.add new ReduceAction244(47)
+               reduce_table.add new ReduceAction245(48)
+               reduce_table.add new ReduceAction246(48)
+               reduce_table.add new ReduceAction247(48)
+               reduce_table.add new ReduceAction248(48)
+               reduce_table.add new ReduceAction249(48)
+               reduce_table.add new ReduceAction250(48)
+               reduce_table.add new ReduceAction251(48)
+               reduce_table.add new ReduceAction252(48)
+               reduce_table.add new ReduceAction253(48)
+               reduce_table.add new ReduceAction254(48)
+               reduce_table.add new ReduceAction255(48)
+               reduce_table.add new ReduceAction256(49)
+               reduce_table.add new ReduceAction257(49)
+               reduce_table.add new ReduceAction258(50)
+               reduce_table.add new ReduceAction259(50)
+               reduce_table.add new ReduceAction260(50)
+               reduce_table.add new ReduceAction261(50)
+               reduce_table.add new ReduceAction262(50)
+               reduce_table.add new ReduceAction263(50)
+               reduce_table.add new ReduceAction264(50)
+               reduce_table.add new ReduceAction265(50)
+               reduce_table.add new ReduceAction158(51)
+               reduce_table.add new ReduceAction267(52)
+               reduce_table.add new ReduceAction268(52)
+               reduce_table.add new ReduceAction269(53)
+               reduce_table.add new ReduceAction270(53)
+               reduce_table.add new ReduceAction271(54)
+               reduce_table.add new ReduceAction272(54)
+               reduce_table.add new ReduceAction273(55)
+               reduce_table.add new ReduceAction274(55)
+               reduce_table.add new ReduceAction275(56)
+               reduce_table.add new ReduceAction276(57)
+               reduce_table.add new ReduceAction277(57)
+               reduce_table.add new ReduceAction278(58)
+               reduce_table.add new ReduceAction279(58)
+               reduce_table.add new ReduceAction159(58)
+               reduce_table.add new ReduceAction281(59)
+               reduce_table.add new ReduceAction282(59)
+               reduce_table.add new ReduceAction283(59)
+               reduce_table.add new ReduceAction284(59)
+               reduce_table.add new ReduceAction285(60)
+               reduce_table.add new ReduceAction159(61)
+               reduce_table.add new ReduceAction287(61)
+               reduce_table.add new ReduceAction159(62)
+               reduce_table.add new ReduceAction289(62)
+               reduce_table.add new ReduceAction290(62)
+               reduce_table.add new ReduceAction291(62)
+               reduce_table.add new ReduceAction292(62)
+               reduce_table.add new ReduceAction159(63)
+               reduce_table.add new ReduceAction294(63)
+               reduce_table.add new ReduceAction159(64)
+               reduce_table.add new ReduceAction296(64)
+               reduce_table.add new ReduceAction297(64)
+               reduce_table.add new ReduceAction298(64)
+               reduce_table.add new ReduceAction299(64)
+               reduce_table.add new ReduceAction300(64)
+               reduce_table.add new ReduceAction301(64)
+               reduce_table.add new ReduceAction302(64)
+               reduce_table.add new ReduceAction303(64)
+               reduce_table.add new ReduceAction159(65)
+               reduce_table.add new ReduceAction305(65)
+               reduce_table.add new ReduceAction159(66)
+               reduce_table.add new ReduceAction307(66)
+               reduce_table.add new ReduceAction159(67)
+               reduce_table.add new ReduceAction309(67)
+               reduce_table.add new ReduceAction159(68)
+               reduce_table.add new ReduceAction311(68)
+               reduce_table.add new ReduceAction312(68)
+               reduce_table.add new ReduceAction159(69)
+               reduce_table.add new ReduceAction314(69)
+               reduce_table.add new ReduceAction315(69)
+               reduce_table.add new ReduceAction159(70)
+               reduce_table.add new ReduceAction317(70)
+               reduce_table.add new ReduceAction318(70)
+               reduce_table.add new ReduceAction319(70)
+               reduce_table.add new ReduceAction159(71)
+               reduce_table.add new ReduceAction321(71)
+               reduce_table.add new ReduceAction159(72)
+               reduce_table.add new ReduceAction323(72)
+               reduce_table.add new ReduceAction324(72)
+               reduce_table.add new ReduceAction325(72)
+               reduce_table.add new ReduceAction326(72)
+               reduce_table.add new ReduceAction159(73)
+               reduce_table.add new ReduceAction328(73)
+               reduce_table.add new ReduceAction329(73)
+               reduce_table.add new ReduceAction330(73)
+               reduce_table.add new ReduceAction331(73)
+               reduce_table.add new ReduceAction159(74)
+               reduce_table.add new ReduceAction333(74)
+               reduce_table.add new ReduceAction334(74)
+               reduce_table.add new ReduceAction183(74)
+               reduce_table.add new ReduceAction336(74)
+               reduce_table.add new ReduceAction184(74)
+               reduce_table.add new ReduceAction338(74)
+               reduce_table.add new ReduceAction185(74)
+               reduce_table.add new ReduceAction340(74)
+               reduce_table.add new ReduceAction186(74)
+               reduce_table.add new ReduceAction342(74)
+               reduce_table.add new ReduceAction187(74)
+               reduce_table.add new ReduceAction344(74)
+               reduce_table.add new ReduceAction188(74)
+               reduce_table.add new ReduceAction346(74)
+               reduce_table.add new ReduceAction189(74)
+               reduce_table.add new ReduceAction348(74)
+               reduce_table.add new ReduceAction190(74)
+               reduce_table.add new ReduceAction350(74)
+               reduce_table.add new ReduceAction191(74)
+               reduce_table.add new ReduceAction352(74)
+               reduce_table.add new ReduceAction192(74)
+               reduce_table.add new ReduceAction354(74)
+               reduce_table.add new ReduceAction193(74)
+               reduce_table.add new ReduceAction356(74)
+               reduce_table.add new ReduceAction357(74)
+               reduce_table.add new ReduceAction358(74)
+               reduce_table.add new ReduceAction359(74)
+               reduce_table.add new ReduceAction360(74)
+               reduce_table.add new ReduceAction361(74)
+               reduce_table.add new ReduceAction362(74)
+               reduce_table.add new ReduceAction363(74)
+               reduce_table.add new ReduceAction364(74)
+               reduce_table.add new ReduceAction365(74)
+               reduce_table.add new ReduceAction366(74)
+               reduce_table.add new ReduceAction367(74)
+               reduce_table.add new ReduceAction368(74)
+               reduce_table.add new ReduceAction159(75)
+               reduce_table.add new ReduceAction370(75)
+               reduce_table.add new ReduceAction371(75)
+               reduce_table.add new ReduceAction372(76)
+               reduce_table.add new ReduceAction373(76)
+               reduce_table.add new ReduceAction374(76)
+               reduce_table.add new ReduceAction375(76)
+               reduce_table.add new ReduceAction376(76)
+               reduce_table.add new ReduceAction377(76)
+               reduce_table.add new ReduceAction378(76)
+               reduce_table.add new ReduceAction379(76)
+               reduce_table.add new ReduceAction159(76)
+               reduce_table.add new ReduceAction159(76)
+               reduce_table.add new ReduceAction382(76)
+               reduce_table.add new ReduceAction383(76)
+               reduce_table.add new ReduceAction384(76)
+               reduce_table.add new ReduceAction385(77)
+               reduce_table.add new ReduceAction385(77)
+               reduce_table.add new ReduceAction387(78)
+               reduce_table.add new ReduceAction388(79)
+               reduce_table.add new ReduceAction389(80)
+               reduce_table.add new ReduceAction390(80)
+               reduce_table.add new ReduceAction388(81)
+               reduce_table.add new ReduceAction392(82)
+               reduce_table.add new ReduceAction272(82)
+               reduce_table.add new ReduceAction394(82)
+               reduce_table.add new ReduceAction395(83)
+               reduce_table.add new ReduceAction396(83)
+               reduce_table.add new ReduceAction397(84)
+               reduce_table.add new ReduceAction398(84)
+               reduce_table.add new ReduceAction399(85)
+               reduce_table.add new ReduceAction397(86)
+               reduce_table.add new ReduceAction398(86)
+               reduce_table.add new ReduceAction402(87)
+               reduce_table.add new ReduceAction403(88)
+               reduce_table.add new ReduceAction404(89)
+               reduce_table.add new ReduceAction405(89)
+               reduce_table.add new ReduceAction406(90)
+               reduce_table.add new ReduceAction22(90)
+               reduce_table.add new ReduceAction408(91)
+               reduce_table.add new ReduceAction409(91)
+               reduce_table.add new ReduceAction410(92)
+               reduce_table.add new ReduceAction411(92)
+               reduce_table.add new ReduceAction408(93)
+               reduce_table.add new ReduceAction409(93)
+               reduce_table.add new ReduceAction414(93)
+               reduce_table.add new ReduceAction159(94)
+               reduce_table.add new ReduceAction416(95)
+               reduce_table.add new ReduceAction417(96)
+               reduce_table.add new ReduceAction418(96)
+               reduce_table.add new ReduceAction419(96)
+               reduce_table.add new ReduceAction420(96)
+               reduce_table.add new ReduceAction421(96)
+               reduce_table.add new ReduceAction422(97)
+               reduce_table.add new ReduceAction423(97)
+               reduce_table.add new ReduceAction424(97)
+               reduce_table.add new ReduceAction425(97)
+               reduce_table.add new ReduceAction426(97)
+               reduce_table.add new ReduceAction389(98)
+               reduce_table.add new ReduceAction390(98)
+               reduce_table.add new ReduceAction388(99)
+               reduce_table.add new ReduceAction430(100)
+               reduce_table.add new ReduceAction159(100)
+               reduce_table.add new ReduceAction159(100)
+               reduce_table.add new ReduceAction433(100)
+               reduce_table.add new ReduceAction434(100)
+               reduce_table.add new ReduceAction435(100)
+               reduce_table.add new ReduceAction436(101)
+               reduce_table.add new ReduceAction437(101)
+               reduce_table.add new ReduceAction438(101)
+               reduce_table.add new ReduceAction439(102)
+               reduce_table.add new ReduceAction440(102)
+               reduce_table.add new ReduceAction439(103)
+               reduce_table.add new ReduceAction442(103)
+               reduce_table.add new ReduceAction440(103)
+               reduce_table.add new ReduceAction444(103)
+               reduce_table.add new ReduceAction445(104)
+               reduce_table.add new ReduceAction398(105)
+               reduce_table.add new ReduceAction447(105)
+               reduce_table.add new ReduceAction448(106)
+               reduce_table.add new ReduceAction449(107)
+               reduce_table.add new ReduceAction450(107)
+               reduce_table.add new ReduceAction451(108)
+               reduce_table.add new ReduceAction452(108)
+               reduce_table.add new ReduceAction453(109)
+               reduce_table.add new ReduceAction454(109)
+               reduce_table.add new ReduceAction455(109)
+               reduce_table.add new ReduceAction456(109)
+               reduce_table.add new ReduceAction457(110)
+               reduce_table.add new ReduceAction458(110)
+               reduce_table.add new ReduceAction459(110)
+               reduce_table.add new ReduceAction22(110)
+               reduce_table.add new ReduceAction461(111)
+               reduce_table.add new ReduceAction462(111)
+               reduce_table.add new ReduceAction463(111)
+               reduce_table.add new ReduceAction462(111)
+               reduce_table.add new ReduceAction465(112)
+               reduce_table.add new ReduceAction466(112)
+               reduce_table.add new ReduceAction467(112)
+               reduce_table.add new ReduceAction466(112)
+               reduce_table.add new ReduceAction469(113)
+               reduce_table.add new ReduceAction470(114)
+               reduce_table.add new ReduceAction22(115)
+               reduce_table.add new ReduceAction472(115)
+               reduce_table.add new ReduceAction473(116)
+               reduce_table.add new ReduceAction473(116)
+               reduce_table.add new ReduceAction473(116)
+               reduce_table.add new ReduceAction476(117)
+               reduce_table.add new ReduceAction477(117)
+               reduce_table.add new ReduceAction23(117)
+               reduce_table.add new ReduceAction23(117)
+               reduce_table.add new ReduceAction480(117)
+               reduce_table.add new ReduceAction480(117)
+               reduce_table.add new ReduceAction482(117)
+               reduce_table.add new ReduceAction483(117)
+               reduce_table.add new ReduceAction484(117)
+               reduce_table.add new ReduceAction484(117)
+               reduce_table.add new ReduceAction486(117)
+               reduce_table.add new ReduceAction22(118)
+               reduce_table.add new ReduceAction488(118)
+               reduce_table.add new ReduceAction489(119)
+               reduce_table.add new ReduceAction473(119)
+               reduce_table.add new ReduceAction473(120)
+               reduce_table.add new ReduceAction492(120)
+               reduce_table.add new ReduceAction48(121)
+               reduce_table.add new ReduceAction49(121)
+               reduce_table.add new ReduceAction50(121)
+               reduce_table.add new ReduceAction57(121)
+               reduce_table.add new ReduceAction58(121)
+               reduce_table.add new ReduceAction76(122)
+               reduce_table.add new ReduceAction77(122)
+               reduce_table.add new ReduceAction86(123)
+               reduce_table.add new ReduceAction87(123)
+               reduce_table.add new ReduceAction88(123)
+               reduce_table.add new ReduceAction89(123)
+               reduce_table.add new ReduceAction90(123)
+               reduce_table.add new ReduceAction91(123)
+               reduce_table.add new ReduceAction92(123)
+               reduce_table.add new ReduceAction93(123)
+               reduce_table.add new ReduceAction94(123)
+               reduce_table.add new ReduceAction95(123)
+               reduce_table.add new ReduceAction96(123)
+               reduce_table.add new ReduceAction97(123)
+               reduce_table.add new ReduceAction98(123)
+               reduce_table.add new ReduceAction99(123)
+               reduce_table.add new ReduceAction100(123)
+               reduce_table.add new ReduceAction101(123)
+               reduce_table.add new ReduceAction102(123)
+               reduce_table.add new ReduceAction103(123)
+               reduce_table.add new ReduceAction104(123)
+               reduce_table.add new ReduceAction105(123)
+               reduce_table.add new ReduceAction106(123)
+               reduce_table.add new ReduceAction107(123)
+               reduce_table.add new ReduceAction465(124)
+               reduce_table.add new ReduceAction466(124)
+               reduce_table.add new ReduceAction467(124)
+               reduce_table.add new ReduceAction466(124)
+               reduce_table.add new ReduceAction146(125)
+               reduce_table.add new ReduceAction147(125)
+               reduce_table.add new ReduceAction159(126)
+               reduce_table.add new ReduceAction287(126)
+               reduce_table.add new ReduceAction159(127)
+               reduce_table.add new ReduceAction289(127)
+               reduce_table.add new ReduceAction290(127)
+               reduce_table.add new ReduceAction291(127)
+               reduce_table.add new ReduceAction292(127)
+               reduce_table.add new ReduceAction159(128)
+               reduce_table.add new ReduceAction294(128)
+               reduce_table.add new ReduceAction159(129)
+               reduce_table.add new ReduceAction296(129)
+               reduce_table.add new ReduceAction297(129)
+               reduce_table.add new ReduceAction298(129)
+               reduce_table.add new ReduceAction299(129)
+               reduce_table.add new ReduceAction300(129)
+               reduce_table.add new ReduceAction301(129)
+               reduce_table.add new ReduceAction302(129)
+               reduce_table.add new ReduceAction303(129)
+               reduce_table.add new ReduceAction159(130)
+               reduce_table.add new ReduceAction305(130)
+               reduce_table.add new ReduceAction159(131)
+               reduce_table.add new ReduceAction307(131)
+               reduce_table.add new ReduceAction159(132)
+               reduce_table.add new ReduceAction309(132)
+               reduce_table.add new ReduceAction159(133)
+               reduce_table.add new ReduceAction311(133)
+               reduce_table.add new ReduceAction312(133)
+               reduce_table.add new ReduceAction159(134)
+               reduce_table.add new ReduceAction314(134)
+               reduce_table.add new ReduceAction315(134)
+               reduce_table.add new ReduceAction159(135)
+               reduce_table.add new ReduceAction317(135)
+               reduce_table.add new ReduceAction318(135)
+               reduce_table.add new ReduceAction319(135)
+               reduce_table.add new ReduceAction159(136)
+               reduce_table.add new ReduceAction321(136)
+               reduce_table.add new ReduceAction159(137)
+               reduce_table.add new ReduceAction323(137)
+               reduce_table.add new ReduceAction324(137)
+               reduce_table.add new ReduceAction325(137)
+               reduce_table.add new ReduceAction326(137)
+               reduce_table.add new ReduceAction159(138)
+               reduce_table.add new ReduceAction328(138)
+               reduce_table.add new ReduceAction329(138)
+               reduce_table.add new ReduceAction330(138)
+               reduce_table.add new ReduceAction331(138)
+               reduce_table.add new ReduceAction159(139)
+               reduce_table.add new ReduceAction333(139)
+               reduce_table.add new ReduceAction334(139)
+               reduce_table.add new ReduceAction183(139)
+               reduce_table.add new ReduceAction187(139)
+               reduce_table.add new ReduceAction336(139)
+               reduce_table.add new ReduceAction344(139)
+               reduce_table.add new ReduceAction184(139)
+               reduce_table.add new ReduceAction188(139)
+               reduce_table.add new ReduceAction338(139)
+               reduce_table.add new ReduceAction346(139)
+               reduce_table.add new ReduceAction185(139)
+               reduce_table.add new ReduceAction189(139)
+               reduce_table.add new ReduceAction340(139)
+               reduce_table.add new ReduceAction348(139)
+               reduce_table.add new ReduceAction186(139)
+               reduce_table.add new ReduceAction190(139)
+               reduce_table.add new ReduceAction342(139)
+               reduce_table.add new ReduceAction350(139)
+               reduce_table.add new ReduceAction191(139)
+               reduce_table.add new ReduceAction352(139)
+               reduce_table.add new ReduceAction192(139)
+               reduce_table.add new ReduceAction193(139)
+               reduce_table.add new ReduceAction354(139)
+               reduce_table.add new ReduceAction356(139)
+               reduce_table.add new ReduceAction358(139)
+               reduce_table.add new ReduceAction359(139)
+               reduce_table.add new ReduceAction360(139)
+               reduce_table.add new ReduceAction361(139)
+               reduce_table.add new ReduceAction362(139)
+               reduce_table.add new ReduceAction363(139)
+               reduce_table.add new ReduceAction364(139)
+               reduce_table.add new ReduceAction365(139)
+               reduce_table.add new ReduceAction366(139)
+               reduce_table.add new ReduceAction367(139)
+               reduce_table.add new ReduceAction368(139)
+               reduce_table.add new ReduceAction159(140)
+               reduce_table.add new ReduceAction370(140)
+               reduce_table.add new ReduceAction371(140)
+               reduce_table.add new ReduceAction372(141)
+               reduce_table.add new ReduceAction373(141)
+               reduce_table.add new ReduceAction374(141)
+               reduce_table.add new ReduceAction375(141)
+               reduce_table.add new ReduceAction376(141)
+               reduce_table.add new ReduceAction377(141)
+               reduce_table.add new ReduceAction378(141)
+               reduce_table.add new ReduceAction379(141)
+               reduce_table.add new ReduceAction159(141)
+               reduce_table.add new ReduceAction159(141)
+               reduce_table.add new ReduceAction146(142)
+               reduce_table.add new ReduceAction147(142)
+               reduce_table.add new ReduceAction148(142)
+               reduce_table.add new ReduceAction149(142)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction169(143)
+               reduce_table.add new ReduceAction170(143)
+               reduce_table.add new ReduceAction171(143)
+               reduce_table.add new ReduceAction172(143)
+               reduce_table.add new ReduceAction173(143)
+               reduce_table.add new ReduceAction174(143)
+               reduce_table.add new ReduceAction175(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction159(143)
+               reduce_table.add new ReduceAction183(143)
+               reduce_table.add new ReduceAction184(143)
+               reduce_table.add new ReduceAction185(143)
+               reduce_table.add new ReduceAction186(143)
+               reduce_table.add new ReduceAction187(143)
+               reduce_table.add new ReduceAction188(143)
+               reduce_table.add new ReduceAction189(143)
+               reduce_table.add new ReduceAction190(143)
+               reduce_table.add new ReduceAction191(143)
+               reduce_table.add new ReduceAction192(143)
+               reduce_table.add new ReduceAction193(143)
+               reduce_table.add new ReduceAction194(143)
+               reduce_table.add new ReduceAction195(143)
+               reduce_table.add new ReduceAction194(143)
+               reduce_table.add new ReduceAction197(143)
+               reduce_table.add new ReduceAction198(143)
+               reduce_table.add new ReduceAction197(143)
+               reduce_table.add new ReduceAction200(143)
+               reduce_table.add new ReduceAction207(144)
+               reduce_table.add new ReduceAction208(144)
+               reduce_table.add new ReduceAction209(144)
+               reduce_table.add new ReduceAction210(144)
+               reduce_table.add new ReduceAction211(144)
+               reduce_table.add new ReduceAction212(144)
+               reduce_table.add new ReduceAction213(144)
+               reduce_table.add new ReduceAction214(144)
+               reduce_table.add new ReduceAction215(144)
+               reduce_table.add new ReduceAction216(144)
+               reduce_table.add new ReduceAction217(144)
+               reduce_table.add new ReduceAction218(144)
+               reduce_table.add new ReduceAction219(144)
+               reduce_table.add new ReduceAction220(144)
+               reduce_table.add new ReduceAction221(144)
+               reduce_table.add new ReduceAction222(144)
+               reduce_table.add new ReduceAction223(144)
+               reduce_table.add new ReduceAction224(144)
+               reduce_table.add new ReduceAction225(144)
+               reduce_table.add new ReduceAction226(144)
+               reduce_table.add new ReduceAction227(144)
+               reduce_table.add new ReduceAction228(144)
+               reduce_table.add new ReduceAction229(144)
+               reduce_table.add new ReduceAction230(144)
+               reduce_table.add new ReduceAction231(144)
+               reduce_table.add new ReduceAction232(144)
+               reduce_table.add new ReduceAction233(144)
+               reduce_table.add new ReduceAction234(144)
+               reduce_table.add new ReduceAction235(144)
+               reduce_table.add new ReduceAction236(144)
+               reduce_table.add new ReduceAction237(144)
+               reduce_table.add new ReduceAction238(144)
+               reduce_table.add new ReduceAction239(144)
+               reduce_table.add new ReduceAction240(144)
+               reduce_table.add new ReduceAction241(144)
+               reduce_table.add new ReduceAction242(144)
+               reduce_table.add new ReduceAction243(144)
+               reduce_table.add new ReduceAction244(144)
+               reduce_table.add new ReduceAction159(145)
+               reduce_table.add new ReduceAction287(145)
+               reduce_table.add new ReduceAction159(146)
+               reduce_table.add new ReduceAction289(146)
+               reduce_table.add new ReduceAction290(146)
+               reduce_table.add new ReduceAction291(146)
+               reduce_table.add new ReduceAction292(146)
+               reduce_table.add new ReduceAction159(147)
+               reduce_table.add new ReduceAction294(147)
+               reduce_table.add new ReduceAction159(148)
+               reduce_table.add new ReduceAction296(148)
+               reduce_table.add new ReduceAction297(148)
+               reduce_table.add new ReduceAction298(148)
+               reduce_table.add new ReduceAction299(148)
+               reduce_table.add new ReduceAction300(148)
+               reduce_table.add new ReduceAction301(148)
+               reduce_table.add new ReduceAction302(148)
+               reduce_table.add new ReduceAction303(148)
+               reduce_table.add new ReduceAction159(149)
+               reduce_table.add new ReduceAction305(149)
+               reduce_table.add new ReduceAction159(150)
+               reduce_table.add new ReduceAction307(150)
+               reduce_table.add new ReduceAction159(151)
+               reduce_table.add new ReduceAction309(151)
+               reduce_table.add new ReduceAction159(152)
+               reduce_table.add new ReduceAction311(152)
+               reduce_table.add new ReduceAction312(152)
+               reduce_table.add new ReduceAction159(153)
+               reduce_table.add new ReduceAction314(153)
+               reduce_table.add new ReduceAction315(153)
+               reduce_table.add new ReduceAction159(154)
+               reduce_table.add new ReduceAction317(154)
+               reduce_table.add new ReduceAction318(154)
+               reduce_table.add new ReduceAction319(154)
+               reduce_table.add new ReduceAction159(155)
+               reduce_table.add new ReduceAction321(155)
+               reduce_table.add new ReduceAction159(156)
+               reduce_table.add new ReduceAction323(156)
+               reduce_table.add new ReduceAction324(156)
+               reduce_table.add new ReduceAction325(156)
+               reduce_table.add new ReduceAction326(156)
+               reduce_table.add new ReduceAction159(157)
+               reduce_table.add new ReduceAction328(157)
+               reduce_table.add new ReduceAction329(157)
+               reduce_table.add new ReduceAction330(157)
+               reduce_table.add new ReduceAction331(157)
+               reduce_table.add new ReduceAction159(158)
+               reduce_table.add new ReduceAction333(158)
+               reduce_table.add new ReduceAction334(158)
+               reduce_table.add new ReduceAction183(158)
+               reduce_table.add new ReduceAction336(158)
+               reduce_table.add new ReduceAction184(158)
+               reduce_table.add new ReduceAction338(158)
+               reduce_table.add new ReduceAction185(158)
+               reduce_table.add new ReduceAction340(158)
+               reduce_table.add new ReduceAction186(158)
+               reduce_table.add new ReduceAction342(158)
+               reduce_table.add new ReduceAction187(158)
+               reduce_table.add new ReduceAction344(158)
+               reduce_table.add new ReduceAction188(158)
+               reduce_table.add new ReduceAction346(158)
+               reduce_table.add new ReduceAction189(158)
+               reduce_table.add new ReduceAction348(158)
+               reduce_table.add new ReduceAction190(158)
+               reduce_table.add new ReduceAction350(158)
+               reduce_table.add new ReduceAction191(158)
+               reduce_table.add new ReduceAction352(158)
+               reduce_table.add new ReduceAction192(158)
+               reduce_table.add new ReduceAction354(158)
+               reduce_table.add new ReduceAction193(158)
+               reduce_table.add new ReduceAction356(158)
+               reduce_table.add new ReduceAction357(158)
+               reduce_table.add new ReduceAction358(158)
+               reduce_table.add new ReduceAction359(158)
+               reduce_table.add new ReduceAction360(158)
+               reduce_table.add new ReduceAction361(158)
+               reduce_table.add new ReduceAction362(158)
+               reduce_table.add new ReduceAction363(158)
+               reduce_table.add new ReduceAction364(158)
+               reduce_table.add new ReduceAction365(158)
+               reduce_table.add new ReduceAction366(158)
+               reduce_table.add new ReduceAction367(158)
+               reduce_table.add new ReduceAction368(158)
+               reduce_table.add new ReduceAction159(159)
+               reduce_table.add new ReduceAction370(159)
+               reduce_table.add new ReduceAction371(159)
+               reduce_table.add new ReduceAction372(160)
+               reduce_table.add new ReduceAction373(160)
+               reduce_table.add new ReduceAction374(160)
+               reduce_table.add new ReduceAction375(160)
+               reduce_table.add new ReduceAction376(160)
+               reduce_table.add new ReduceAction377(160)
+               reduce_table.add new ReduceAction378(160)
+               reduce_table.add new ReduceAction379(160)
+               reduce_table.add new ReduceAction159(160)
+               reduce_table.add new ReduceAction404(161)
+               reduce_table.add new ReduceAction405(161)
+               reduce_table.add new ReduceAction406(162)
+               reduce_table.add new ReduceAction22(162)
+               reduce_table.add new ReduceAction408(163)
+               reduce_table.add new ReduceAction408(164)
+               reduce_table.add new ReduceAction389(165)
+               reduce_table.add new ReduceAction390(165)
+               reduce_table.add new ReduceAction430(166)
+               reduce_table.add new ReduceAction159(166)
+               reduce_table.add new ReduceAction159(166)
+               reduce_table.add new ReduceAction433(166)
+               reduce_table.add new ReduceAction434(166)
+               reduce_table.add new ReduceAction146(167)
+               reduce_table.add new ReduceAction147(167)
+               reduce_table.add new ReduceAction159(168)
+               reduce_table.add new ReduceAction287(168)
+               reduce_table.add new ReduceAction159(169)
+               reduce_table.add new ReduceAction289(169)
+               reduce_table.add new ReduceAction290(169)
+               reduce_table.add new ReduceAction291(169)
+               reduce_table.add new ReduceAction292(169)
+               reduce_table.add new ReduceAction159(170)
+               reduce_table.add new ReduceAction294(170)
+               reduce_table.add new ReduceAction159(171)
+               reduce_table.add new ReduceAction296(171)
+               reduce_table.add new ReduceAction297(171)
+               reduce_table.add new ReduceAction298(171)
+               reduce_table.add new ReduceAction299(171)
+               reduce_table.add new ReduceAction300(171)
+               reduce_table.add new ReduceAction301(171)
+               reduce_table.add new ReduceAction302(171)
+               reduce_table.add new ReduceAction303(171)
+               reduce_table.add new ReduceAction159(172)
+               reduce_table.add new ReduceAction305(172)
+               reduce_table.add new ReduceAction159(173)
+               reduce_table.add new ReduceAction307(173)
+               reduce_table.add new ReduceAction159(174)
+               reduce_table.add new ReduceAction309(174)
+               reduce_table.add new ReduceAction159(175)
+               reduce_table.add new ReduceAction311(175)
+               reduce_table.add new ReduceAction312(175)
+               reduce_table.add new ReduceAction159(176)
+               reduce_table.add new ReduceAction314(176)
+               reduce_table.add new ReduceAction315(176)
+               reduce_table.add new ReduceAction159(177)
+               reduce_table.add new ReduceAction317(177)
+               reduce_table.add new ReduceAction318(177)
+               reduce_table.add new ReduceAction319(177)
+               reduce_table.add new ReduceAction159(178)
+               reduce_table.add new ReduceAction321(178)
+               reduce_table.add new ReduceAction159(179)
+               reduce_table.add new ReduceAction323(179)
+               reduce_table.add new ReduceAction324(179)
+               reduce_table.add new ReduceAction325(179)
+               reduce_table.add new ReduceAction326(179)
+               reduce_table.add new ReduceAction159(180)
+               reduce_table.add new ReduceAction328(180)
+               reduce_table.add new ReduceAction329(180)
+               reduce_table.add new ReduceAction853(180)
+               reduce_table.add new ReduceAction159(181)
+               reduce_table.add new ReduceAction855(181)
+               reduce_table.add new ReduceAction856(181)
+               reduce_table.add new ReduceAction857(181)
+               reduce_table.add new ReduceAction858(181)
+               reduce_table.add new ReduceAction859(181)
+               reduce_table.add new ReduceAction860(181)
+               reduce_table.add new ReduceAction861(181)
+               reduce_table.add new ReduceAction862(181)
+               reduce_table.add new ReduceAction863(181)
+               reduce_table.add new ReduceAction191(181)
+               reduce_table.add new ReduceAction352(181)
+               reduce_table.add new ReduceAction866(181)
+               reduce_table.add new ReduceAction867(181)
+               reduce_table.add new ReduceAction358(181)
+               reduce_table.add new ReduceAction359(181)
+               reduce_table.add new ReduceAction360(181)
+               reduce_table.add new ReduceAction361(181)
+               reduce_table.add new ReduceAction362(181)
+               reduce_table.add new ReduceAction363(181)
+               reduce_table.add new ReduceAction364(181)
+               reduce_table.add new ReduceAction365(181)
+               reduce_table.add new ReduceAction366(181)
+               reduce_table.add new ReduceAction367(181)
+               reduce_table.add new ReduceAction368(181)
+               reduce_table.add new ReduceAction159(182)
+               reduce_table.add new ReduceAction370(182)
+               reduce_table.add new ReduceAction371(182)
+               reduce_table.add new ReduceAction372(183)
+               reduce_table.add new ReduceAction373(183)
+               reduce_table.add new ReduceAction374(183)
+               reduce_table.add new ReduceAction375(183)
+               reduce_table.add new ReduceAction376(183)
+               reduce_table.add new ReduceAction377(183)
+               reduce_table.add new ReduceAction378(183)
+               reduce_table.add new ReduceAction379(183)
+               reduce_table.add new ReduceAction159(183)
+               reduce_table.add new ReduceAction891(184)
+               reduce_table.add new ReduceAction892(184)
+               reduce_table.add new ReduceAction156(185)
+               reduce_table.add new ReduceAction157(185)
+               reduce_table.add new ReduceAction158(185)
+               reduce_table.add new ReduceAction159(185)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction169(186)
+               reduce_table.add new ReduceAction170(186)
+               reduce_table.add new ReduceAction171(186)
+               reduce_table.add new ReduceAction172(186)
+               reduce_table.add new ReduceAction173(186)
+               reduce_table.add new ReduceAction174(186)
+               reduce_table.add new ReduceAction175(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction159(186)
+               reduce_table.add new ReduceAction183(186)
+               reduce_table.add new ReduceAction184(186)
+               reduce_table.add new ReduceAction185(186)
+               reduce_table.add new ReduceAction186(186)
+               reduce_table.add new ReduceAction187(186)
+               reduce_table.add new ReduceAction188(186)
+               reduce_table.add new ReduceAction189(186)
+               reduce_table.add new ReduceAction190(186)
+               reduce_table.add new ReduceAction191(186)
+               reduce_table.add new ReduceAction192(186)
+               reduce_table.add new ReduceAction193(186)
+               reduce_table.add new ReduceAction194(186)
+               reduce_table.add new ReduceAction195(186)
+               reduce_table.add new ReduceAction194(186)
+               reduce_table.add new ReduceAction197(186)
+               reduce_table.add new ReduceAction198(186)
+               reduce_table.add new ReduceAction197(186)
+               reduce_table.add new ReduceAction200(186)
+               reduce_table.add new ReduceAction256(187)
+               reduce_table.add new ReduceAction257(187)
+               reduce_table.add new ReduceAction258(188)
+               reduce_table.add new ReduceAction267(189)
+               reduce_table.add new ReduceAction268(189)
+               reduce_table.add new ReduceAction269(190)
+               reduce_table.add new ReduceAction270(190)
+               reduce_table.add new ReduceAction271(191)
+               reduce_table.add new ReduceAction272(191)
+               reduce_table.add new ReduceAction276(192)
+               reduce_table.add new ReduceAction277(192)
+               reduce_table.add new ReduceAction281(193)
+               reduce_table.add new ReduceAction282(193)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction169(194)
+               reduce_table.add new ReduceAction170(194)
+               reduce_table.add new ReduceAction171(194)
+               reduce_table.add new ReduceAction172(194)
+               reduce_table.add new ReduceAction173(194)
+               reduce_table.add new ReduceAction174(194)
+               reduce_table.add new ReduceAction175(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction159(194)
+               reduce_table.add new ReduceAction183(194)
+               reduce_table.add new ReduceAction184(194)
+               reduce_table.add new ReduceAction185(194)
+               reduce_table.add new ReduceAction186(194)
+               reduce_table.add new ReduceAction187(194)
+               reduce_table.add new ReduceAction188(194)
+               reduce_table.add new ReduceAction189(194)
+               reduce_table.add new ReduceAction190(194)
+               reduce_table.add new ReduceAction191(194)
+               reduce_table.add new ReduceAction192(194)
+               reduce_table.add new ReduceAction193(194)
+               reduce_table.add new ReduceAction194(194)
+               reduce_table.add new ReduceAction195(194)
+               reduce_table.add new ReduceAction194(194)
+               reduce_table.add new ReduceAction197(194)
+               reduce_table.add new ReduceAction198(194)
+               reduce_table.add new ReduceAction197(194)
+               reduce_table.add new ReduceAction200(194)
+               reduce_table.add new ReduceAction156(195)
+               reduce_table.add new ReduceAction157(195)
+               reduce_table.add new ReduceAction158(195)
+               reduce_table.add new ReduceAction156(196)
+               reduce_table.add new ReduceAction157(196)
+               reduce_table.add new ReduceAction158(196)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction169(197)
+               reduce_table.add new ReduceAction170(197)
+               reduce_table.add new ReduceAction171(197)
+               reduce_table.add new ReduceAction172(197)
+               reduce_table.add new ReduceAction173(197)
+               reduce_table.add new ReduceAction174(197)
+               reduce_table.add new ReduceAction175(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction159(197)
+               reduce_table.add new ReduceAction200(197)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction169(198)
+               reduce_table.add new ReduceAction170(198)
+               reduce_table.add new ReduceAction171(198)
+               reduce_table.add new ReduceAction172(198)
+               reduce_table.add new ReduceAction173(198)
+               reduce_table.add new ReduceAction174(198)
+               reduce_table.add new ReduceAction175(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction159(198)
+               reduce_table.add new ReduceAction200(198)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction169(199)
+               reduce_table.add new ReduceAction170(199)
+               reduce_table.add new ReduceAction171(199)
+               reduce_table.add new ReduceAction172(199)
+               reduce_table.add new ReduceAction173(199)
+               reduce_table.add new ReduceAction174(199)
+               reduce_table.add new ReduceAction175(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction159(199)
+               reduce_table.add new ReduceAction200(199)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction169(200)
+               reduce_table.add new ReduceAction170(200)
+               reduce_table.add new ReduceAction171(200)
+               reduce_table.add new ReduceAction172(200)
+               reduce_table.add new ReduceAction173(200)
+               reduce_table.add new ReduceAction174(200)
+               reduce_table.add new ReduceAction175(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction159(200)
+               reduce_table.add new ReduceAction200(200)
+               reduce_table.add new ReduceAction436(201)
+               reduce_table.add new ReduceAction438(201)
+               reduce_table.add new ReduceAction476(202)
+               reduce_table.add new ReduceAction477(202)
+               reduce_table.add new ReduceAction23(202)
+               reduce_table.add new ReduceAction1053(203)
+               reduce_table.add new ReduceAction1054(203)
+               reduce_table.add new ReduceAction1055(204)
+               reduce_table.add new ReduceAction1056(204)
+               reduce_table.add new ReduceAction1057(205)
+               reduce_table.add new ReduceAction1058(205)
+               reduce_table.add new ReduceAction37(206)
+               reduce_table.add new ReduceAction1060(206)
+               reduce_table.add new ReduceAction45(207)
+               reduce_table.add new ReduceAction1062(207)
+               reduce_table.add new ReduceAction410(208)
+               reduce_table.add new ReduceAction1064(208)
+               reduce_table.add new ReduceAction1065(209)
+               reduce_table.add new ReduceAction1066(209)
+               reduce_table.add new ReduceAction1067(210)
+               reduce_table.add new ReduceAction1068(210)
+               reduce_table.add new ReduceAction150(211)
+               reduce_table.add new ReduceAction1070(211)
+               reduce_table.add new ReduceAction389(212)
+               reduce_table.add new ReduceAction1072(212)
+               reduce_table.add new ReduceAction389(213)
+               reduce_table.add new ReduceAction1072(213)
+               reduce_table.add new ReduceAction389(214)
+               reduce_table.add new ReduceAction1072(214)
+               reduce_table.add new ReduceAction450(215)
+               reduce_table.add new ReduceAction1078(215)
+               reduce_table.add new ReduceAction410(216)
+               reduce_table.add new ReduceAction1064(216)
+               reduce_table.add new ReduceAction389(217)
+               reduce_table.add new ReduceAction1072(217)
+               reduce_table.add new ReduceAction389(218)
+               reduce_table.add new ReduceAction1072(218)
+               reduce_table.add new ReduceAction451(219)
+               reduce_table.add new ReduceAction1086(219)
+               reduce_table.add new ReduceAction1087(220)
+               reduce_table.add new ReduceAction1088(220)
+               reduce_table.add new ReduceAction473(221)
+               reduce_table.add new ReduceAction492(221)
        end
-       var _goto: Int
-       init(g: Int) do _goto = g
 end
 
 private class ReduceAction0
@@ -1825,14 +1110,20 @@ private class ReduceAction0
        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)
@@ -1843,17 +1134,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)
@@ -1864,18 +1161,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)
@@ -1886,21 +1189,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)
@@ -1911,18 +1220,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)
@@ -1933,21 +1248,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)
@@ -1958,22 +1279,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)
@@ -1984,12 +1311,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
@@ -1998,11 +1326,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)
@@ -2013,18 +1346,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)
@@ -2035,21 +1374,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)
@@ -2060,22 +1405,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)
@@ -2086,12 +1437,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
@@ -2099,12 +1451,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)
@@ -2115,22 +1472,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)
@@ -2141,12 +1504,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
@@ -2154,12 +1518,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)
@@ -2170,12 +1539,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)
@@ -2184,12 +1554,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)
@@ -2200,13 +1575,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
@@ -2217,12 +1593,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)
@@ -2233,27 +1614,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
-                                       )
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
+                                       var 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
+                                       )
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2262,30 +1651,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
@@ -2294,31 +1682,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
@@ -2327,34 +1709,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
@@ -2366,28 +1723,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
@@ -2396,34 +1740,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
@@ -2432,35 +1759,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
@@ -2469,38 +1768,8 @@ 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
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2511,16122 +1780,70 @@ private class ReduceAction24
                                        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(
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
                                                null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
+                                               pexprnode3
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction25
+private class ReduceAction26
        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 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 listnode12 = new Array[Object]
                                        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(
+                                       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 = nodearraylist8
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
                                                null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               listnode8,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
                                                null,
-                                               null
+                                               listnode12,
+                                               tkwendnode13
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction420
+private class ReduceAction27
        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
@@ -18634,159 +1851,52 @@ private class ReduceAction420
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode12 = new Array[Object]
                                        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(
+                                       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 pexterncodeblocknode10 = nodearraylist7
+                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
+                                       var listnode11 = nodearraylist8
+                                       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,
                                                null,
+                                               listnode8,
                                                null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
+                                               pexterncodeblocknode10,
+                                               listnode12,
+                                               tkwendnode13
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction424
+private class ReduceAction28
        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
@@ -18794,82 +1904,58 @@ private class ReduceAction424
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = new Array[Object]
+                                       var listnode13 = new Array[Object]
                                        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(
+                                       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 tobranode7 = nodearraylist7
+                                       assert tobranode7 isa nullable TObra
+                                       var listnode8 = nodearraylist9
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcbranode10 = nodearraylist10
+                                       assert tcbranode10 isa nullable TCbra
+                                       var listnode12 = nodearraylist11
+                                       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,
+                                               tobranode7,
+                                               listnode9,
+                                               tcbranode10,
                                                null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction426
+private class ReduceAction29
        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
@@ -18877,523 +1963,250 @@ private class ReduceAction426
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = new Array[Object]
+                                       var listnode13 = new Array[Object]
                                        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(
+                                       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 tobranode7 = nodearraylist7
+                                       assert tobranode7 isa nullable TObra
+                                       var listnode8 = nodearraylist9
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcbranode10 = nodearraylist10
+                                       assert tcbranode10 isa nullable TCbra
+                                       var pexterncodeblocknode11 = nodearraylist11
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist12
+                                       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,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               tobranode7,
+                                               listnode9,
+                                               tcbranode10,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction427
+private class ReduceAction31
        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
+                                       var tkwredefnode1 = nodearraylist1
+                                       node_list = tkwredefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction428
+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 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
+                                       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 ReduceAction429
+private class ReduceAction33
        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
+                                       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 ReduceAction430
+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 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
+                                       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 ReduceAction431
+private class ReduceAction35
        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
+                                       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 ReduceAction432
+private class ReduceAction36
        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
+                                       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 ReduceAction433
+private class ReduceAction37
        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
+                                       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 ReduceAction434
+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 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
+                                       var listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       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 ReduceAction435
+private class ReduceAction39
+       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 ReduceAction40
        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
+                                       var pformaldefnode1 = nodearraylist3
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction436
+private class ReduceAction41
        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
+                                       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 ReduceAction437
+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 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
+                                       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 ReduceAction438
+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
@@ -19403,227 +2216,86 @@ private class ReduceAction438
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       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,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwsupernode5,
+                                               ptypenode6,
+                                               pannotationsnode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction439
+private class ReduceAction44
        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
+                                       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 ReduceAction440
+private class ReduceAction45
        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
+                                       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 ReduceAction441
+private class ReduceAction46
        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
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction442
+private class ReduceAction47
        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
-                                       )
+                                       var ppropdefnode1 = nodearraylist1
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction443
+private class ReduceAction48
        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
@@ -19635,43 +2307,47 @@ private class ReduceAction443
                                        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(
+                                       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 pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var tkwdonode13 = nodearraylist7
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist9
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
                                                null,
-                                               pablenode4,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction444
+private class ReduceAction49
        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
@@ -19684,44 +2360,50 @@ private class ReduceAction444
                                        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(
+                                       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 pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode13 = nodearraylist8
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist10
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction445
+private class ReduceAction50
        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
@@ -19730,34 +2412,43 @@ private class ReduceAction445
                                        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 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(
+                                       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,
-                                               tkwinitnode5,
+                                               tkwmethnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction446
+private class ReduceAction51
        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
@@ -19770,27 +2461,33 @@ private class ReduceAction446
                                        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(
+                                       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,
-                                               tkwinitnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction447
+private class ReduceAction52
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19804,31 +2501,39 @@ private class ReduceAction447
                                        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 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(
+                                       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,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction448
+private class ReduceAction53
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19847,33 +2552,43 @@ private class ReduceAction448
                                        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(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var tkwdonode13 = nodearraylist6
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist7
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist8
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction449
+private class ReduceAction54
        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
@@ -19883,35 +2598,48 @@ private class ReduceAction449
                                        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 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(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var tkwdonode13 = nodearraylist7
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist9
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
                                                null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction450
+private class ReduceAction55
        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
@@ -19926,33 +2654,45 @@ private class ReduceAction450
                                        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(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode13 = nodearraylist7
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist9
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
                                                null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction451
+private class ReduceAction56
        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
@@ -19963,38 +2703,49 @@ private class ReduceAction451
                                        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 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(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode13 = nodearraylist8
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist10
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction452
+private class ReduceAction57
        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
@@ -20009,35 +2760,43 @@ private class ReduceAction452
                                        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(
+                                       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,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tkwmethnode5,
+                                               null,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction453
+private class ReduceAction58
        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
@@ -20047,34 +2806,47 @@ private class ReduceAction453
                                        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 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(
+                                       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,
-                                               tkwinitnode5,
+                                               tkwmethnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction454
+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
@@ -20088,31 +2860,39 @@ private class ReduceAction454
                                        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(
+                                       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 pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexprnode9
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction455
+private class ReduceAction60
        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
@@ -20123,36 +2903,45 @@ private class ReduceAction455
                                        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 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
+                                       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 tassignnode8 = nodearraylist7
+                                       assert tassignnode8 isa nullable TAssign
+                                       var pexprnode9 = nodearraylist9
                                        assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var pannotationsnode10 = nodearraylist10
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
+                                               tassignnode8,
+                                               pexprnode9,
+                                               pannotationsnode10,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction456
+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
@@ -20167,33 +2956,40 @@ private class ReduceAction456
                                        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(
+                                       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 tkwdonode11 = nodearraylist7
+                                       assert tkwdonode11 isa nullable TKwdo
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               tkwdonode11,
+                                               pexprnode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction457
+private class ReduceAction62
        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
@@ -20204,31 +3000,41 @@ private class ReduceAction457
                                        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 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(
+                                       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 pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode11 = nodearraylist8
+                                       assert tkwdonode11 isa nullable TKwdo
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               null,
+                                               pannotationsnode10,
+                                               tkwdonode11,
+                                               pexprnode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction458
+private class ReduceAction63
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20248,33 +3054,42 @@ private class ReduceAction458
                                        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(
+                                       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 tkwdonode11 = nodearraylist7
+                                       assert tkwdonode11 isa nullable TKwdo
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
+                                       var tkwendnode13 = nodearraylist9
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               null,
+                                               null,
+                                               tkwdonode11,
+                                               pexprnode12,
+                                               tkwendnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction459
+private class ReduceAction64
        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
@@ -20286,39 +3101,47 @@ private class ReduceAction459
                                        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 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(
+                                       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 pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode11 = nodearraylist8
+                                       assert tkwdonode11 isa nullable TKwdo
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
+                                               null,
+                                               null,
+                                               pannotationsnode10,
+                                               tkwdonode11,
+                                               pexprnode12,
+                                               tkwendnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction460
+private class ReduceAction65
        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
@@ -20333,35 +3156,45 @@ private class ReduceAction460
                                        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(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var tkwdonode13 = nodearraylist6
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist7
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist8
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
+                                               null,
+                                               tkwinitnode6,
+                                               null,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction461
+private class ReduceAction66
        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
@@ -20369,32 +3202,50 @@ private class ReduceAction461
                                        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 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(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var tkwdonode13 = nodearraylist7
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist9
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               null
+                                               null,
+                                               tkwinitnode6,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction462
+private class ReduceAction67
        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
@@ -20407,30 +3258,47 @@ private class ReduceAction462
                                        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(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode13 = nodearraylist7
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist9
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               null
+                                               null,
+                                               tkwinitnode6,
+                                               null,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction463
+private class ReduceAction68
        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
@@ -20439,30 +3307,45 @@ private class ReduceAction463
                                        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 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(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var tkwdonode13 = nodearraylist8
+                                       assert tkwdonode13 isa nullable TKwdo
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var tkwendnode15 = nodearraylist10
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
+                                               null,
+                                               tkwinitnode6,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               tkwdonode13,
+                                               pexprnode14,
+                                               tkwendnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction464
+private class ReduceAction69
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20501,11 +3384,12 @@ private class ReduceAction464
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction465
+private class ReduceAction70
        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
@@ -20514,19 +3398,30 @@ private class ReduceAction465
                                        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 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,
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
                                                null,
                                                null,
                                                null
@@ -20535,11 +3430,12 @@ private class ReduceAction465
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction466
+private class ReduceAction71
        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
@@ -20553,17 +3449,28 @@ private class ReduceAction466
                                        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(
+                                       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,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
                                                null,
                                                null,
                                                null
@@ -20572,11 +3479,12 @@ private class ReduceAction466
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction467
+private class ReduceAction72
        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
@@ -20586,21 +3494,32 @@ private class ReduceAction467
                                        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 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,
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
                                                null,
                                                null,
                                                null
@@ -20609,11 +3528,12 @@ private class ReduceAction467
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction468
+private class ReduceAction73
        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
@@ -20628,19 +3548,30 @@ private class ReduceAction468
                                        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(
+                                       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,
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
                                                null,
                                                null,
                                                null
@@ -20649,2621 +3580,1976 @@ private class ReduceAction468
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction469
+private class ReduceAction74
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ppropdefnode1 = nodearraylist1
+                                       node_list = ppropdefnode1
+                                       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 nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var 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,
+                                       var listnode6 = new Array[Object]
+                                       var tkwisnode2 = nodearraylist1
+                                       assert tkwisnode2 isa nullable TKwis
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               tkwisnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               listnode6,
                                                null,
                                                null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction470
+private class ReduceAction77
        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,
+                                       var listnode6 = new Array[Object]
+                                       var tkwisnode2 = nodearraylist1
+                                       assert tkwisnode2 isa nullable TKwis
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tkwendnode8 = nodearraylist4
+                                       assert tkwendnode8 isa nullable TKwend
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               tkwisnode2,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               null
+                                               listnode6,
+                                               null,
+                                               tkwendnode8
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction471
+private class ReduceAction80
        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 tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
+                                       var listnode6 = new Array[Object]
+                                       var tkwisnode2 = nodearraylist1
+                                       assert tkwisnode2 isa nullable TKwis
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               tkwisnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               null,
+                                               listnode6,
                                                null,
                                                null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction472
+private class ReduceAction81
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       node_list = pvisibilitynode1
+                                       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 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(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
+                                       var tkwpublicnode2 = nodearraylist1
+                                       assert tkwpublicnode2 isa nullable TKwpublic
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pvisibilitynode1
+                                       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 nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwprivatenode2 = nodearraylist1
+                                       assert tkwprivatenode2 isa nullable TKwprivate
+                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode2
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction84
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwprotectednode2 = nodearraylist1
+                                       assert tkwprotectednode2 isa nullable TKwprotected
+                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode2
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction85
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwintrudenode2 = nodearraylist1
+                                       assert tkwintrudenode2 isa nullable TKwintrude
+                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode2
+                                       )
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction86
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
+                                               tplusnode2
+                                       )
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction473
+private class ReduceAction87
        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 tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
+                                               tminusnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction474
+private class ReduceAction88
        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 tstarnode2 = nodearraylist1
+                                       assert tstarnode2 isa nullable TStar
+                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
+                                               tstarnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction475
+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 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 tstarstarnode2 = nodearraylist1
+                                       assert tstarstarnode2 isa nullable TStarstar
+                                       var pmethidnode1: nullable AStarstarMethid = new AStarstarMethid.init_astarstarmethid(
+                                               tstarstarnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction476
+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 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 tslashnode2 = nodearraylist1
+                                       assert tslashnode2 isa nullable TSlash
+                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
+                                               tslashnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction477
+private class ReduceAction91
        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 tpercentnode2 = nodearraylist1
+                                       assert tpercentnode2 isa nullable TPercent
+                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
+                                               tpercentnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction478
+private class ReduceAction92
        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
+                                       var tpipenode2 = nodearraylist1
+                                       assert tpipenode2 isa nullable TPipe
+                                       var pmethidnode1: nullable APipeMethid = new APipeMethid.init_apipemethid(
+                                               tpipenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction479
+private class ReduceAction93
        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
+                                       var tcaretnode2 = nodearraylist1
+                                       assert tcaretnode2 isa nullable TCaret
+                                       var pmethidnode1: nullable ACaretMethid = new ACaretMethid.init_acaretmethid(
+                                               tcaretnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction480
+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 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,
-                                               null
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pmethidnode1: nullable AAmpMethid = new AAmpMethid.init_aampmethid(
+                                               tampnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction481
+private class ReduceAction95
        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 ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pmethidnode1: nullable ATildeMethid = new ATildeMethid.init_atildemethid(
+                                               ttildenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction482
+private class ReduceAction96
        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 pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var teqnode2 = nodearraylist1
+                                       assert teqnode2 isa nullable TEq
+                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
+                                               teqnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction483
+private class ReduceAction97
        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
+                                       var tnenode2 = nodearraylist1
+                                       assert tnenode2 isa nullable TNe
+                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
+                                               tnenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction484
+private class ReduceAction98
        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
+                                       var tlenode2 = nodearraylist1
+                                       assert tlenode2 isa nullable TLe
+                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
+                                               tlenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction485
+private class ReduceAction99
        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
+                                       var tgenode2 = nodearraylist1
+                                       assert tgenode2 isa nullable TGe
+                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
+                                               tgenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction486
+private class ReduceAction100
        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 tltnode2 = nodearraylist1
+                                       assert tltnode2 isa nullable TLt
+                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
+                                               tltnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction487
+private class ReduceAction101
        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 pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tgtnode2 = nodearraylist1
+                                       assert tgtnode2 isa nullable TGt
+                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
+                                               tgtnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction488
+private class ReduceAction102
        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 pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tllnode2 = nodearraylist1
+                                       assert tllnode2 isa nullable TLl
+                                       var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
+                                               tllnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction489
+private class ReduceAction103
        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 pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tggnode2 = nodearraylist1
+                                       assert tggnode2 isa nullable TGg
+                                       var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
+                                               tggnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction490
+private class ReduceAction104
        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 pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa nullable TCbra
+                                       var pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
+                                               tobranode2,
+                                               tcbranode3
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction491
+private class ReduceAction105
        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 pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tstarshipnode2 = nodearraylist1
+                                       assert tstarshipnode2 isa nullable TStarship
+                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
+                                               tstarshipnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction492
+private class ReduceAction106
        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 pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa nullable TAssign
+                                       var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
+                                               tidnode2,
+                                               tassignnode3
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction493
+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 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 pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa nullable TCbra
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pmethidnode1: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
+                                               tobranode2,
+                                               tcbranode3,
+                                               tassignnode4
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction494
+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 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 pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
+                                               tidnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction495
+private class ReduceAction109
        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 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(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var listnode4 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var ptypenode6 = nodearraylist5
+                                       assert ptypenode6 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               ptypenode6
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction496
+private class ReduceAction110
        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 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(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var listnode4 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction497
+private class ReduceAction111
        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 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(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                null,
+                                               listnode3,
                                                null,
-                                               pexterncodeblocknode10
+                                               ptypenode5
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction498
+private class ReduceAction112
        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 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(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
+                                       var listnode3 = new Array[Object]
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                null,
+                                               listnode3,
                                                null,
-                                               pexterncodeblocknode10
+                                               null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction499
+private class ReduceAction113
        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 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(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction500
+private class ReduceAction114
        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 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(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode3 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pparamnode1 != null then
+                                               listnode3.add(pparamnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction501
+private class ReduceAction116
        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 tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       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 pparamnode1 = nodearraylist3
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction502
+private class ReduceAction117
        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 tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode5
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction503
+private class ReduceAction118
        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 tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
                                                null,
-                                               pexterncodeblocknode10
+                                               null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction504
+private class ReduceAction119
        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 tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode5
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction505
+private class ReduceAction120
        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 pexterncallsnode9 = nodearraylist5
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist3
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4,
+                                               null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction506
+private class ReduceAction121
        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 pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist4
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction507
+private class ReduceAction122
        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 pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var listnode4 = new Array[Object]
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var pexterncallnode3 = nodearraylist3
+                                       assert pexterncallnode3 isa nullable AExternCall
+                                       if pexterncallnode3 != null then
+                                               listnode4.add(pexterncallnode3)
+                                       end
+                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
+                                               tkwimportnode2,
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pexterncallsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction508
+private class ReduceAction123
        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 pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var listnode5 = new Array[Object]
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var pexterncallnode3 = nodearraylist3
+                                       assert pexterncallnode3 isa nullable AExternCall
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       if pexterncallnode3 != null then
+                                               listnode5.add(pexterncallnode3)
+                                       end
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
+                                               tkwimportnode2,
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pexterncallsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction509
+private class ReduceAction125
        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 = 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(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var pexterncallnode1 = nodearraylist3
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction510
+private class ReduceAction126
        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 = 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(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var pexterncallnode1 = nodearraylist1
+                                       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 nodearraylist1 = p.pop
+                                       var tkwsupernode2 = nodearraylist1
+                                       assert tkwsupernode2 isa nullable TKwsuper
+                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
+                                               tkwsupernode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction511
+private class ReduceAction129
        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 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(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       var pmethidnode2 = nodearraylist1
+                                       assert pmethidnode2 isa nullable AMethid
+                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
+                                               pmethidnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction512
+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 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 = 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(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                       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 = ppropdefnode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction513
+private class ReduceAction131
        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
+                                       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 ReduceAction514
+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 pannotationsnode1 = nodearraylist3
-                                       node_list = pannotationsnode1
+                                       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 ReduceAction516
+private class ReduceAction133
        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 pannotationsnode1 = nodearraylist3
-                                       node_list = pannotationsnode1
+                                       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 ReduceAction517
+private class ReduceAction134
        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 tkwreadablenode3 = nodearraylist1
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode3
+                                       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 = pablenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction518
+private class ReduceAction135
        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 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
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnullablenode4 = nodearraylist5
+                                       assert tkwnullablenode4 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnullablenode4
                                        )
-                                       node_list = pablenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction519
+private class ReduceAction136
        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 tkwwritablenode4 = nodearraylist1
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               null,
-                                               tkwwritablenode4
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       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,
+                                               tkwnotnode4,
+                                               tkwnullablenode5
                                        )
-                                       node_list = pablenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction520
+private class ReduceAction137
        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 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
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist5
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullablenode5 = nodearraylist7
+                                       assert tkwnullablenode5 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullablenode5
                                        )
-                                       node_list = pablenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction521
+private class ReduceAction139
        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
-                                       )
-                                       node_list = pablenode1
+                                       var tstringnode1 = nodearraylist1
+                                       node_list = tstringnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction522
+private class ReduceAction140
        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 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 tkwinnode2 = nodearraylist1
+                                       assert tkwinnode2 isa nullable TKwin
+                                       var tstringnode3 = nodearraylist3
+                                       assert tstringnode3 isa nullable TString
+                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
+                                               tkwinnode2,
+                                               tstringnode3
                                        )
-                                       node_list = pablenode1
+                                       node_list = pinlanguagenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction523
+private class ReduceAction141
        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
+                                       var nodearraylist1 = p.pop
+                                       var texterncodesegmentnode3 = nodearraylist1
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
+                                               null,
+                                               texterncodesegmentnode3
+                                       )
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction524
+private class ReduceAction142
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwprivatenode2 = nodearraylist1
-                                       assert tkwprivatenode2 isa nullable TKwprivate
-                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
-                                               tkwprivatenode2
+                                       var pinlanguagenode2 = nodearraylist1
+                                       assert pinlanguagenode2 isa nullable AInLanguage
+                                       var texterncodesegmentnode3 = nodearraylist2
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
+                                               pinlanguagenode2,
+                                               texterncodesegmentnode3
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction525
+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 tkwprotectednode2 = nodearraylist1
-                                       assert tkwprotectednode2 isa nullable TKwprotected
-                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
-                                               tkwprotectednode2
-                                       )
-                                       node_list = pvisibilitynode1
+                                       var pexterncodeblocknode1 = nodearraylist1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction526
+private class ReduceAction145
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwintrudenode2 = nodearraylist1
-                                       assert tkwintrudenode2 isa nullable TKwintrude
-                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
-                                               tkwintrudenode2
-                                       )
-                                       node_list = pvisibilitynode1
+                                       var pexterncodeblocknode1 = nodearraylist2
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction527
+private class ReduceAction146
        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 pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode2
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pannotationsnode7 = nodearraylist2
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               tclassidnode3,
+                                               null,
+                                               listnode5,
+                                               null,
+                                               pannotationsnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction528
+private class ReduceAction147
        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 tplusnode2 = nodearraylist1
-                                       assert tplusnode2 isa nullable TPlus
-                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode2
+                                       var listnode5 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               null,
+                                               listnode5,
+                                               null,
+                                               pannotationsnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction529
+private class ReduceAction148
        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 tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode2
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var tobranode4 = nodearraylist2
+                                       assert tobranode4 isa nullable TObra
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tcbranode7 = nodearraylist6
+                                       assert tcbranode7 isa nullable TCbra
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               tclassidnode3,
+                                               tobranode4,
+                                               listnode6,
+                                               tcbranode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction530
+private class ReduceAction149
        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 tstarnode2 = nodearraylist1
-                                       assert tstarnode2 isa nullable TStar
-                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode2
+                                       var listnode6 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var tobranode4 = nodearraylist3
+                                       assert tobranode4 isa nullable TObra
+                                       var listnode5 = nodearraylist5
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tcbranode7 = nodearraylist7
+                                       assert tcbranode7 isa nullable TCbra
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               tobranode4,
+                                               listnode6,
+                                               tcbranode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction150
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       if ptypenode1 != null then
+                                               listnode2.add(ptypenode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction531
+private class ReduceAction151
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tslashnode2 = nodearraylist1
-                                       assert tslashnode2 isa nullable TSlash
-                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode2
-                                       )
-                                       node_list = pmethidnode1
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if ptypenode1 != null then
+                                               listnode3.add(ptypenode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction532
+private class ReduceAction152
        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 tpercentnode2 = nodearraylist1
-                                       assert tpercentnode2 isa nullable TPercent
-                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode2
-                                       )
-                                       node_list = pmethidnode1
+                                       var ptypenode1 = nodearraylist3
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction533
+private class ReduceAction156
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var teqnode2 = nodearraylist1
-                                       assert teqnode2 isa nullable TEq
-                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode2
-                                       )
-                                       node_list = pmethidnode1
+                                       var pexprnode1 = nodearraylist2
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction534
+private class ReduceAction157
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tnenode2 = nodearraylist1
-                                       assert tnenode2 isa nullable TNe
-                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode2
+                                       var listnode2 = new Array[Object]
+                                       var tkwendnode3 = nodearraylist2
+                                       assert tkwendnode3 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2,
+                                               tkwendnode3
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction535
+private class ReduceAction158
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tlenode2 = nodearraylist1
-                                       assert tlenode2 isa nullable TLe
-                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode2
+                                       var listnode2 = new Array[Object]
+                                       var tkwendnode3 = nodearraylist1
+                                       assert tkwendnode3 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2,
+                                               tkwendnode3
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction536
+private class ReduceAction159
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tgenode2 = nodearraylist1
-                                       assert tgenode2 isa nullable TGe
-                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode2
-                                       )
-                                       node_list = pmethidnode1
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction537
+private class ReduceAction160
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tltnode2 = nodearraylist1
-                                       assert tltnode2 isa nullable TLt
-                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode2
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction538
+private class ReduceAction161
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tgtnode2 = nodearraylist1
-                                       assert tgtnode2 isa nullable TGt
-                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode2
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction539
+private class ReduceAction162
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tllnode2 = nodearraylist1
-                                       assert tllnode2 isa nullable TLl
-                                       var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
-                                               tllnode2
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction540
+private class ReduceAction163
        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 tggnode2 = nodearraylist1
-                                       assert tggnode2 isa nullable TGg
-                                       var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
-                                               tggnode2
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction541
+private class ReduceAction164
        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 tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var tcbranode3 = nodearraylist2
-                                       assert tcbranode3 isa nullable TCbra
-                                       var pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode2,
-                                               tcbranode3
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var tkwendnode4 = nodearraylist3
+                                       assert tkwendnode4 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               tkwendnode4
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction542
+private class ReduceAction165
        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 tstarshipnode2 = nodearraylist1
-                                       assert tstarshipnode2 isa nullable TStarship
-                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode2
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwendnode5 = nodearraylist4
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               tkwendnode5
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction543
+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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var tassignnode3 = nodearraylist2
-                                       assert tassignnode3 isa nullable TAssign
-                                       var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode2,
-                                               tassignnode3
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction544
+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 tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var tcbranode3 = nodearraylist2
-                                       assert tcbranode3 isa nullable TCbra
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pmethidnode1: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode2,
-                                               tcbranode3,
-                                               tassignnode4
+                                       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 = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction545
+private class ReduceAction171
        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 tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction546
+private class ReduceAction172
        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 toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var ptypenode6 = nodearraylist5
-                                       assert ptypenode6 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               ptypenode6
+                                       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
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction547
+private class ReduceAction173
        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
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction548
+private class ReduceAction174
        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 toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
                                                null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction549
+private class ReduceAction175
        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 ptypenode5 = nodearraylist1
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               ptypenode5
+                                       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
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction550
+private class ReduceAction183
        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 psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               null
+                                               tidnode5
                                        )
-                                       node_list = psignaturenode1
+                                       var pexprsnode6 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction551
+private class ReduceAction184
        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 listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction552
+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 listnode3 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pparamnode1 != null then
-                                               listnode3.add(pparamnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction553
+private class ReduceAction186
        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 pparamnode1 = nodearraylist3
-                                       node_list = pparamnode1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist6
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction554
+private class ReduceAction187
        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 pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               null
+                                               tidnode5
                                        )
-                                       node_list = pparamnode1
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction555
+private class ReduceAction188
        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 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null,
-                                               pannotationsnode5
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
                                        )
-                                       node_list = pparamnode1
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction556
+private class ReduceAction189
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               null,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
                                        )
-                                       node_list = pparamnode1
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction557
+private class ReduceAction190
        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 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               null,
-                                               pannotationsnode5
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
                                        )
-                                       node_list = pparamnode1
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction558
+private class ReduceAction191
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23271,118 +5557,121 @@ private class ReduceAction558
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist3
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4,
-                                               null
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               pexprsnode4
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction559
+private class ReduceAction192
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist4
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4,
-                                               pannotationsnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction560
+private class ReduceAction193
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist1
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               null,
-                                               pexprnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist2
+                                       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 ReduceAction561
+private class ReduceAction194
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwimportnode2 = nodearraylist1
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var pexterncallnode3 = nodearraylist3
-                                       assert pexterncallnode3 isa nullable AExternCall
-                                       if pexterncallnode3 != null then
-                                               listnode4.add(pexterncallnode3)
-                                       end
-                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
-                                               tkwimportnode2,
-                                               listnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist5
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = pexterncallsnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction562
+private class ReduceAction195
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwimportnode2 = nodearraylist1
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var pexterncallnode3 = nodearraylist3
-                                       assert pexterncallnode3 isa nullable AExternCall
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       if pexterncallnode3 != null then
-                                               listnode5.add(pexterncallnode3)
-                                       end
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
-                                               tkwimportnode2,
-                                               listnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist6
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = pexterncallsnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction563
+private class ReduceAction197
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23390,357 +5679,557 @@ private class ReduceAction563
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncallnode1 = nodearraylist3
-                                       node_list = pexterncallnode1
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction564
+private class ReduceAction198
        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 pexterncallnode1 = nodearraylist1
-                                       node_list = pexterncallnode1
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist3
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction566
+private class ReduceAction200
        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 = nodearraylist1
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
-                                               tkwsupernode2
+                                       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 = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction567
+private class ReduceAction201
        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
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction568
+private class ReduceAction202
        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 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 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 = pexterncallnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction569
+private class ReduceAction203
        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 pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
-                                               tclassidnode2
+                                       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,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction570
+private class ReduceAction204
        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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist6
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist4
                                        assert ptypenode4 isa nullable AType
-                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               ptypenode4
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
+                                               null,
+                                               pannotationsnode7
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction571
+private class ReduceAction205
        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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnullablenode4 = nodearraylist4
-                                       assert tkwnullablenode4 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnullablenode4
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction572
+private class ReduceAction206
        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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist4
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullablenode5 = nodearraylist6
-                                       assert tkwnullablenode5 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullablenode5
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist5
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction573
+private class ReduceAction207
        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 tkwinnode2 = nodearraylist1
-                                       assert tkwinnode2 isa nullable TKwin
-                                       var tstringnode3 = nodearraylist2
-                                       assert tstringnode3 isa nullable TString
-                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
-                                               tkwinnode2,
-                                               tstringnode3
+                                       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(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pinlanguagenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction574
+private class ReduceAction208
        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 texterncodesegmentnode3 = nodearraylist1
-                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
-                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
-                                               null,
-                                               texterncodesegmentnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pexterncodeblocknode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction575
+private class ReduceAction209
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pinlanguagenode2 = nodearraylist1
-                                       assert pinlanguagenode2 isa nullable AInLanguage
-                                       var texterncodesegmentnode3 = nodearraylist2
-                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
-                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
-                                               pinlanguagenode2,
-                                               texterncodesegmentnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
                                        )
-                                       node_list = pexterncodeblocknode1
+                                       var pexprsnode6 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var tassignnode7 = nodearraylist6
+                                       assert tassignnode7 isa nullable TAssign
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction576
+private class ReduceAction210
        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 pexterncodeblocknode1 = nodearraylist2
-                                       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(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               tclassidnode3,
-                                               listnode4,
-                                               null
+                                               tidnode5
                                        )
-                                       node_list = ptypenode1
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var tassignnode8 = nodearraylist5
+                                       assert tassignnode8 isa nullable TAssign
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction578
+private class ReduceAction211
        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 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
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode9,
+                                               pexprnode10
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction579
+private class ReduceAction212
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4,
-                                               pannotationsnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
                                        )
-                                       node_list = ptypenode1
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var tassignnode10 = nodearraylist6
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction580
+private class ReduceAction213
        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 tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pannotationsnode5 = nodearraylist3
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4,
-                                               pannotationsnode5
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist8
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction581
+private class ReduceAction214
        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 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
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
                                        )
-                                       node_list = ptypenode1
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist7
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction582
+private class ReduceAction215
        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
@@ -23748,25 +6237,40 @@ private class ReduceAction582
                                        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,
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
                                                null
                                        )
-                                       node_list = ptypenode1
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist6
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist7
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction583
+private class ReduceAction216
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -23778,1143 +6282,1580 @@ private class ReduceAction583
                                        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 pannotationsnode6 = nodearraylist7
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5,
-                                               pannotationsnode6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
                                        )
-                                       node_list = ptypenode1
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist6
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist7
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction584
+private class ReduceAction217
        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 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 pannotationsnode6 = nodearraylist8
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5,
-                                               pannotationsnode6
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
                                        )
-                                       node_list = ptypenode1
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var tassignnode7 = nodearraylist3
+                                       assert tassignnode7 isa nullable TAssign
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction585
+private class ReduceAction218
        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 listnode2 = new Array[Object]
-                                       var ptypenode1 = nodearraylist1
-                                       if ptypenode1 != null then
-                                               listnode2.add(ptypenode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var tassignnode8 = nodearraylist2
+                                       assert tassignnode8 isa nullable TAssign
+                                       var pexprnode9 = nodearraylist3
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction586
+private class ReduceAction219
        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 ptypenode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if ptypenode1 != null then
-                                               listnode3.add(ptypenode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var tassignnode9 = nodearraylist4
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist5
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction587
+private class ReduceAction220
        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 ptypenode1 = nodearraylist3
-                                       node_list = ptypenode1
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var tassignnode10 = nodearraylist3
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist4
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction589
+private class ReduceAction221
        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 pexprnode1 = nodearraylist2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist5
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist6
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction590
+private class ReduceAction222
        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 tkwendnode3 = nodearraylist2
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist4
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist5
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction591
+private class ReduceAction223
        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 tkwendnode3 = nodearraylist1
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist4
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist5
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction592
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction593
+private class ReduceAction224
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
                                                null
                                        )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist3
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist4
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction594
+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 listnode4 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               null
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               pexprsnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction595
+private class ReduceAction226
        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 listnode3 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               null
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist6
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction596
+private class ReduceAction227
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction597
+private class ReduceAction228
        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 listnode3 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var tkwendnode4 = nodearraylist3
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               tkwendnode4
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var passignopnode7 = nodearraylist6
+                                       assert passignopnode7 isa nullable AAssignOp
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode7,
+                                               pexprnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction598
+private class ReduceAction229
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tkwendnode5 = nodearraylist4
-                                       assert tkwendnode5 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               tkwendnode5
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var passignopnode8 = nodearraylist5
+                                       assert passignopnode8 isa nullable AAssignOp
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode8,
+                                               pexprnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction602
+private class ReduceAction230
        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 tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist7
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction603
+private class ReduceAction231
        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 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
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist6
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction604
+private class ReduceAction232
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist8
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction605
+private class ReduceAction233
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist7
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction606
+private class ReduceAction234
        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 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
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist6
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist7
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction607
+private class ReduceAction235
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction608
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist6
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist7
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction609
+private class ReduceAction236
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               null
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var passignopnode7 = nodearraylist3
+                                       assert passignopnode7 isa nullable AAssignOp
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode7,
+                                               pexprnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction610
+private class ReduceAction237
        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 pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var passignopnode8 = nodearraylist2
+                                       assert passignopnode8 isa nullable AAssignOp
+                                       var pexprnode9 = nodearraylist3
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode8,
+                                               pexprnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction611
+private class ReduceAction238
        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 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
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist4
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist5
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction612
+private class ReduceAction239
        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 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
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist3
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist4
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction619
+private class ReduceAction240
        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 tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist5
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist6
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction620
+private class ReduceAction241
        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 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist4
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist5
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction621
+private class ReduceAction242
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist5
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist6
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist4
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist5
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction622
+private class ReduceAction243
        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
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist7
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist3
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist4
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction624
+private class ReduceAction244
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                               pexprsnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction625
+private class ReduceAction245
        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 tidnode3 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist4
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa nullable TPluseq
+                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction627
+private class ReduceAction246
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               pexprsnode4
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa nullable TMinuseq
+                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction628
+private class ReduceAction247
        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
+                                       var tstareqnode2 = nodearraylist1
+                                       assert tstareqnode2 isa nullable TStareq
+                                       var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
+                                               tstareqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction629
+private class ReduceAction248
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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
+                                       var tslasheqnode2 = nodearraylist1
+                                       assert tslasheqnode2 isa nullable TSlasheq
+                                       var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+                                               tslasheqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction630
+private class ReduceAction249
        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
+                                       var tpercenteqnode2 = nodearraylist1
+                                       assert tpercenteqnode2 isa nullable TPercenteq
+                                       var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+                                               tpercenteqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction631
+private class ReduceAction250
        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 tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var tstarstareqnode2 = nodearraylist1
+                                       assert tstarstareqnode2 isa nullable TStarstareq
+                                       var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
+                                               tstarstareqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction632
+private class ReduceAction251
        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 tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var tpipeeqnode2 = nodearraylist1
+                                       assert tpipeeqnode2 isa nullable TPipeeq
+                                       var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+                                               tpipeeqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction633
+private class ReduceAction252
        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 tkwinitnode3 = nodearraylist5
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist6
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var tcareteqnode2 = nodearraylist1
+                                       assert tcareteqnode2 isa nullable TCareteq
+                                       var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+                                               tcareteqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction634
+private class ReduceAction253
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist6
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist7
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var tampeqnode2 = nodearraylist1
+                                       assert tampeqnode2 isa nullable TAmpeq
+                                       var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+                                               tampeqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction636
+private class ReduceAction254
        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 tkwinitnode3 = nodearraylist2
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var tlleqnode2 = nodearraylist1
+                                       assert tlleqnode2 isa nullable TLleq
+                                       var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+                                               tlleqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction637
+private class ReduceAction255
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tkwinitnode3 = nodearraylist3
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist4
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                       var tggeqnode2 = nodearraylist1
+                                       assert tggeqnode2 isa nullable TGgeq
+                                       var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+                                               tggeqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction639
+private class ReduceAction256
        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
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction640
+private class ReduceAction257
        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
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction642
+private class ReduceAction258
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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 tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist7
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction643
+private class ReduceAction259
        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 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,
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
                                                null,
-                                               pannotationsnode7
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction644
+private class ReduceAction260
        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 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,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist8
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction645
+private class ReduceAction261
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       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,
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var tkwelsenode6 = nodearraylist6
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
                                                null,
-                                               pannotationsnode7
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction646
+private class ReduceAction262
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var tkwelsenode6 = nodearraylist7
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
                                                null,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               null
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction647
+private class ReduceAction263
        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 tkwvarnode2 = nodearraylist1
-                                       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 pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
                                                null,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction648
+private class ReduceAction264
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24925,29 +7866,27 @@ private class ReduceAction648
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               null,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction649
+private class ReduceAction265
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -24959,85 +7898,70 @@ private class ReduceAction649
                                        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 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist5
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               null,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction650
+private class ReduceAction267
        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 tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var nodearraylist1 = p.pop
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction651
+private class ReduceAction268
        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 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction652
+private class ReduceAction269
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25049,211 +7973,193 @@ private class ReduceAction652
                                        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 tassignnode4 = nodearraylist6
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist7
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction653
+private class ReduceAction270
        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 tattridnode3 = nodearraylist6
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist7
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist8
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction655
+private class ReduceAction271
        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 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var listnode4 = new Array[Object]
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwdonode5 = nodearraylist5
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction656
+private class ReduceAction272
        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 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(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var listnode4 = new Array[Object]
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwdonode5 = nodearraylist5
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction658
+private class ReduceAction273
        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 = 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,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode2 = new Array[Object]
+                                       var pforgroupnode1 = nodearraylist1
+                                       if pforgroupnode1 != null then
+                                               listnode2.add(pforgroupnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction659
+private class ReduceAction274
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var pforgroupnode2 = nodearraylist5
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if pforgroupnode2 != null then
+                                               listnode3.add(pforgroupnode2)
+                                       end
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction660
+private class ReduceAction275
        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
-                                       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,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var tkwinnode4 = nodearraylist3
+                                       assert tkwinnode4 isa nullable TKwin
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
+                                               listnode3,
+                                               tkwinnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pforgroupnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction661
+private class ReduceAction276
        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
@@ -25261,116 +8167,88 @@ private class ReduceAction661
                                        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 pexprsnode4 = nodearraylist7
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist8
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist9
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction663
+private class ReduceAction277
        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
-                                       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 pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       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 ReduceAction664
+private class ReduceAction278
        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 = nodearraylist3
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist4
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist5
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist3
                                        assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
                                                tidnode3,
-                                               pexprsnode4,
+                                               ptypenode4,
                                                tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction666
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
-                                               pexprsnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction667
+private class ReduceAction279
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25381,168 +8259,155 @@ private class ReduceAction667
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var 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 ReduceAction668
+private class ReduceAction281
        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
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwelsenode5 = nodearraylist3
+                                       assert tkwelsenode5 isa nullable TKwelse
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
+                                               tkwelsenode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction669
+private class ReduceAction282
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist5
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist6
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwelsenode5 = nodearraylist4
+                                       assert tkwelsenode5 isa nullable TKwelse
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwelsenode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction670
+private class ReduceAction283
        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 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(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction672
+private class ReduceAction284
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction673
+private class ReduceAction285
        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 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(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
+                                       var tidnode1 = nodearraylist1
+                                       node_list = tidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction675
+private class ReduceAction287
        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
@@ -25550,28 +8415,31 @@ private class ReduceAction675
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       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,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction676
+private class ReduceAction289
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25580,69 +8448,50 @@ private class ReduceAction676
                                        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 pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               tkwornode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction677
+private class ReduceAction290
        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
-                                       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(
+                                       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,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               tkwandnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction678
+private class ReduceAction291
        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
@@ -25650,87 +8499,67 @@ private class ReduceAction678
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist6
-                                       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 pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       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,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               tkwornode3,
+                                               tkwelsenode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction680
+private class ReduceAction292
        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 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist4
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwimpliesnode3 = nodearraylist2
+                                       assert tkwimpliesnode3 isa nullable TKwimplies
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               tkwimpliesnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction681
+private class ReduceAction294
        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 = 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 pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction683
+private class ReduceAction296
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -25741,516 +8570,428 @@ private class ReduceAction683
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                       var teqnode3 = nodearraylist2
+                                       assert teqnode3 isa nullable TEq
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
                                                pexprnode2,
-                                               pexprsnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                               teqnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction684
+private class ReduceAction297
        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 tpluseqnode2 = nodearraylist1
-                                       assert tpluseqnode2 isa nullable TPluseq
-                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
-                                               tpluseqnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tnenode3 = nodearraylist2
+                                       assert tnenode3 isa nullable TNe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               tnenode3,
+                                               pexprnode4
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction685
+private class ReduceAction298
        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 tminuseqnode2 = nodearraylist1
-                                       assert tminuseqnode2 isa nullable TMinuseq
-                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
-                                               tminuseqnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tltnode3 = nodearraylist2
+                                       assert tltnode3 isa nullable TLt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               tltnode3,
+                                               pexprnode4
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction686
+private class ReduceAction299
        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 tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var plabelnode4 = nodearraylist3
-                                       assert plabelnode4 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tlenode3 = nodearraylist2
+                                       assert tlenode3 isa nullable TLe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               tlenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction687
+private class ReduceAction300
        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 tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tgtnode3 = nodearraylist2
+                                       assert tgtnode3 isa nullable TGt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               tgtnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction688
+private class ReduceAction301
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tgenode3 = nodearraylist2
+                                       assert tgenode3 isa nullable TGe
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               tgenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction689
+private class ReduceAction302
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tstarshipnode3 = nodearraylist2
+                                       assert tstarshipnode3 isa nullable TStarship
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               null
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               tstarshipnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction690
+private class ReduceAction303
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwisanode3 = nodearraylist2
+                                       assert tkwisanode3 isa nullable TKwisa
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               tkwisanode3,
+                                               ptypenode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction691
+private class ReduceAction305
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
-                                               pexprnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tpipenode3 = nodearraylist2
+                                       assert tpipenode3 isa nullable TPipe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
+                                               pexprnode2,
+                                               tpipenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction692
+private class ReduceAction307
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
-                                               pexprnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tcaretnode3 = nodearraylist2
+                                       assert tcaretnode3 isa nullable TCaret
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
+                                               pexprnode2,
+                                               tcaretnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction695
+private class ReduceAction309
        super ReduceAction
        redef fun action(p: Parser)
        do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var plabelnode4 = nodearraylist3
-                                       assert plabelnode4 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode4
+                                       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 tampnode3 = nodearraylist2
+                                       assert tampnode3 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
+                                               pexprnode2,
+                                               tampnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction696
+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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var 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 ReduceAction697
+private class ReduceAction312
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var plabelnode6 = nodearraylist7
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode6
+                                       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 ReduceAction698
+private class ReduceAction314
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var 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,
+                                               tplusnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction699
+private class ReduceAction315
        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 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
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist13
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist14
-                                       assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist15
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode8
+                                       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 ReduceAction700
+private class ReduceAction317
        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 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 plabelnode8 = nodearraylist11
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode8
+                                       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 ReduceAction701
+private class ReduceAction318
        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 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
-                                       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,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       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 ReduceAction702
+private class ReduceAction319
        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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       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,
+                                               tpercentnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction703
+private class ReduceAction321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26259,253 +9000,238 @@ private class ReduceAction703
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tstarstarnode3 = nodearraylist2
+                                       assert tstarstarnode3 isa nullable TStarstar
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
+                                               pexprnode2,
+                                               tstarstarnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction704
+private class ReduceAction323
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction705
+private class ReduceAction324
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               null
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
+                                               tplusnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction706
+private class ReduceAction325
        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 tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               null
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
+                                               ttildenode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction707
+private class ReduceAction326
        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 tidnode1 = nodearraylist1
-                                       node_list = tidnode1
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction710
+private class ReduceAction328
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprsnode5 = nodearraylist4
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction712
+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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 ReduceAction713
+private class ReduceAction330
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tattridnode4 = nodearraylist6
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction714
+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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist5
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode4 = nodearraylist3
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction715
+private class ReduceAction333
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction717
+private class ReduceAction334
        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 tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
+                                       var 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 ReduceAction719
+private class ReduceAction336
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26516,185 +9242,302 @@ private class ReduceAction719
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction720
+private class ReduceAction338
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction721
+private class ReduceAction340
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction722
+private class ReduceAction342
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction723
+private class ReduceAction344
        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
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction724
+private class ReduceAction346
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction725
+private class ReduceAction348
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction726
+private class ReduceAction350
        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
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction727
+private class ReduceAction352
        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
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 ReduceAction728
+private class ReduceAction354
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -26705,166 +9548,271 @@ private class ReduceAction728
                                        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 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,
-                                               ptypenode3
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction730
+private class ReduceAction356
        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
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       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,
-                                               pexprnode3
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction731
+private class ReduceAction357
        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
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pexprsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction733
+private class ReduceAction358
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode6 = nodearraylist6
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var pexprsnode7 = nodearraylist7
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction734
+private class ReduceAction359
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode6 = nodearraylist6
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction735
+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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist6
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist7
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist8
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction737
+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 tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist6
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist7
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction738
+private class ReduceAction362
        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 tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist7
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist8
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist9
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction740
+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
@@ -26873,95 +9821,169 @@ private class ReduceAction740
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
-                                       var pexprsnode5 = nodearraylist4
-                                       assert pexprsnode5 isa nullable AExprs
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist7
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist8
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
-                                               null,
-                                               pexprsnode5
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction741
+private class ReduceAction364
        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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist8
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction742
+private class ReduceAction365
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode4 = nodearraylist2
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction743
+private class ReduceAction366
        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 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 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 ReduceAction744
+private class ReduceAction367
        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
@@ -26969,303 +9991,263 @@ private class ReduceAction744
                                        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
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction746
-       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 = 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 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 ReduceAction747
+private class ReduceAction368
        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 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 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 ReduceAction749
+private class ReduceAction370
        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 tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var tdotdotdotnode3 = nodearraylist2
+                                       assert tdotdotdotnode3 isa nullable TDotdotdot
+                                       var pexprnode1: nullable AVarargExpr = new AVarargExpr.init_avarargexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               tdotdotdotnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction750
+private class ReduceAction371
        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 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa nullable TAssign
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ANamedargExpr = new ANamedargExpr.init_anamedargexpr(
+                                               tidnode2,
+                                               tassignnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction751
+private class ReduceAction372
        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(
-                                               pexprnode2,
-                                               tattridnode3
+                                       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 ReduceAction752
+private class ReduceAction373
        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(
-                                               pexprnode2,
-                                               tattridnode3
+                                       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 ReduceAction754
+private class ReduceAction374
        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(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa nullable TKwfalse
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction755
+private class ReduceAction375
        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(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa nullable TKwnull
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction771
+private class ReduceAction376
        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 pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               pexprsnode3
+                                       var tintegernode2 = nodearraylist1
+                                       assert tintegernode2 isa nullable TInteger
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AIntegerExpr = new AIntegerExpr.init_aintegerexpr(
+                                               tintegernode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction772
+private class ReduceAction377
        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 tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist6
-                                       assert tidnode4 isa nullable TId
-                                       var pexprsnode5 = nodearraylist7
-                                       assert pexprsnode5 isa nullable AExprs
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               pexprsnode5
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa nullable TFloat
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction773
+private class ReduceAction378
        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 tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist7
-                                       assert tidnode4 isa nullable TId
-                                       var pexprsnode5 = nodearraylist8
-                                       assert pexprsnode5 isa nullable AExprs
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               pexprsnode5
+                                       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,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction774
+private class ReduceAction379
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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
+                                       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
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction776
+private class ReduceAction382
        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
@@ -27279,22 +10261,27 @@ private class ReduceAction776
                                        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 tdotdotnode4 = nodearraylist5
+                                       assert tdotdotnode4 isa nullable TDotdot
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tcbranode6 = nodearraylist9
+                                       assert tcbranode6 isa nullable TCbra
+                                       var pannotationsnode7 = nodearraylist10
+                                       assert pannotationsnode7 isa nullable AAnnotations
                                        var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
                                                tobranode2,
                                                pexprnode3,
-                                               pexprnode4,
-                                               tcbranode5,
-                                               null
+                                               tdotdotnode4,
+                                               pexprnode5,
+                                               tcbranode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction777
+private class ReduceAction383
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27313,506 +10300,452 @@ private class ReduceAction777
                                        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(
+                                       var tdotdotnode4 = nodearraylist5
+                                       assert tdotdotnode4 isa nullable TDotdot
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tobranode6 = nodearraylist9
+                                       assert tobranode6 isa nullable TObra
+                                       var pannotationsnode7 = nodearraylist10
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
                                                tobranode2,
                                                pexprnode3,
-                                               pexprnode4,
-                                               tcbranode5,
-                                               pannotationsnode6
+                                               tdotdotnode4,
+                                               pexprnode5,
+                                               tobranode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction778
+private class ReduceAction384
        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 listnode4 = new Array[Object]
                                        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(
+                                       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,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tobranode5,
-                                               null
+                                               listnode4,
+                                               ptypenode5,
+                                               tcbranode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction779
+private class ReduceAction385
        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 tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
                                        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,
+                                       var tcparnode4 = nodearraylist5
+                                       assert tcparnode4 isa nullable TCpar
+                                       var pannotationsnode5 = nodearraylist6
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
+                                               toparnode2,
                                                pexprnode3,
-                                               pexprnode4,
-                                               tobranode5,
-                                               pannotationsnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction780
-       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
+                                               tcparnode4,
+                                               pannotationsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction781
+private class ReduceAction387
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction782
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable AManyExpr = new AManyExpr.init_amanyexpr(
+                                               listnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction783
+private class ReduceAction388
        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 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
-                                       )
+                                       var pexprnode1 = nodearraylist3
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction784
+private class ReduceAction389
        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
-                                       )
-                                       node_list = pexprnode1
+                                       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 ReduceAction785
+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 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 ReduceAction786
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
+                                       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 ReduceAction787
+private class ReduceAction392
        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 pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2,
-                                               pannotationsnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction788
-       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
-                                       )
+                                       var pexprnode1 = nodearraylist1
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction789
+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 tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2,
-                                               pannotationsnode3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction790
+private class ReduceAction395
        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 tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       listnode4 = concat(listnode4, listnode2)
+                                       if pexprnode3 != null then
+                                               listnode4.add(pexprnode3)
+                                       end
+                                       var pannotationsnode5 = nodearraylist3
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode4,
+                                               pannotationsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction791
+private class ReduceAction396
        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 tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2,
-                                               pannotationsnode3
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       listnode5 = concat(listnode5, listnode2)
+                                       listnode5 = concat(listnode5, listnode3)
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pannotationsnode6 = nodearraylist4
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction792
+private class ReduceAction397
        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 tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       var pexprnode2 = nodearraylist3
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction793
+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 tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2,
-                                               pannotationsnode3
-                                       )
-                                       node_list = pexprnode1
+                                       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 ReduceAction794
+private class ReduceAction399
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2,
-                                               null
+                                       var tstartstringnode2 = nodearraylist1
+                                       assert tstartstringnode2 isa nullable TStartString
+                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
+                                               tstartstringnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction795
+private class ReduceAction402
        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,
-                                               pannotationsnode3
+                                       var tmidstringnode2 = nodearraylist1
+                                       assert tmidstringnode2 isa nullable TMidString
+                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
+                                               tmidstringnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction796
+private class ReduceAction403
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2,
-                                               null
+                                       var tendstringnode2 = nodearraylist1
+                                       assert tendstringnode2 isa nullable TEndString
+                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
+                                               tendstringnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction797
+private class ReduceAction404
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 listnode6 = new Array[Object]
+                                       var tatnode3 = nodearraylist1
+                                       assert tatnode3 isa nullable TAt
+                                       var pannotationnode5 = nodearraylist2
+                                       assert pannotationnode5 isa nullable AAnnotation
+                                       if pannotationnode5 != null then
+                                               listnode6.add(pannotationnode5)
+                                       end
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               tatnode3,
+                                               null,
+                                               listnode6,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction799
+private class ReduceAction405
        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,
+                                       var listnode6 = new Array[Object]
+                                       var tatnode3 = nodearraylist1
+                                       assert tatnode3 isa nullable TAt
+                                       var toparnode4 = nodearraylist2
+                                       assert toparnode4 isa nullable TOpar
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tcparnode7 = nodearraylist6
+                                       assert tcparnode7 isa nullable TCpar
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               tatnode3,
+                                               toparnode4,
+                                               listnode6,
+                                               tcparnode7,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction800
+private class ReduceAction406
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tcparnode4 = nodearraylist5
-                                       assert tcparnode4 isa nullable TCpar
-                                       var pannotationsnode5 = nodearraylist6
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
-                                               toparnode2,
-                                               pexprnode3,
-                                               tcparnode4,
-                                               pannotationsnode5
-                                       )
-                                       node_list = pexprnode1
+                                       var pannotationsnode1 = nodearraylist1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction801
+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 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 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(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction802
+private class ReduceAction409
        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
@@ -27821,111 +10754,72 @@ private class ReduceAction802
                                        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
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction803
-       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 nodearraylist1 = p.pop
+                                       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(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction804
+private class ReduceAction410
        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 listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       listnode5 = concat(listnode5, listnode2)
-                                       listnode5 = concat(listnode5, listnode3)
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
+                                       var listnode2 = new Array[Object]
+                                       var pannotationnode1 = nodearraylist1
+                                       if pannotationnode1 != null then
+                                               listnode2.add(pannotationnode1)
                                        end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode5,
-                                               null
-                                       )
-                                       node_list = pexprnode1
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction805
+private class ReduceAction411
        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 listnode2 = nodearraylist1
+                                       var listnode3 = new Array[Object]
+                                       var pannotationnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       listnode4 = concat(listnode4, listnode2)
-                                       if pexprnode3 != null then
-                                               listnode4.add(pexprnode3)
+                                       if pannotationnode1 != null then
+                                               listnode3.add(pannotationnode1)
                                        end
-                                       var pannotationsnode5 = nodearraylist3
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode4,
-                                               pannotationsnode5
-                                       )
-                                       node_list = pexprnode1
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction806
+private class ReduceAction414
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -27934,121 +10828,206 @@ private class ReduceAction806
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       listnode5 = concat(listnode5, listnode2)
-                                       listnode5 = concat(listnode5, listnode3)
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
+                                       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 pannotationsnode6 = nodearraylist4
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode5,
-                                               pannotationsnode6
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction807
+private class ReduceAction416
        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 pexprnode1 = nodearraylist1
-                                       var pexprnode2 = nodearraylist3
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
+                                       var pannotationnode1 = nodearraylist3
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction808
+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 tstartstringnode2 = nodearraylist1
-                                       assert tstartstringnode2 isa nullable TStartString
-                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
-                                               tstartstringnode2
+                                       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 = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction810
+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 tmidstringnode2 = nodearraylist1
-                                       assert tmidstringnode2 isa nullable TMidString
-                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
-                                               tmidstringnode2
+                                       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 = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction811
+private class ReduceAction419
        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 tendstringnode2 = nodearraylist1
-                                       assert tendstringnode2 isa nullable TEndString
-                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
-                                               tendstringnode2
+                                       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 = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction812
+private class ReduceAction420
        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 listnode5 = new Array[Object]
-                                       var tatnode2 = nodearraylist1
-                                       assert tatnode2 isa nullable TAt
-                                       var pannotationnode4 = nodearraylist2
-                                       assert pannotationnode4 isa nullable AAnnotation
-                                       if pannotationnode4 != null then
-                                               listnode5.add(pannotationnode4)
-                                       end
-                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               tatnode2,
-                                               null,
-                                               listnode5,
-                                               null
+                                       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 = pannotationsnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction813
+private class ReduceAction421
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28059,70 +11038,88 @@ private class ReduceAction813
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tatnode2 = nodearraylist1
-                                       assert tatnode2 isa nullable TAt
-                                       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 pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               tatnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6
+                                       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 = pannotationsnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction814
+private class ReduceAction422
        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 pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
+                                       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,
-                                               listnode4,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
                                                null,
                                                null
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction815
+private class ReduceAction423
        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 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationsnode6 = nodearraylist2
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
+                                       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,
-                                               listnode4,
                                                null,
-                                               pannotationsnode6
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction816
+private class ReduceAction424
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28133,28 +11130,33 @@ private class ReduceAction816
                                        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 pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
+                                       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 = pannotationnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction817
+private class ReduceAction425
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28166,645 +11168,615 @@ private class ReduceAction817
                                        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 pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               pannotationsnode7
+                                       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 = pannotationnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction818
+private class ReduceAction426
        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 listnode5 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                       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,
-                                               listnode5,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
+                                               null,
                                                null
                                        )
-                                       node_list = pannotationsnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction819
+private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pannotationnode1 = nodearraylist1
-                                       if pannotationnode1 != null then
-                                               listnode2.add(pannotationnode1)
-                                       end
-                                       node_list = listnode2
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var pexprnode1: nullable ATypeExpr = new ATypeExpr.init_atypeexpr(
+                                               ptypenode2
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction820
+private class ReduceAction433
        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 pannotationnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pannotationnode1 != null then
-                                               listnode3.add(pannotationnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       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 = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction822
+private class ReduceAction434
        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
+                                       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 = pannotationnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction823
+private class ReduceAction435
        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
+                                       var pannotationsnode2 = nodearraylist1
+                                       assert pannotationsnode2 isa nullable AAnnotations
+                                       var pexprnode1: nullable AAtExpr = new AAtExpr.init_aatexpr(
+                                               pannotationsnode2
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction824
+private class ReduceAction436
        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
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction825
+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 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
+                                       var tkwexternnode2 = nodearraylist1
+                                       assert tkwexternnode2 isa nullable TKwextern
+                                       var patidnode1: nullable AKwexternAtid = new AKwexternAtid.init_akwexternatid(
+                                               tkwexternnode2
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction826
+private class ReduceAction438
        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 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 pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode5,
-                                               null,
-                                               null
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var patidnode1: nullable AKwabstractAtid = new AKwabstractAtid.init_akwabstractatid(
+                                               tkwabstractnode2
                                        )
-                                       node_list = pannotationnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction827
+private class ReduceAction439
        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 pannotationnode1 = nodearraylist3
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction828
-       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
+                                       var listnode4 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5
+                                       )
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction829
+private class ReduceAction440
        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 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 toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4
+                                       )
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction830
+private class ReduceAction442
        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 patargnode1 = nodearraylist3
-                                       node_list = patargnode1
+                                       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(
+                                               listnode3
+                                       )
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction831
+private class ReduceAction444
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var patargnode1: nullable ATypeAtArg = new ATypeAtArg.init_atypeatarg(
-                                               ptypenode2
+                                       var listnode2 = new Array[Object]
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode2
                                        )
-                                       node_list = patargnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction832
+private class ReduceAction445
        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 patargnode1: nullable AExprAtArg = new AExprAtArg.init_aexpratarg(
-                                               pexprnode2
+                                       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 tcbranode5 = nodearraylist4
+                                       assert tcbranode5 isa nullable TCbra
+                                       var pexprsnode1: nullable ABraExprs = new ABraExprs.init_abraexprs(
+                                               tobranode2,
+                                               listnode4,
+                                               tcbranode5
                                        )
-                                       node_list = patargnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction834
+private class ReduceAction447
        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 pannotationsnode2 = nodearraylist1
-                                       assert pannotationsnode2 isa nullable AAnnotations
-                                       var patargnode1: nullable AAtAtArg = new AAtAtArg.init_aatatarg(
-                                               pannotationsnode2
-                                       )
-                                       node_list = patargnode1
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist3
+                                       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 ReduceAction835
+private class ReduceAction448
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
-                                       )
-                                       node_list = patidnode1
+                                       var pexprnode1 = nodearraylist3
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction836
+private class ReduceAction449
        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 tidnode2 = nodearraylist2
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
-                                       )
-                                       node_list = patidnode1
+                                       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 ReduceAction837
+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 tidnode2 = nodearraylist3
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
-                                       )
-                                       node_list = patidnode1
+                                       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 ReduceAction839
+private class ReduceAction451
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode2 = nodearraylist1
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
-                                       )
-                                       node_list = patidnode1
+                                       var listnode2 = new Array[Object]
+                                       var tidnode1 = nodearraylist1
+                                       if tidnode1 != null then
+                                               listnode2.add(tidnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction840
+private class ReduceAction452
        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 tkwreadablenode2 = nodearraylist2
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
-                                       )
-                                       node_list = patidnode1
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var tidnode2 = nodearraylist4
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if tidnode2 != null then
+                                               listnode3.add(tidnode2)
+                                       end
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction841
+private class ReduceAction453
        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 listnode3 = new Array[Object]
+                                       var tidnode4 = nodearraylist1
+                                       assert tidnode4 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               null,
+                                               listnode3,
+                                               tidnode4
                                        )
-                                       node_list = patidnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction843
+private class ReduceAction454
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       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 listnode4 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tidnode5 = nodearraylist2
+                                       assert tidnode5 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               null,
+                                               listnode4,
+                                               tidnode5
                                        )
-                                       node_list = patidnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction844
+private class ReduceAction455
        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 = nodearraylist2
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       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 = patidnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction845
+private class ReduceAction456
        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 = nodearraylist3
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       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 = patidnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction847
+private class ReduceAction457
        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 listnode2 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode2,
+                                               tclassidnode3
                                        )
-                                       node_list = patidnode1
+                                       node_list = pqualifiednode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction848
+private class ReduceAction458
        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 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 = patidnode1
+                                       node_list = pqualifiednode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction849
+private class ReduceAction459
        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 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 = patidnode1
+                                       node_list = pqualifiednode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction851
+private class ReduceAction461
        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 toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5
-                                       )
-                                       node_list = pexprsnode1
+                                       var tclassidnode1 = nodearraylist1
+                                       node_list = tclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction852
+private class ReduceAction462
        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 toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4
-                                       )
-                                       node_list = pexprsnode1
+                                       var tclassidnode1 = nodearraylist2
+                                       node_list = tclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction853
+private class ReduceAction463
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode2 = new Array[Object]
-                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode2
-                                       )
-                                       node_list = pexprsnode1
+                                       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 ReduceAction855
+private class ReduceAction465
        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 pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode3
-                                       )
-                                       node_list = pexprsnode1
+                                       var pmethidnode1 = nodearraylist1
+                                       node_list = pmethidnode1
+                                       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 nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pmethidnode1 = nodearraylist2
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction858
+private class ReduceAction467
        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 tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcbranode5 = nodearraylist4
-                                       assert tcbranode5 isa nullable TCbra
-                                       var pexprsnode1: nullable ABraExprs = new ABraExprs.init_abraexprs(
-                                               tobranode2,
-                                               listnode4,
-                                               tcbranode5
-                                       )
-                                       node_list = pexprsnode1
+                                       var pmethidnode1 = nodearraylist3
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction859
+private class ReduceAction469
        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 listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
+                                       var tidnode1 = nodearraylist1
+                                       node_list = tidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction860
+private class ReduceAction470
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28812,110 +11784,78 @@ private class ReduceAction860
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist3
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var tclassidnode1 = nodearraylist1
+                                       node_list = tclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction861
+private class ReduceAction472
        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 pexprnode1 = nodearraylist3
-                                       node_list = pexprnode1
+                                       var tkwendnode1 = nodearraylist1
+                                       node_list = tkwendnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction862
+private class ReduceAction473
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tidnode1 = nodearraylist1
-                                       if tidnode1 != null then
-                                               listnode2.add(tidnode1)
-                                       end
-                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction863
+private class ReduceAction476
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var tidnode2 = nodearraylist5
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if tidnode2 != null then
-                                               listnode3.add(tidnode2)
-                                       end
-                                       node_list = listnode3
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction864
+private class ReduceAction477
        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 tidnode4 = nodearraylist1
-                                       assert tidnode4 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               null,
-                                               listnode3,
-                                               tidnode4
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
                                        )
-                                       node_list = pmodulenamenode1
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction865
+private class ReduceAction480
        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 listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tidnode5 = nodearraylist2
-                                       assert tidnode5 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               null,
-                                               listnode4,
-                                               tidnode5
-                                       )
-                                       node_list = pmodulenamenode1
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction866
+private class ReduceAction482
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28923,47 +11863,23 @@ private class ReduceAction866
                                        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
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction867
+private class ReduceAction483
        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 pdocnode1 = nodearraylist2
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction868
+private class ReduceAction484
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -28971,110 +11887,189 @@ private class ReduceAction868
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode1 = nodearraylist1
-                                       node_list = tidnode1
+                                       var pdocnode1 = nodearraylist3
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction869
+private class ReduceAction486
        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 tclassidnode1 = nodearraylist1
-                                       node_list = tclassidnode1
+                                       var pdocnode1 = nodearraylist4
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction870
+private class ReduceAction488
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist1
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction489
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction872
+private class ReduceAction492
        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 pdocnode1: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
-                                       )
-                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction873
+private class ReduceAction853
        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 listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist4
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
-                                       node_list = pdocnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction875
+private class ReduceAction855
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       node_list = 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(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction876
+private class ReduceAction856
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode1 = nodearraylist1
-                                       node_list = pdocnode1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist2
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist3
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction877
+private class ReduceAction857
        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 tidnode5 = nodearraylist2
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction878
+private class ReduceAction858
        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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist2
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist4
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1223
+private class ReduceAction859
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29082,85 +12077,150 @@ private class ReduceAction1223
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist3
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist2
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1224
+private class ReduceAction860
        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 = 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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist5
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1227
+private class ReduceAction861
        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 tattridnode3 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1228
+private class ReduceAction862
        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 tattridnode3 = nodearraylist3
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1231
+private class ReduceAction863
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29170,57 +12230,71 @@ private class ReduceAction1231
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1232
+private class ReduceAction866
        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 = nodearraylist3
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist4
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist3
                                        assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
-                                               tidnode3,
+                                               tkwinitnode3,
                                                pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1239
+private class ReduceAction867
        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 tkwinitnode3 = nodearraylist2
                                        assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
                                        var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
                                                tkwinitnode3,
@@ -29230,7 +12304,7 @@ private class ReduceAction1239
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1263
+private class ReduceAction891
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29243,7 +12317,7 @@ private class ReduceAction1263
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1264
+private class ReduceAction892
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29253,7 +12327,7 @@ private class ReduceAction1264
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1538
+private class ReduceAction1053
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29268,7 +12342,7 @@ private class ReduceAction1538
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1539
+private class ReduceAction1054
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29287,7 +12361,7 @@ private class ReduceAction1539
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1540
+private class ReduceAction1055
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29302,7 +12376,7 @@ private class ReduceAction1540
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1541
+private class ReduceAction1056
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29321,7 +12395,7 @@ private class ReduceAction1541
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1542
+private class ReduceAction1057
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29336,7 +12410,7 @@ private class ReduceAction1542
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1543
+private class ReduceAction1058
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29355,22 +12429,7 @@ private class ReduceAction1543
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1544
-       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 ReduceAction1545
+private class ReduceAction1060
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29380,31 +12439,16 @@ private class ReduceAction1545
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
+                                       var pformaldefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
+                                       if pformaldefnode2 != null then
+                                               listnode3.add(pformaldefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1546
-       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)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1547
+private class ReduceAction1062
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29414,31 +12458,16 @@ private class ReduceAction1547
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var psuperclassnode2 = nodearraylist2
+                                       var ppropdefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if psuperclassnode2 != null then
-                                               listnode3.add(psuperclassnode2)
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1550
-       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 ReduceAction1551
+private class ReduceAction1064
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29448,16 +12477,16 @@ private class ReduceAction1551
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pformaldefnode2 = nodearraylist2
+                                       var pannotationnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pformaldefnode2 != null then
-                                               listnode3.add(pformaldefnode2)
+                                       if pannotationnode2 != null then
+                                               listnode3.add(pannotationnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1552
+private class ReduceAction1065
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29472,7 +12501,7 @@ private class ReduceAction1552
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1553
+private class ReduceAction1066
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29491,7 +12520,7 @@ private class ReduceAction1553
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1554
+private class ReduceAction1067
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29506,7 +12535,7 @@ private class ReduceAction1554
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1555
+private class ReduceAction1068
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29525,7 +12554,7 @@ private class ReduceAction1555
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1557
+private class ReduceAction1070
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29544,22 +12573,7 @@ private class ReduceAction1557
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1558
-       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 ReduceAction1559
+private class ReduceAction1072
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29578,21 +12592,7 @@ private class ReduceAction1559
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1560
-       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 ReduceAction1561
+private class ReduceAction1078
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29610,45 +12610,7 @@ private class ReduceAction1561
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1563
-       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 pannotationnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if pannotationnode2 != null then
-                                               listnode3.add(pannotationnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1567
-       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 ReduceAction1571
+private class ReduceAction1086
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29667,7 +12629,7 @@ private class ReduceAction1571
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1572
+private class ReduceAction1087
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29682,7 +12644,7 @@ private class ReduceAction1572
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1573
+private class ReduceAction1088
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -29701,37 +12663,3 @@ private class ReduceAction1573
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1574
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var teolnode1 = nodearraylist1
-                                       if teolnode1 != null then
-                                               listnode2.add(teolnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1575
-       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 teolnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if teolnode2 != null then
-                                               listnode3.add(teolnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end