parser: closure syntax use '!' instead of 'with'
[nit.git] / src / parser / parser.nit
index 88d0343..dd8f14b 100644 (file)
@@ -908,7 +908,11 @@ special ParserTable
                        new ReduceAction751,
                        new ReduceAction752,
                        new ReduceAction753,
-                       new ReduceAction754
+                       new ReduceAction754,
+                       new ReduceAction755,
+                       new ReduceAction756,
+                       new ReduceAction757,
+                       new ReduceAction758
                )
        end
 end
@@ -10155,20 +10159,19 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tidnode4 = nodearraylist3
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
                                        assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
+                                       var psignaturenode5 = nodearraylist3
                                        assert psignaturenode5 isa nullable ASignature
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwwithnode2,
                                                null,
+                                               tbangnode3,
                                                tidnode4,
                                                psignaturenode5,
                                                null
@@ -10183,23 +10186,22 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwbreaknode3 = nodearraylist2
-                                       assert tkwbreaknode3 isa nullable TKwbreak
-                                       var tidnode4 = nodearraylist4
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
                                        assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist5
+                                       var psignaturenode5 = nodearraylist4
                                        assert psignaturenode5 isa nullable ASignature
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwwithnode2,
-                                               tkwbreaknode3,
+                                               tkwbreaknode2,
+                                               tbangnode3,
                                                tidnode4,
                                                psignaturenode5,
                                                null
@@ -10214,24 +10216,23 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tidnode4 = nodearraylist3
+                                       var tbangnode3 = nodearraylist1
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist2
                                        assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
+                                       var psignaturenode5 = nodearraylist3
                                        assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwwithnode2,
                                                null,
+                                               tbangnode3,
                                                tidnode4,
                                                psignaturenode5,
                                                pexprnode6
@@ -10246,7 +10247,6 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -10254,19 +10254,19 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwbreaknode3 = nodearraylist2
-                                       assert tkwbreaknode3 isa nullable TKwbreak
-                                       var tidnode4 = nodearraylist4
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var tbangnode3 = nodearraylist2
+                                       assert tbangnode3 isa nullable TBang
+                                       var tidnode4 = nodearraylist3
                                        assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist5
+                                       var psignaturenode5 = nodearraylist4
                                        assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist7
+                                       var pexprnode6 = nodearraylist6
                                        assert pexprnode6 isa nullable AExpr
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwwithnode2,
-                                               tkwbreaknode3,
+                                               tkwbreaknode2,
+                                               tbangnode3,
                                                tidnode4,
                                                psignaturenode5,
                                                pexprnode6
@@ -11239,31 +11239,35 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
                                        end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11276,6 +11280,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -11283,34 +11288,37 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
                                        end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
                                                else
-                                                       listnode8.append(listnode7)
+                                                       listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11323,24 +11331,28 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11353,23 +11365,27 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11382,6 +11398,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -11389,34 +11406,37 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
                                        end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11429,6 +11449,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -11437,43 +11458,46 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode10 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       if pexprnode8 != null then
+                                               listnode10.add(pexprnode8)
                                        end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
+#                                      if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
                                                else
-                                                       listnode9.append(listnode8)
+                                                       listnode10.append(listnode9)
                                                end
 #                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode10
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11486,34 +11510,38 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11526,33 +11554,37 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11565,6 +11597,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -11572,28 +11605,31 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
                                        end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       var plabelnode8 = nodearraylist7
-                                       assert plabelnode8 isa nullable ALabel
+                                       var plabelnode9 = nodearraylist8
+                                       assert plabelnode9 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode8
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode9
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11605,6 +11641,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -11613,37 +11650,40 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
                                        end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
                                                else
-                                                       listnode8.append(listnode7)
+                                                       listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       var plabelnode9 = nodearraylist8
-                                       assert plabelnode9 isa nullable ALabel
+                                       var plabelnode10 = nodearraylist9
+                                       assert plabelnode10 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode9
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode10
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11655,28 +11695,32 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       var plabelnode7 = nodearraylist5
-                                       assert plabelnode7 isa nullable ALabel
+                                       var plabelnode8 = nodearraylist6
+                                       assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11688,27 +11732,31 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       var plabelnode7 = nodearraylist4
-                                       assert plabelnode7 isa nullable ALabel
+                                       var plabelnode8 = nodearraylist5
+                                       assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11720,6 +11768,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -11728,37 +11777,40 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
                                        end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       var plabelnode9 = nodearraylist8
-                                       assert plabelnode9 isa nullable ALabel
+                                       var plabelnode10 = nodearraylist9
+                                       assert plabelnode10 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode9
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode10
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11770,6 +11822,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -11779,46 +11832,49 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode10 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       if pexprnode8 != null then
+                                               listnode10.add(pexprnode8)
                                        end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
+#                                      if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
                                                else
-                                                       listnode9.append(listnode8)
+                                                       listnode10.append(listnode9)
                                                end
 #                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode10
                                        )
-                                       var plabelnode10 = nodearraylist9
-                                       assert plabelnode10 isa nullable ALabel
+                                       var plabelnode11 = nodearraylist10
+                                       assert plabelnode11 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode10
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode11
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11830,38 +11886,42 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       var plabelnode8 = nodearraylist6
-                                       assert plabelnode8 isa nullable ALabel
+                                       var plabelnode9 = nodearraylist7
+                                       assert plabelnode9 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode9
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11873,37 +11933,41 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       var plabelnode8 = nodearraylist5
-                                       assert plabelnode8 isa nullable ALabel
+                                       var plabelnode9 = nodearraylist6
+                                       assert plabelnode9 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode8
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode9
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
@@ -11915,21 +11979,25 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11942,31 +12010,35 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -11979,30 +12051,34 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
                                        end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -12015,40 +12091,44 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
                                        end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
                                                else
-                                                       listnode8.append(listnode7)
+                                                       listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -12061,40 +12141,44 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
                                        end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -12107,6 +12191,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -12114,43 +12199,46 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode9 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       if pexprnode7 != null then
-                                               listnode9.add(pexprnode7)
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode10 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       if pexprnode8 != null then
+                                               listnode10.add(pexprnode8)
                                        end
-#                                      if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
+#                                      if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
                                                else
-                                                       listnode9.append(listnode8)
+                                                       listnode10.append(listnode9)
                                                end
 #                                      end
-                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode9
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode10
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -12163,18 +12251,22 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode4,
+                                               tkwdonode5,
                                                null,
                                                null
                                        )
@@ -12188,28 +12280,32 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
                                                null,
                                                null
                                        )
@@ -12223,6 +12319,38 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pclosureidnode1: nullable ASimpleClosureId = new ASimpleClosureId.init_asimpleclosureid(
+                                               tidnode2
+                                       )
+                                       node_list = pclosureidnode1
+                                       p.push(p.go_to(33), node_list)
+       end
+init do end
+end
+private class ReduceAction296
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
+                                               tkwbreaknode2
+                                       )
+                                       node_list = pclosureidnode1
+                                       p.push(p.go_to(33), node_list)
+       end
+init do end
+end
+private class ReduceAction297
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tkwvarnode2 = nodearraylist1
@@ -12237,11 +12365,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction296
+private class ReduceAction298
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12263,11 +12391,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction297
+private class ReduceAction299
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12293,11 +12421,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction298
+private class ReduceAction300
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12326,11 +12454,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction299
+private class ReduceAction301
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12356,11 +12484,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction300
+private class ReduceAction302
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12383,11 +12511,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction301
+private class ReduceAction303
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12425,11 +12553,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction302
+private class ReduceAction304
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12464,11 +12592,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction303
+private class ReduceAction305
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12500,11 +12628,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction304
+private class ReduceAction306
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12530,11 +12658,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction305
+private class ReduceAction307
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12557,11 +12685,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction306
+private class ReduceAction308
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12599,11 +12727,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction307
+private class ReduceAction309
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12638,11 +12766,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction308
+private class ReduceAction310
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12674,11 +12802,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction309
+private class ReduceAction311
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12690,11 +12818,11 @@ special ReduceAction
                                                tpluseqnode2
                                        )
                                        node_list = passignopnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction310
+private class ReduceAction312
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12706,11 +12834,11 @@ special ReduceAction
                                                tminuseqnode2
                                        )
                                        node_list = passignopnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction311
+private class ReduceAction313
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12737,11 +12865,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction312
+private class ReduceAction314
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12778,11 +12906,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction313
+private class ReduceAction315
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12802,11 +12930,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction314
+private class ReduceAction316
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12825,11 +12953,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction315
+private class ReduceAction317
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12859,11 +12987,11 @@ special ReduceAction
                                                plabelnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction316
+private class ReduceAction318
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12903,11 +13031,11 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction317
+private class ReduceAction319
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12930,11 +13058,11 @@ special ReduceAction
                                                plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction318
+private class ReduceAction320
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12956,11 +13084,11 @@ special ReduceAction
                                                plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction319
+private class ReduceAction321
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -12977,11 +13105,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction320
+private class ReduceAction322
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13009,11 +13137,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction321
+private class ReduceAction323
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13037,11 +13165,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction322
+private class ReduceAction324
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13077,11 +13205,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction323
+private class ReduceAction325
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13127,11 +13255,11 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction324
+private class ReduceAction326
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13155,11 +13283,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction325
+private class ReduceAction327
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13184,11 +13312,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction326
+private class ReduceAction328
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13198,22 +13326,22 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
-private class ReduceAction327
+private class ReduceAction329
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        node_list = null
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
-private class ReduceAction328
+private class ReduceAction330
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13250,11 +13378,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction329
+private class ReduceAction331
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13301,11 +13429,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction330
+private class ReduceAction332
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13335,11 +13463,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction331
+private class ReduceAction333
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13368,11 +13496,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction332
+private class ReduceAction334
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13412,11 +13540,11 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction333
+private class ReduceAction335
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13466,11 +13594,11 @@ special ReduceAction
                                                plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction334
+private class ReduceAction336
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13503,11 +13631,11 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction335
+private class ReduceAction337
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13539,11 +13667,11 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction336
+private class ReduceAction338
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13570,11 +13698,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction337
+private class ReduceAction339
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13618,11 +13746,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction338
+private class ReduceAction340
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13676,11 +13804,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction339
+private class ReduceAction341
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13717,11 +13845,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction340
+private class ReduceAction342
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13757,11 +13885,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction341
+private class ReduceAction343
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13808,11 +13936,11 @@ special ReduceAction
                                                plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction342
+private class ReduceAction344
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13869,11 +13997,11 @@ special ReduceAction
                                                plabelnode10
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction343
+private class ReduceAction345
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13913,11 +14041,11 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction344
+private class ReduceAction346
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13956,11 +14084,11 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction345
+private class ReduceAction347
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -13994,11 +14122,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction346
+private class ReduceAction348
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14015,11 +14143,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction347
+private class ReduceAction349
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14039,11 +14167,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction348
+private class ReduceAction350
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14053,11 +14181,11 @@ special ReduceAction
                                        var tidnode1 = nodearraylist1
                                        assert tidnode1 isa nullable TId
                                        node_list = tidnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction349
+private class ReduceAction351
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14066,11 +14194,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction350
+private class ReduceAction352
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14112,11 +14240,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction351
+private class ReduceAction353
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14155,11 +14283,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction352
+private class ReduceAction354
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14195,11 +14323,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction353
+private class ReduceAction355
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14208,11 +14336,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction354
+private class ReduceAction356
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14249,11 +14377,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction355
+private class ReduceAction357
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14262,11 +14390,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction356
+private class ReduceAction358
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14284,11 +14412,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction357
+private class ReduceAction359
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14306,11 +14434,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction358
+private class ReduceAction360
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14319,11 +14447,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction359
+private class ReduceAction361
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14340,11 +14468,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction360
+private class ReduceAction362
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14353,11 +14481,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction361
+private class ReduceAction363
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14375,11 +14503,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction362
+private class ReduceAction364
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14397,11 +14525,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction363
+private class ReduceAction365
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14419,11 +14547,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction364
+private class ReduceAction366
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14441,11 +14569,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction365
+private class ReduceAction367
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14463,11 +14591,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction366
+private class ReduceAction368
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14485,11 +14613,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction367
+private class ReduceAction369
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14507,11 +14635,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction368
+private class ReduceAction370
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14529,11 +14657,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction369
+private class ReduceAction371
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14551,11 +14679,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction370
+private class ReduceAction372
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14564,11 +14692,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction371
+private class ReduceAction373
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14586,11 +14714,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction372
+private class ReduceAction374
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14608,11 +14736,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction373
+private class ReduceAction375
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14621,11 +14749,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction374
+private class ReduceAction376
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14643,11 +14771,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction375
+private class ReduceAction377
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14665,11 +14793,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction376
+private class ReduceAction378
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14687,11 +14815,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction377
+private class ReduceAction379
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14700,11 +14828,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction378
+private class ReduceAction380
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14721,11 +14849,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction379
+private class ReduceAction381
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14742,11 +14870,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction380
+private class ReduceAction382
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14755,11 +14883,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction381
+private class ReduceAction383
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14789,11 +14917,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction382
+private class ReduceAction384
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14815,11 +14943,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction383
+private class ReduceAction385
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14838,11 +14966,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction384
+private class ReduceAction386
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14860,11 +14988,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction385
+private class ReduceAction387
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14879,11 +15007,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction386
+private class ReduceAction388
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14915,11 +15043,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction387
+private class ReduceAction389
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14948,11 +15076,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction388
+private class ReduceAction390
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14977,11 +15105,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction389
+private class ReduceAction391
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15009,11 +15137,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction390
+private class ReduceAction392
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15043,11 +15171,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction391
+private class ReduceAction393
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15074,11 +15202,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction392
+private class ReduceAction394
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15104,11 +15232,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction393
+private class ReduceAction395
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15143,11 +15271,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction394
+private class ReduceAction396
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15170,11 +15298,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction395
+private class ReduceAction397
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15197,11 +15325,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction396
+private class ReduceAction398
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15221,11 +15349,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction397
+private class ReduceAction399
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15237,11 +15365,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction398
+private class ReduceAction400
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15253,11 +15381,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction399
+private class ReduceAction401
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15269,11 +15397,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction400
+private class ReduceAction402
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15285,11 +15413,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction401
+private class ReduceAction403
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15301,11 +15429,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction402
+private class ReduceAction404
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15317,11 +15445,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction403
+private class ReduceAction405
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15333,11 +15461,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction404
+private class ReduceAction406
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15349,11 +15477,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction405
+private class ReduceAction407
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15362,11 +15490,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction406
+private class ReduceAction408
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15377,11 +15505,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction407
+private class ReduceAction409
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15408,11 +15536,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction408
+private class ReduceAction410
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15444,11 +15572,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction409
+private class ReduceAction411
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15474,11 +15602,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(54), node_list)
        end
 init do end
 end
-private class ReduceAction410
+private class ReduceAction412
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15514,11 +15642,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(54), node_list)
        end
 init do end
 end
-private class ReduceAction411
+private class ReduceAction413
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15539,11 +15667,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction412
+private class ReduceAction414
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15555,11 +15683,11 @@ special ReduceAction
                                                tstartstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction413
+private class ReduceAction415
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15580,11 +15708,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(56), node_list)
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction414
+private class ReduceAction416
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15596,11 +15724,11 @@ special ReduceAction
                                                tmidstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction415
+private class ReduceAction417
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15612,11 +15740,11 @@ special ReduceAction
                                                tendstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(58), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction416
+private class ReduceAction418
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15633,11 +15761,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction417
+private class ReduceAction419
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15664,11 +15792,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode3
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction418
+private class ReduceAction420
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15678,22 +15806,22 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction419
+private class ReduceAction421
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction420
+private class ReduceAction422
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15710,11 +15838,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction421
+private class ReduceAction423
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15741,11 +15869,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode3
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction422
+private class ReduceAction424
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15758,11 +15886,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction423
+private class ReduceAction425
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15772,22 +15900,22 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction424
+private class ReduceAction426
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction425
+private class ReduceAction427
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15804,11 +15932,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction426
+private class ReduceAction428
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15835,11 +15963,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode3
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction427
+private class ReduceAction429
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15851,11 +15979,55 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist3
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction428
+private class ReduceAction430
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist2
+                                       assert listnode1 isa Array[Object]
+#                                      if listnode1 != null then
+                                               if listnode2.is_empty then
+                                                       listnode2 = listnode1
+                                               else
+                                                       listnode2.append(listnode1)
+                                               end
+#                                      end
+                                       node_list = listnode2
+                                       p.push(p.go_to(64), node_list)
+       end
+init do end
+end
+private class ReduceAction431
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+#                                      if listnode1 != null then
+                                               if listnode2.is_empty then
+                                                       listnode2 = listnode1
+                                               else
+                                                       listnode2.append(listnode1)
+                                               end
+#                                      end
+                                       node_list = listnode2
+                                       p.push(p.go_to(64), node_list)
+       end
+init do end
+end
+private class ReduceAction432
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15868,11 +16040,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(63), node_list)
+                                       p.push(p.go_to(65), node_list)
        end
 init do end
 end
-private class ReduceAction429
+private class ReduceAction433
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15898,11 +16070,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(63), node_list)
+                                       p.push(p.go_to(65), node_list)
        end
 init do end
 end
-private class ReduceAction430
+private class ReduceAction434
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15916,11 +16088,11 @@ special ReduceAction
                                                tclassidnode3
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction431
+private class ReduceAction435
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15944,11 +16116,11 @@ special ReduceAction
                                                tclassidnode4
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction432
+private class ReduceAction436
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15969,11 +16141,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction433
+private class ReduceAction437
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15984,11 +16156,11 @@ special ReduceAction
                                        var tidnode1 = nodearraylist1
                                        assert tidnode1 isa nullable TId
                                        node_list = tidnode1
-                                       p.push(p.go_to(65), node_list)
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction434
+private class ReduceAction438
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15999,31 +16171,31 @@ special ReduceAction
                                        var tclassidnode1 = nodearraylist1
                                        assert tclassidnode1 isa nullable TClassid
                                        node_list = tclassidnode1
-                                       p.push(p.go_to(66), node_list)
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction435
+private class ReduceAction439
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(67), node_list)
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction436
+private class ReduceAction440
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(67), node_list)
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction437
+private class ReduceAction441
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16043,11 +16215,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pdocnode1
-                                       p.push(p.go_to(68), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction438
+private class ReduceAction442
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16068,32 +16240,32 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pdocnode1
-                                       p.push(p.go_to(68), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction439
+private class ReduceAction443
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        node_list = null
-                                       p.push(p.go_to(68), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction440
+private class ReduceAction444
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        node_list = null
-                                       p.push(p.go_to(69), node_list)
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction441
+private class ReduceAction445
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16102,22 +16274,22 @@ special ReduceAction
                                        var pdocnode1 = nodearraylist1
                                        assert pdocnode1 isa nullable ADoc
                                        node_list = pdocnode1
-                                       p.push(p.go_to(69), node_list)
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction442
+private class ReduceAction446
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(70), node_list)
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction443
+private class ReduceAction447
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16125,21 +16297,21 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(70), node_list)
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction444
+private class ReduceAction448
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(70), node_list)
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction445
+private class ReduceAction449
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16149,11 +16321,11 @@ special ReduceAction
                                        var ppropdefnode1 = nodearraylist1
                                        assert ppropdefnode1 isa nullable APropdef
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction446
+private class ReduceAction450
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16187,11 +16359,11 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction447
+private class ReduceAction451
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16228,11 +16400,11 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction448
+private class ReduceAction452
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16267,11 +16439,11 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction449
+private class ReduceAction453
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16309,11 +16481,11 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction450
+private class ReduceAction454
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16345,11 +16517,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction451
+private class ReduceAction455
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16384,11 +16556,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction452
+private class ReduceAction456
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16423,11 +16595,11 @@ special ReduceAction
                                                tstringnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction453
+private class ReduceAction457
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16465,11 +16637,11 @@ special ReduceAction
                                                tstringnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction454
+private class ReduceAction458
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16484,11 +16656,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction455
+private class ReduceAction459
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16506,11 +16678,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction456
+private class ReduceAction460
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16519,11 +16691,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction457
+private class ReduceAction461
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16565,11 +16737,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction458
+private class ReduceAction462
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16608,11 +16780,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction459
+private class ReduceAction463
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16621,11 +16793,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction460
+private class ReduceAction464
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16662,11 +16834,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction461
+private class ReduceAction465
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16675,11 +16847,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction462
+private class ReduceAction466
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16697,11 +16869,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction463
+private class ReduceAction467
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16719,11 +16891,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction464
+private class ReduceAction468
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16732,11 +16904,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction465
+private class ReduceAction469
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16753,11 +16925,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction466
+private class ReduceAction470
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16766,11 +16938,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction467
+private class ReduceAction471
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16788,11 +16960,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction468
+private class ReduceAction472
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16810,11 +16982,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction469
+private class ReduceAction473
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16832,11 +17004,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction470
+private class ReduceAction474
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16854,11 +17026,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction471
+private class ReduceAction475
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16876,11 +17048,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction472
+private class ReduceAction476
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16898,11 +17070,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction473
+private class ReduceAction477
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16920,11 +17092,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction474
+private class ReduceAction478
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16942,11 +17114,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction475
+private class ReduceAction479
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16964,11 +17136,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction476
+private class ReduceAction480
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16977,11 +17149,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
-private class ReduceAction477
+private class ReduceAction481
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -16999,11 +17171,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
-private class ReduceAction478
+private class ReduceAction482
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17021,11 +17193,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
-private class ReduceAction479
+private class ReduceAction483
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17034,11 +17206,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction480
+private class ReduceAction484
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17056,11 +17228,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction481
+private class ReduceAction485
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17078,11 +17250,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction482
+private class ReduceAction486
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17100,11 +17272,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction483
+private class ReduceAction487
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17113,11 +17285,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction484
+private class ReduceAction488
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17134,11 +17306,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction485
+private class ReduceAction489
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17155,11 +17327,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction486
+private class ReduceAction490
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17168,11 +17340,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction487
+private class ReduceAction491
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17202,11 +17374,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction488
+private class ReduceAction492
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17228,11 +17400,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction489
+private class ReduceAction493
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17251,11 +17423,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction490
+private class ReduceAction494
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17273,11 +17445,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction491
+private class ReduceAction495
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17292,11 +17464,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction492
+private class ReduceAction496
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17328,11 +17500,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction493
+private class ReduceAction497
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17361,11 +17533,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction494
+private class ReduceAction498
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17390,11 +17562,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction495
+private class ReduceAction499
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17422,11 +17594,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction496
+private class ReduceAction500
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17456,11 +17628,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction497
+private class ReduceAction501
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17487,11 +17659,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction498
+private class ReduceAction502
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17526,11 +17698,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction499
+private class ReduceAction503
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17542,11 +17714,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction500
+private class ReduceAction504
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17558,11 +17730,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction501
+private class ReduceAction505
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17574,11 +17746,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction502
+private class ReduceAction506
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17590,11 +17762,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction503
+private class ReduceAction507
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17606,11 +17778,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction504
+private class ReduceAction508
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17622,11 +17794,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction505
+private class ReduceAction509
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17638,11 +17810,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction506
+private class ReduceAction510
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17654,11 +17826,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction507
+private class ReduceAction511
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17667,11 +17839,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction508
+private class ReduceAction512
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17682,11 +17854,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction509
+private class ReduceAction513
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17713,11 +17885,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction510
+private class ReduceAction514
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17749,11 +17921,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction511
+private class ReduceAction515
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17772,11 +17944,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction512
+private class ReduceAction516
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17805,11 +17977,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction513
+private class ReduceAction517
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17821,11 +17993,11 @@ special ReduceAction
                                                listnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction514
+private class ReduceAction518
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17836,11 +18008,11 @@ special ReduceAction
                                                listnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction515
+private class ReduceAction519
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17849,11 +18021,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction516
+private class ReduceAction520
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17862,11 +18034,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction517
+private class ReduceAction521
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17875,11 +18047,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction518
+private class ReduceAction522
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17892,11 +18064,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction519
+private class ReduceAction523
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17912,11 +18084,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction520
+private class ReduceAction524
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17930,11 +18102,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction521
+private class ReduceAction525
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17951,11 +18123,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction522
+private class ReduceAction526
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17972,11 +18144,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction523
+private class ReduceAction527
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17996,11 +18168,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction524
+private class ReduceAction528
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18012,11 +18184,11 @@ special ReduceAction
                                                tkwabortnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction525
+private class ReduceAction529
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18030,11 +18202,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction526
+private class ReduceAction530
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18051,11 +18223,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction527
+private class ReduceAction531
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18072,11 +18244,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction528
+private class ReduceAction532
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18096,11 +18268,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction529
+private class ReduceAction533
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18109,11 +18281,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction530
+private class ReduceAction534
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18122,11 +18294,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction531
+private class ReduceAction535
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18135,11 +18307,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction532
+private class ReduceAction536
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18148,11 +18320,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction533
+private class ReduceAction537
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18161,11 +18333,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction534
+private class ReduceAction538
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18197,11 +18369,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction535
+private class ReduceAction539
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18230,11 +18402,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction536
+private class ReduceAction540
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18276,11 +18448,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction537
+private class ReduceAction541
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18319,11 +18491,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction538
+private class ReduceAction542
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18348,11 +18520,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction539
+private class ReduceAction543
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18380,11 +18552,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction540
+private class ReduceAction544
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18405,234 +18577,91 @@ special ReduceAction
                                                if listnode5.is_empty then
                                                        listnode5 = listnode4
                                                else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
-       end
-init do end
-end
-private class ReduceAction541
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
-       end
-init do end
-end
-private class ReduceAction542
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable AClosureDef
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(86), node_list)
-       end
-init do end
-end
-private class ReduceAction543
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable AClosureDef
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(86), node_list)
-       end
-init do end
-end
-private class ReduceAction544
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var 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 tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
-                                       end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
-       end
-init do end
-end
-private class ReduceAction545
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist7 = p.pop
-                                       var 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 tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
-                                       end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
-                                               else
-                                                       listnode8.append(listnode7)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction546
+private class ReduceAction545
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(87), node_list)
        end
 init do end
 end
+private class ReduceAction546
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       if pclosuredefnode1 != null then
+                                               listnode2.add(pclosuredefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(88), node_list)
+       end
+init do end
+end
 private class ReduceAction547
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pclosuredefnode1 != null then
+                                               listnode3.add(pclosuredefnode1)
+                                       end
+#                                      if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+#                                      end
+                                       node_list = listnode3
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
@@ -18649,17 +18678,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode8 = new Array[Object]
@@ -18672,14 +18694,15 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18697,17 +18720,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode9 = new Array[Object]
@@ -18729,14 +18745,15 @@ special ReduceAction
                                                listnode9
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18751,17 +18768,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode7 = new Array[Object]
@@ -18769,14 +18779,15 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18790,17 +18801,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode7 = new Array[Object]
@@ -18808,14 +18812,15 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18824,6 +18829,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -18831,31 +18837,41 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       if pexprnode6 != null then
-                                               listnode7.add(pexprnode6)
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
                                        end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       var plabelnode8 = nodearraylist7
-                                       assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode8
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18864,6 +18880,7 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -18872,40 +18889,50 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var listnode7 = nodearraylist5
-                                       assert listnode7 isa Array[Object]
-                                       if pexprnode6 != null then
-                                               listnode8.add(pexprnode6)
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode10 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       if pexprnode8 != null then
+                                               listnode10.add(pexprnode8)
                                        end
-#                                      if listnode7 != null then
-                                               if listnode8.is_empty then
-                                                       listnode8 = listnode7
+#                                      if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
                                                else
-                                                       listnode8.append(listnode7)
+                                                       listnode10.append(listnode9)
                                                end
 #                                      end
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode8
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode10
                                        )
-                                       var plabelnode9 = nodearraylist8
-                                       assert plabelnode9 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode9
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18914,31 +18941,42 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       var plabelnode7 = nodearraylist5
-                                       assert plabelnode7 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18947,30 +18985,41 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       var plabelnode7 = nodearraylist4
-                                       assert plabelnode7 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode7
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -18988,17 +19037,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode8 = new Array[Object]
@@ -19013,14 +19055,15 @@ special ReduceAction
                                        var plabelnode9 = nodearraylist8
                                        assert plabelnode9 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                plabelnode9
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19039,17 +19082,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode9 = new Array[Object]
@@ -19073,14 +19109,15 @@ special ReduceAction
                                        var plabelnode10 = nodearraylist9
                                        assert plabelnode10 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                plabelnode10
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19096,17 +19133,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode7 = new Array[Object]
@@ -19116,14 +19146,15 @@ special ReduceAction
                                        var plabelnode8 = nodearraylist6
                                        assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                plabelnode8
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19138,17 +19169,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode7 = new Array[Object]
@@ -19158,14 +19182,15 @@ special ReduceAction
                                        var plabelnode8 = nodearraylist5
                                        assert plabelnode8 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                plabelnode8
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19174,25 +19199,52 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
+                                       )
+                                       var plabelnode10 = nodearraylist9
+                                       assert plabelnode10 isa nullable ALabel
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode10
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
@@ -19201,39 +19253,231 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode10 = new Array[Object]
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa nullable AExpr
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       if pexprnode8 != null then
+                                               listnode10.add(pexprnode8)
+                                       end
+#                                      if listnode9 != null then
+                                               if listnode10.is_empty then
+                                                       listnode10 = listnode9
+                                               else
+                                                       listnode10.append(listnode9)
+                                               end
+#                                      end
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode10
+                                       )
+                                       var plabelnode11 = nodearraylist10
+                                       assert plabelnode11 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode11
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction562
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist7
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode9
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction563
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist6
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode9
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction564
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var pexprnode6 = nodearraylist4
                                        assert pexprnode6 isa nullable AExpr
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
+                                               tbangnode2,
+                                               pclosureidnode3,
                                                listnode4,
                                                tkwdonode5,
                                                pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction565
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tbangnode2 = nodearraylist1
+                                       assert tbangnode2 isa nullable TBang
+                                       var pclosureidnode3 = nodearraylist2
+                                       assert pclosureidnode3 isa nullable AClosureId
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tkwdonode6 = nodearraylist4
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tbangnode2,
+                                               pclosureidnode3,
+                                               listnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction562
+private class ReduceAction566
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19252,11 +19496,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction563
+private class ReduceAction567
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19278,11 +19522,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction564
+private class ReduceAction568
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19308,11 +19552,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction565
+private class ReduceAction569
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19341,11 +19585,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction566
+private class ReduceAction570
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19371,11 +19615,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction567
+private class ReduceAction571
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19398,11 +19642,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction568
+private class ReduceAction572
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19440,11 +19684,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction569
+private class ReduceAction573
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19479,11 +19723,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction570
+private class ReduceAction574
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19515,11 +19759,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction571
+private class ReduceAction575
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19545,11 +19789,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction572
+private class ReduceAction576
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19572,11 +19816,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction573
+private class ReduceAction577
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19614,11 +19858,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction574
+private class ReduceAction578
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19653,11 +19897,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction575
+private class ReduceAction579
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19689,11 +19933,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction576
+private class ReduceAction580
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19720,11 +19964,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction577
+private class ReduceAction581
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19761,11 +20005,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction578
+private class ReduceAction582
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19785,11 +20029,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction579
+private class ReduceAction583
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19808,11 +20052,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction580
+private class ReduceAction584
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19842,11 +20086,11 @@ special ReduceAction
                                                plabelnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction581
+private class ReduceAction585
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19886,11 +20130,11 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction582
+private class ReduceAction586
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19913,11 +20157,11 @@ special ReduceAction
                                                plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction583
+private class ReduceAction587
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19939,11 +20183,11 @@ special ReduceAction
                                                plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction584
+private class ReduceAction588
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19960,11 +20204,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction585
+private class ReduceAction589
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19992,11 +20236,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(91), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction586
+private class ReduceAction590
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20033,11 +20277,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction587
+private class ReduceAction591
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20084,11 +20328,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction588
+private class ReduceAction592
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20118,11 +20362,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction589
+private class ReduceAction593
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20151,11 +20395,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction590
+private class ReduceAction594
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20195,11 +20439,11 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction591
+private class ReduceAction595
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20249,11 +20493,11 @@ special ReduceAction
                                                plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction592
+private class ReduceAction596
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20286,11 +20530,11 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction593
+private class ReduceAction597
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20322,11 +20566,11 @@ special ReduceAction
                                                plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction594
+private class ReduceAction598
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20353,11 +20597,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction595
+private class ReduceAction599
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20401,11 +20645,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction596
+private class ReduceAction600
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20459,11 +20703,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction597
+private class ReduceAction601
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20500,11 +20744,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction598
+private class ReduceAction602
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20540,11 +20784,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction599
+private class ReduceAction603
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20591,11 +20835,11 @@ special ReduceAction
                                                plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction600
+private class ReduceAction604
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20652,11 +20896,11 @@ special ReduceAction
                                                plabelnode10
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction601
+private class ReduceAction605
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20696,11 +20940,11 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction602
+private class ReduceAction606
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20739,11 +20983,11 @@ special ReduceAction
                                                plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction603
+private class ReduceAction607
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20777,11 +21021,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction604
+private class ReduceAction608
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20798,11 +21042,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction605
+private class ReduceAction609
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20822,11 +21066,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction606
+private class ReduceAction610
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20835,11 +21079,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction607
+private class ReduceAction611
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20881,11 +21125,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction608
+private class ReduceAction612
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20924,11 +21168,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction609
+private class ReduceAction613
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20964,11 +21208,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction610
+private class ReduceAction614
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20977,11 +21221,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction611
+private class ReduceAction615
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21023,11 +21267,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction612
+private class ReduceAction616
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21066,11 +21310,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction613
+private class ReduceAction617
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21079,11 +21323,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(97), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction614
+private class ReduceAction618
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21125,11 +21369,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(97), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction615
+private class ReduceAction619
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21168,11 +21412,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(97), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction616
+private class ReduceAction620
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21181,11 +21425,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction617
+private class ReduceAction621
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21222,11 +21466,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction618
+private class ReduceAction622
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21235,11 +21479,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction619
+private class ReduceAction623
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21257,11 +21501,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction620
+private class ReduceAction624
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21279,11 +21523,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction621
+private class ReduceAction625
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21292,11 +21536,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction622
+private class ReduceAction626
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21313,11 +21557,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction623
+private class ReduceAction627
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21326,11 +21570,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction624
+private class ReduceAction628
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21348,11 +21592,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction625
+private class ReduceAction629
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21370,11 +21614,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction626
+private class ReduceAction630
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21392,11 +21636,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction627
+private class ReduceAction631
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21414,11 +21658,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction628
+private class ReduceAction632
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21436,11 +21680,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction629
+private class ReduceAction633
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21458,11 +21702,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction630
+private class ReduceAction634
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21480,11 +21724,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction631
+private class ReduceAction635
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21502,11 +21746,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction632
+private class ReduceAction636
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21524,11 +21768,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction633
+private class ReduceAction637
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21537,11 +21781,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction634
+private class ReduceAction638
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21559,11 +21803,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction635
+private class ReduceAction639
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21581,11 +21825,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction636
+private class ReduceAction640
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21594,11 +21838,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction637
+private class ReduceAction641
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21616,11 +21860,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction638
+private class ReduceAction642
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21638,11 +21882,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction639
+private class ReduceAction643
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21660,11 +21904,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction640
+private class ReduceAction644
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21673,11 +21917,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction641
+private class ReduceAction645
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21694,11 +21938,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction642
+private class ReduceAction646
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21715,11 +21959,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction643
+private class ReduceAction647
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21728,11 +21972,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction644
+private class ReduceAction648
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21762,11 +22006,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction645
+private class ReduceAction649
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21788,11 +22032,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction646
+private class ReduceAction650
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21811,11 +22055,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction647
+private class ReduceAction651
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21833,11 +22077,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction648
+private class ReduceAction652
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21852,11 +22096,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction649
+private class ReduceAction653
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21888,11 +22132,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction650
+private class ReduceAction654
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21921,11 +22165,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction651
+private class ReduceAction655
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21950,11 +22194,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction652
+private class ReduceAction656
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21982,11 +22226,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction653
+private class ReduceAction657
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22016,11 +22260,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction654
+private class ReduceAction658
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22047,11 +22291,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction655
+private class ReduceAction659
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22086,11 +22330,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction656
+private class ReduceAction660
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22102,11 +22346,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction657
+private class ReduceAction661
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22118,11 +22362,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction658
+private class ReduceAction662
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22134,11 +22378,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction659
+private class ReduceAction663
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22150,11 +22394,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction660
+private class ReduceAction664
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22166,11 +22410,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction661
+private class ReduceAction665
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22182,11 +22426,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction662
+private class ReduceAction666
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22198,11 +22442,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction663
+private class ReduceAction667
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22214,11 +22458,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction664
+private class ReduceAction668
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22227,11 +22471,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction665
+private class ReduceAction669
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22258,11 +22502,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction666
+private class ReduceAction670
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22294,11 +22538,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction667
+private class ReduceAction671
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22307,11 +22551,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction668
+private class ReduceAction672
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22353,11 +22597,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction669
+private class ReduceAction673
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22396,11 +22640,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction670
+private class ReduceAction674
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22409,11 +22653,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction671
+private class ReduceAction675
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22450,11 +22694,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction672
+private class ReduceAction676
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22463,11 +22707,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction673
+private class ReduceAction677
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22485,11 +22729,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction674
+private class ReduceAction678
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22507,11 +22751,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction675
+private class ReduceAction679
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22520,11 +22764,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction676
+private class ReduceAction680
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22541,11 +22785,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction677
+private class ReduceAction681
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22554,11 +22798,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction678
+private class ReduceAction682
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22576,11 +22820,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction679
+private class ReduceAction683
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22598,11 +22842,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction680
+private class ReduceAction684
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22620,11 +22864,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction681
+private class ReduceAction685
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22642,11 +22886,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction682
+private class ReduceAction686
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22664,11 +22908,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction683
+private class ReduceAction687
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22686,11 +22930,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction684
+private class ReduceAction688
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22708,11 +22952,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction685
+private class ReduceAction689
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22730,11 +22974,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction686
+private class ReduceAction690
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22752,11 +22996,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction687
+private class ReduceAction691
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22765,11 +23009,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction688
+private class ReduceAction692
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22787,11 +23031,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction689
+private class ReduceAction693
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22809,11 +23053,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction690
+private class ReduceAction694
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22822,11 +23066,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction691
+private class ReduceAction695
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22844,11 +23088,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction692
+private class ReduceAction696
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22866,11 +23110,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction693
+private class ReduceAction697
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22888,11 +23132,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction694
+private class ReduceAction698
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22901,11 +23145,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction695
+private class ReduceAction699
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22922,11 +23166,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction696
+private class ReduceAction700
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22943,11 +23187,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction697
+private class ReduceAction701
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22956,11 +23200,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction698
+private class ReduceAction702
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22990,11 +23234,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction699
+private class ReduceAction703
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23014,11 +23258,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction700
+private class ReduceAction704
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23034,11 +23278,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction701
+private class ReduceAction705
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23068,11 +23312,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction702
+private class ReduceAction706
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23097,11 +23341,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction703
+private class ReduceAction707
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23129,11 +23373,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction704
+private class ReduceAction708
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23161,11 +23405,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction705
+private class ReduceAction709
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23200,11 +23444,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction706
+private class ReduceAction710
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23216,11 +23460,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction707
+private class ReduceAction711
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23232,11 +23476,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction708
+private class ReduceAction712
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23248,11 +23492,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction709
+private class ReduceAction713
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23264,11 +23508,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction710
+private class ReduceAction714
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23280,11 +23524,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction711
+private class ReduceAction715
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23296,11 +23540,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction712
+private class ReduceAction716
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23312,11 +23556,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction713
+private class ReduceAction717
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23328,11 +23572,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction714
+private class ReduceAction718
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23341,11 +23585,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction715
+private class ReduceAction719
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23372,11 +23616,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction716
+private class ReduceAction720
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23408,11 +23652,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction717
+private class ReduceAction721
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23423,11 +23667,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction718
+private class ReduceAction722
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23435,11 +23679,11 @@ special ReduceAction
                                        var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction719
+private class ReduceAction723
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23448,11 +23692,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction720
+private class ReduceAction724
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23494,11 +23738,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction721
+private class ReduceAction725
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23537,11 +23781,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction722
+private class ReduceAction726
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23550,11 +23794,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction723
+private class ReduceAction727
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23596,11 +23840,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction724
+private class ReduceAction728
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23639,11 +23883,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction725
+private class ReduceAction729
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23656,11 +23900,11 @@ special ReduceAction
                                                listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction726
+private class ReduceAction730
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23683,11 +23927,11 @@ special ReduceAction
                                                listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction727
+private class ReduceAction731
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23700,11 +23944,11 @@ special ReduceAction
                                                listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction728
+private class ReduceAction732
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23727,11 +23971,11 @@ special ReduceAction
                                                listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction729
+private class ReduceAction733
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23744,11 +23988,11 @@ special ReduceAction
                                                listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction730
+private class ReduceAction734
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23771,11 +24015,11 @@ special ReduceAction
                                                listnode3.add(psuperclassnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction731
+private class ReduceAction735
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23788,11 +24032,11 @@ special ReduceAction
                                                listnode2.add(pformaldefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction732
+private class ReduceAction736
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23815,11 +24059,11 @@ special ReduceAction
                                                listnode3.add(pformaldefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction733
+private class ReduceAction737
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23832,11 +24076,11 @@ special ReduceAction
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction734
+private class ReduceAction738
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23859,11 +24103,11 @@ special ReduceAction
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction735
+private class ReduceAction739
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23876,11 +24120,11 @@ special ReduceAction
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction736
+private class ReduceAction740
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23903,11 +24147,11 @@ special ReduceAction
                                                listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction737
+private class ReduceAction741
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23920,11 +24164,11 @@ special ReduceAction
                                                listnode2.add(pclosuredeclnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction738
+private class ReduceAction742
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23947,11 +24191,11 @@ special ReduceAction
                                                listnode3.add(pclosuredeclnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction739
+private class ReduceAction743
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23964,11 +24208,11 @@ special ReduceAction
                                                listnode2.add(ptypenode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction740
+private class ReduceAction744
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23991,11 +24235,11 @@ special ReduceAction
                                                listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction741
+private class ReduceAction745
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24008,11 +24252,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction742
+private class ReduceAction746
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24035,11 +24279,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction743
+private class ReduceAction747
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24056,11 +24300,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode2
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction744
+private class ReduceAction748
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24087,11 +24331,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode3
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction745
+private class ReduceAction749
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24104,11 +24348,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction746
+private class ReduceAction750
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24131,11 +24375,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction747
+private class ReduceAction751
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24148,11 +24392,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction748
+private class ReduceAction752
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24175,11 +24419,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction749
+private class ReduceAction753
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24192,11 +24436,11 @@ special ReduceAction
                                                listnode2.add(tcommentnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(134), node_list)
        end
 init do end
 end
-private class ReduceAction750
+private class ReduceAction754
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24219,11 +24463,11 @@ special ReduceAction
                                                listnode3.add(tcommentnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(134), node_list)
        end
 init do end
 end
-private class ReduceAction751
+private class ReduceAction755
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24236,11 +24480,11 @@ special ReduceAction
                                                listnode2.add(teolnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(135), node_list)
        end
 init do end
 end
-private class ReduceAction752
+private class ReduceAction756
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24263,11 +24507,11 @@ special ReduceAction
                                                listnode3.add(teolnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(135), node_list)
        end
 init do end
 end
-private class ReduceAction753
+private class ReduceAction757
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24280,11 +24524,11 @@ special ReduceAction
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(136), node_list)
        end
 init do end
 end
-private class ReduceAction754
+private class ReduceAction758
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24307,7 +24551,7 @@ special ReduceAction
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(136), node_list)
        end
 init do end
 end