parser: closure syntax use '!' instead of 'with'
authorJean Privat <jean@pryen.org>
Fri, 31 Jul 2009 20:53:46 +0000 (16:53 -0400)
committerJean Privat <jean@pryen.org>
Fri, 31 Jul 2009 20:53:46 +0000 (16:53 -0400)
However, old semantic remains: names are useless, only the order maters.
(cf. new alternatives)

Signed-off-by: Jean Privat <jean@pryen.org>

40 files changed:
misc/vim/syntax/nit.vim
src/parser/lexer.nit
src/parser/nit.sablecc3xx
src/parser/parser.nit
src/parser/parser_abs.nit
src/parser/parser_nodes.nit
src/parser/parser_prod.nit
src/parser/parser_tables.nit
src/syntax/typing.nit
tests/base_closure1.nit
tests/base_closure10.nit
tests/base_closure11.nit
tests/base_closure2.nit
tests/base_closure3.nit
tests/base_closure4.nit
tests/base_closure5.nit
tests/base_closure6.nit
tests/base_closure7.nit
tests/base_closure8.nit
tests/base_closure9.nit
tests/base_closure_break.nit
tests/base_closure_default1.nit
tests/base_closure_default2.nit
tests/base_closure_default3.nit
tests/base_closure_default4.nit
tests/base_closure_forms.nit
tests/base_closure_multi.nit
tests/base_closure_raf.nit
tests/base_label_closure.nit
tests/base_label_closure2.nit
tests/base_label_closure3.nit
tests/bench_int_range_closure.nit
tests/sav/base_closure1_alt12.fail [new file with mode: 0644]
tests/sav/base_closure8_alt4.fail [new file with mode: 0644]
tests/sav/base_closure_break_alt12.sav
tests/sav/base_closure_default3_alt5.sav
tests/sav/base_closure_default4_alt5.sav
tests/sav/base_closure_multi_alt5.fail [new file with mode: 0644]
tests/test_closure_inlined_return.nit
tests/test_map_closure_default.nit

index 50d86f4..99c5b6a 100644 (file)
@@ -41,9 +41,12 @@ syn region NITString matchgroup=NITStringDelimit start="'"  end="'"  skip="\\\\\
 " Labels
 syn match NITLabel "\<label \h\w*"
 
+" Closures
+syn match NITClosure "!\h\w*"
+
 " Fallback highlight keywords
 syn match NITNull "\<\(null\)\>"
-syn match NITControl "\<\(init\|end\|not null\|not\|var\|do\|then\|else\|with\)\>"
+syn match NITControl "\<\(init\|end\|not null\|not\|var\|do\|then\|else\)\>"
 " Unmatchning error
 syn match Error "\<end\>"
 
@@ -55,7 +58,7 @@ syn region NITTypeDecl matchgroup=NITDefine start="\<type\>\s*" matchgroup=NONE
 syn region NITAttrDecl matchgroup=NITDefine start="\<var\>\s*\ze_" matchgroup=NONE end="\ze\(\<do\>\|\s\|:\|(\|$\)"  oneline contained containedin=NITClassBlock
 syn region NITInitDecl matchgroup=NITDefine start="\<init\>\s*" matchgroup=NONE end="\ze\(\<do\>\|\s\|:\|(\|$\)"  oneline contained containedin=NITClassBlock
 
-syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\)\>\ze\s*\(#\|$\)" matchgroup=NITControl end="^\s*\<\(end\|\zeelse\|with\)\>" contains=ALLBUT,NITTypeDecl,NITAttrDecl,NITInitDecl
+syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\)\>\ze\s*\(#\|$\)" matchgroup=NITControl end="^\s*\<\(end\|\zeelse\|\ze!\)\>" contains=ALLBUT,NITTypeDecl,NITAttrDecl,NITInitDecl
 syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\)\>" matchgroup=NITControl end="\<end\>" oneline
 
 if !exists("NIT_minlines")
@@ -93,6 +96,7 @@ hi def link NITNull                   Constant
 hi def link NITSelf                    Constant
 hi def link NITClass                   Type
 hi def link NITAttribute               Identifier
+hi def link NITClosure                 Function
 hi def link NITSharpBang               PreProc
 hi def link NITKeyword                 Keyword
 
index fd1edf5..65bdf36 100644 (file)
@@ -625,23 +625,10 @@ redef class TKwas
     end
 end
 
-redef class TKwwith
-    redef fun parser_index: Int
-    do
-       return 47
-    end
-
-    init init_tk(loc: Location)
-    do
-        _text = once "with"
-               _location = loc
-    end
-end
-
 redef class TKwnullable
     redef fun parser_index: Int
     do
-       return 48
+       return 47
     end
 
     init init_tk(loc: Location)
@@ -654,7 +641,7 @@ end
 redef class TKwisset
     redef fun parser_index: Int
     do
-       return 49
+       return 48
     end
 
     init init_tk(loc: Location)
@@ -667,7 +654,7 @@ end
 redef class TKwlabel
     redef fun parser_index: Int
     do
-       return 50
+       return 49
     end
 
     init init_tk(loc: Location)
@@ -680,7 +667,7 @@ end
 redef class TOpar
     redef fun parser_index: Int
     do
-       return 51
+       return 50
     end
 
     init init_tk(loc: Location)
@@ -693,7 +680,7 @@ end
 redef class TCpar
     redef fun parser_index: Int
     do
-       return 52
+       return 51
     end
 
     init init_tk(loc: Location)
@@ -706,7 +693,7 @@ end
 redef class TObra
     redef fun parser_index: Int
     do
-       return 53
+       return 52
     end
 
     init init_tk(loc: Location)
@@ -719,7 +706,7 @@ end
 redef class TCbra
     redef fun parser_index: Int
     do
-       return 54
+       return 53
     end
 
     init init_tk(loc: Location)
@@ -732,7 +719,7 @@ end
 redef class TComma
     redef fun parser_index: Int
     do
-       return 55
+       return 54
     end
 
     init init_tk(loc: Location)
@@ -745,7 +732,7 @@ end
 redef class TColumn
     redef fun parser_index: Int
     do
-       return 56
+       return 55
     end
 
     init init_tk(loc: Location)
@@ -758,7 +745,7 @@ end
 redef class TQuad
     redef fun parser_index: Int
     do
-       return 57
+       return 56
     end
 
     init init_tk(loc: Location)
@@ -771,7 +758,7 @@ end
 redef class TAssign
     redef fun parser_index: Int
     do
-       return 58
+       return 57
     end
 
     init init_tk(loc: Location)
@@ -784,7 +771,7 @@ end
 redef class TPluseq
     redef fun parser_index: Int
     do
-       return 59
+       return 58
     end
 
     init init_tk(loc: Location)
@@ -797,7 +784,7 @@ end
 redef class TMinuseq
     redef fun parser_index: Int
     do
-       return 60
+       return 59
     end
 
     init init_tk(loc: Location)
@@ -810,7 +797,7 @@ end
 redef class TDotdotdot
     redef fun parser_index: Int
     do
-       return 61
+       return 60
     end
 
     init init_tk(loc: Location)
@@ -823,7 +810,7 @@ end
 redef class TDotdot
     redef fun parser_index: Int
     do
-       return 62
+       return 61
     end
 
     init init_tk(loc: Location)
@@ -836,7 +823,7 @@ end
 redef class TDot
     redef fun parser_index: Int
     do
-       return 63
+       return 62
     end
 
     init init_tk(loc: Location)
@@ -849,7 +836,7 @@ end
 redef class TPlus
     redef fun parser_index: Int
     do
-       return 64
+       return 63
     end
 
     init init_tk(loc: Location)
@@ -862,7 +849,7 @@ end
 redef class TMinus
     redef fun parser_index: Int
     do
-       return 65
+       return 64
     end
 
     init init_tk(loc: Location)
@@ -875,7 +862,7 @@ end
 redef class TStar
     redef fun parser_index: Int
     do
-       return 66
+       return 65
     end
 
     init init_tk(loc: Location)
@@ -888,7 +875,7 @@ end
 redef class TSlash
     redef fun parser_index: Int
     do
-       return 67
+       return 66
     end
 
     init init_tk(loc: Location)
@@ -901,7 +888,7 @@ end
 redef class TPercent
     redef fun parser_index: Int
     do
-       return 68
+       return 67
     end
 
     init init_tk(loc: Location)
@@ -914,7 +901,7 @@ end
 redef class TEq
     redef fun parser_index: Int
     do
-       return 69
+       return 68
     end
 
     init init_tk(loc: Location)
@@ -927,7 +914,7 @@ end
 redef class TNe
     redef fun parser_index: Int
     do
-       return 70
+       return 69
     end
 
     init init_tk(loc: Location)
@@ -940,7 +927,7 @@ end
 redef class TLt
     redef fun parser_index: Int
     do
-       return 71
+       return 70
     end
 
     init init_tk(loc: Location)
@@ -953,7 +940,7 @@ end
 redef class TLe
     redef fun parser_index: Int
     do
-       return 72
+       return 71
     end
 
     init init_tk(loc: Location)
@@ -966,7 +953,7 @@ end
 redef class TGt
     redef fun parser_index: Int
     do
-       return 73
+       return 72
     end
 
     init init_tk(loc: Location)
@@ -979,7 +966,7 @@ end
 redef class TGe
     redef fun parser_index: Int
     do
-       return 74
+       return 73
     end
 
     init init_tk(loc: Location)
@@ -992,7 +979,7 @@ end
 redef class TStarship
     redef fun parser_index: Int
     do
-       return 75
+       return 74
     end
 
     init init_tk(loc: Location)
@@ -1002,6 +989,19 @@ redef class TStarship
     end
 end
 
+redef class TBang
+    redef fun parser_index: Int
+    do
+       return 75
+    end
+
+    init init_tk(loc: Location)
+    do
+        _text = once "!"
+               _location = loc
+    end
+end
+
 redef class TClassid
     redef fun parser_index: Int
     do
@@ -1708,7 +1708,7 @@ class Lexer
                                        end
                                        if accept_token == 48 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TKwwith.init_tk(location)
+                                               var token = new TKwnullable.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1716,7 +1716,7 @@ class Lexer
                                        end
                                        if accept_token == 49 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TKwnullable.init_tk(location)
+                                               var token = new TKwisset.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1724,7 +1724,7 @@ class Lexer
                                        end
                                        if accept_token == 50 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TKwisset.init_tk(location)
+                                               var token = new TKwlabel.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1732,7 +1732,7 @@ class Lexer
                                        end
                                        if accept_token == 51 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TKwlabel.init_tk(location)
+                                               var token = new TOpar.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1740,7 +1740,7 @@ class Lexer
                                        end
                                        if accept_token == 52 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TOpar.init_tk(location)
+                                               var token = new TCpar.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1748,7 +1748,7 @@ class Lexer
                                        end
                                        if accept_token == 53 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TCpar.init_tk(location)
+                                               var token = new TObra.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1756,7 +1756,7 @@ class Lexer
                                        end
                                        if accept_token == 54 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TObra.init_tk(location)
+                                               var token = new TCbra.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1764,7 +1764,7 @@ class Lexer
                                        end
                                        if accept_token == 55 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TCbra.init_tk(location)
+                                               var token = new TComma.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1772,7 +1772,7 @@ class Lexer
                                        end
                                        if accept_token == 56 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TComma.init_tk(location)
+                                               var token = new TColumn.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1780,7 +1780,7 @@ class Lexer
                                        end
                                        if accept_token == 57 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TColumn.init_tk(location)
+                                               var token = new TQuad.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1788,7 +1788,7 @@ class Lexer
                                        end
                                        if accept_token == 58 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TQuad.init_tk(location)
+                                               var token = new TAssign.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1796,7 +1796,7 @@ class Lexer
                                        end
                                        if accept_token == 59 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TAssign.init_tk(location)
+                                               var token = new TPluseq.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1804,7 +1804,7 @@ class Lexer
                                        end
                                        if accept_token == 60 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TPluseq.init_tk(location)
+                                               var token = new TMinuseq.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1812,7 +1812,7 @@ class Lexer
                                        end
                                        if accept_token == 61 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TMinuseq.init_tk(location)
+                                               var token = new TDotdotdot.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1820,7 +1820,7 @@ class Lexer
                                        end
                                        if accept_token == 62 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TDotdotdot.init_tk(location)
+                                               var token = new TDotdot.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1828,7 +1828,7 @@ class Lexer
                                        end
                                        if accept_token == 63 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TDotdot.init_tk(location)
+                                               var token = new TDot.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1836,7 +1836,7 @@ class Lexer
                                        end
                                        if accept_token == 64 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TDot.init_tk(location)
+                                               var token = new TPlus.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1844,7 +1844,7 @@ class Lexer
                                        end
                                        if accept_token == 65 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TPlus.init_tk(location)
+                                               var token = new TMinus.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1852,7 +1852,7 @@ class Lexer
                                        end
                                        if accept_token == 66 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TMinus.init_tk(location)
+                                               var token = new TStar.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1860,7 +1860,7 @@ class Lexer
                                        end
                                        if accept_token == 67 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TStar.init_tk(location)
+                                               var token = new TSlash.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1868,7 +1868,7 @@ class Lexer
                                        end
                                        if accept_token == 68 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TSlash.init_tk(location)
+                                               var token = new TPercent.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1876,7 +1876,7 @@ class Lexer
                                        end
                                        if accept_token == 69 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TPercent.init_tk(location)
+                                               var token = new TEq.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1884,7 +1884,7 @@ class Lexer
                                        end
                                        if accept_token == 70 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TEq.init_tk(location)
+                                               var token = new TNe.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1892,7 +1892,7 @@ class Lexer
                                        end
                                        if accept_token == 71 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TNe.init_tk(location)
+                                               var token = new TLt.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1900,7 +1900,7 @@ class Lexer
                                        end
                                        if accept_token == 72 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TLt.init_tk(location)
+                                               var token = new TLe.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1908,7 +1908,7 @@ class Lexer
                                        end
                                        if accept_token == 73 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TLe.init_tk(location)
+                                               var token = new TGt.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1916,7 +1916,7 @@ class Lexer
                                        end
                                        if accept_token == 74 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TGt.init_tk(location)
+                                               var token = new TGe.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1924,7 +1924,7 @@ class Lexer
                                        end
                                        if accept_token == 75 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TGe.init_tk(location)
+                                               var token = new TStarship.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -1932,7 +1932,7 @@ class Lexer
                                        end
                                        if accept_token == 76 then
                                                var location = new Location(_filename, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
-                                               var token = new TStarship.init_tk(location)
+                                               var token = new TBang.init_tk(location)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -2353,21 +2353,20 @@ class Lexer
                                [
                                        [48, 103, -43],
                                        [104, 104, 109],
-                                       [105, 105, 110],
-                                       [106, 113, 74],
-                                       [114, 114, 111],
+                                       [105, 113, 74],
+                                       [114, 114, 110],
                                        [115, 122, 74]
                                ],
                                [
-                                       [0, 9, 112],
-                                       [11, 12, 112],
-                                       [14, 33, 112],
-                                       [34, 34, 113],
-                                       [35, 91, 112],
-                                       [92, 92, 114],
-                                       [93, 122, 112],
-                                       [123, 123, 115],
-                                       [124, 255, 112]
+                                       [0, 9, 111],
+                                       [11, 12, 111],
+                                       [14, 33, 111],
+                                       [34, 34, 112],
+                                       [35, 91, 111],
+                                       [92, 92, 113],
+                                       [93, 122, 111],
+                                       [123, 123, 114],
+                                       [124, 255, 111]
                                ],
                                nil_array,
                                nil_array,
@@ -2376,9 +2375,9 @@ class Lexer
                                ],
                                nil_array,
                                [
-                                       [0, 9, 116],
-                                       [11, 12, 116],
-                                       [14, 255, 116]
+                                       [0, 9, 115],
+                                       [11, 12, 115],
+                                       [14, 255, 115]
                                ],
                                nil_array,
                                [
@@ -2386,7 +2385,7 @@ class Lexer
                                ],
                                nil_array,
                                [
-                                       [10, 10, 117]
+                                       [10, 10, 116]
                                ],
                                [
                                        [0, 255, -11]
@@ -2395,7 +2394,7 @@ class Lexer
                                nil_array,
                                nil_array,
                                [
-                                       [46, 46, 118]
+                                       [46, 46, 117]
                                ],
                                [
                                        [48, 57, 60]
@@ -2405,7 +2404,7 @@ class Lexer
                                ],
                                nil_array,
                                [
-                                       [62, 62, 119]
+                                       [62, 62, 118]
                                ],
                                nil_array,
                                nil_array,
@@ -2422,10 +2421,10 @@ class Lexer
                                        [48, 122, -25]
                                ],
                                [
-                                       [48, 57, 120],
-                                       [65, 90, 121],
-                                       [95, 95, 122],
-                                       [97, 122, 123]
+                                       [48, 57, 119],
+                                       [65, 90, 120],
+                                       [95, 95, 121],
+                                       [97, 122, 122]
                                ],
                                [
                                        [48, 122, -35]
@@ -2441,36 +2440,36 @@ class Lexer
                                ],
                                [
                                        [48, 110, -32],
-                                       [111, 111, 124],
+                                       [111, 111, 123],
                                        [112, 114, 74],
-                                       [115, 115, 125],
+                                       [115, 115, 124],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 99, 74],
-                                       [100, 100, 126],
+                                       [100, 100, 125],
                                        [101, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 114, 74],
-                                       [115, 115, 127],
+                                       [115, 115, 126],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 128],
+                                       [101, 101, 127],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 129],
+                                       [97, 97, 128],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 109, -39],
-                                       [110, 110, 130],
+                                       [110, 110, 129],
                                        [111, 122, 74]
                                ],
                                [
@@ -2478,33 +2477,33 @@ class Lexer
                                ],
                                [
                                        [48, 114, -79],
-                                       [115, 115, 131],
+                                       [115, 115, 130],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 99, -78],
-                                       [100, 100, 132],
+                                       [100, 100, 131],
                                        [101, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 115, 74],
-                                       [116, 116, 133],
+                                       [116, 116, 132],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 134],
+                                       [108, 108, 133],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 135],
+                                       [114, 114, 134],
                                        [115, 122, 74]
                                ],
                                [
                                        [48, 109, -39],
-                                       [110, 110, 136],
+                                       [110, 110, 135],
                                        [111, 122, 74]
                                ],
                                [
@@ -2513,49 +2512,49 @@ class Lexer
                                [
                                        [48, 95, -29],
                                        [97, 111, 74],
-                                       [112, 112, 137],
+                                       [112, 112, 136],
                                        [113, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 104, 74],
-                                       [105, 105, 138],
+                                       [105, 105, 137],
                                        [106, 115, 74],
-                                       [116, 116, 139],
+                                       [116, 116, 138],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 140],
+                                       [97, 97, 139],
                                        [98, 114, 74],
-                                       [115, 115, 141],
+                                       [115, 115, 140],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 97, -29],
-                                       [98, 98, 142],
+                                       [98, 98, 141],
                                        [99, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 118, 74],
-                                       [119, 119, 143],
+                                       [119, 119, 142],
                                        [120, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 144],
+                                       [116, 116, 143],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 145],
+                                       [108, 108, 144],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 98, 74],
-                                       [99, 99, 146],
+                                       [99, 99, 145],
                                        [100, 122, 74]
                                ],
                                [
@@ -2563,79 +2562,74 @@ class Lexer
                                ],
                                [
                                        [48, 98, -98],
-                                       [99, 99, 147],
+                                       [99, 99, 146],
                                        [100, 122, 74]
                                ],
                                [
                                        [48, 104, -92],
-                                       [105, 105, 148],
+                                       [105, 105, 147],
                                        [106, 110, 74],
-                                       [111, 111, 149],
+                                       [111, 111, 148],
                                        [112, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 150],
+                                       [97, 97, 149],
                                        [98, 99, 74],
-                                       [100, 100, 151],
+                                       [100, 100, 150],
                                        [101, 115, 74],
-                                       [116, 116, 152],
+                                       [116, 116, 151],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 153],
+                                       [108, 108, 152],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 154],
+                                       [101, 101, 153],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 111, -91],
-                                       [112, 112, 155],
+                                       [112, 112, 154],
                                        [113, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 156],
+                                       [101, 101, 155],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 116, 74],
-                                       [117, 117, 157],
+                                       [117, 117, 156],
                                        [118, 122, 74]
                                ],
                                [
                                        [48, 111, -91],
-                                       [112, 112, 158],
+                                       [112, 112, 157],
                                        [113, 122, 74]
                                ],
                                [
                                        [48, 104, -92],
-                                       [105, 105, 159],
+                                       [105, 105, 158],
                                        [106, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 160],
+                                       [114, 114, 159],
                                        [115, 122, 74]
                                ],
                                [
                                        [48, 104, -92],
-                                       [105, 105, 161],
+                                       [105, 105, 160],
                                        [106, 122, 74]
                                ],
                                [
-                                       [48, 115, -86],
-                                       [116, 116, 162],
-                                       [117, 122, 74]
-                               ],
-                               [
                                        [48, 104, -92],
-                                       [105, 105, 163],
+                                       [105, 105, 161],
                                        [106, 122, 74]
                                ],
                                [
@@ -2643,9 +2637,9 @@ class Lexer
                                ],
                                nil_array,
                                [
-                                       [0, 9, 164],
-                                       [11, 12, 164],
-                                       [14, 255, 164]
+                                       [0, 9, 162],
+                                       [11, 12, 162],
+                                       [14, 255, 162]
                                ],
                                nil_array,
                                [
@@ -2668,12 +2662,12 @@ class Lexer
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 165],
+                                       [114, 114, 163],
                                        [115, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 166],
+                                       [116, 116, 164],
                                        [117, 122, 74]
                                ],
                                [
@@ -2681,27 +2675,27 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 167],
+                                       [101, 101, 165],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 168],
+                                       [97, 97, 166],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 114, -79],
-                                       [115, 115, 169],
+                                       [115, 115, 167],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 170],
+                                       [116, 116, 168],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 171],
+                                       [101, 101, 169],
                                        [102, 122, 74]
                                ],
                                [
@@ -2709,12 +2703,12 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 172],
+                                       [101, 101, 170],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 114, -79],
-                                       [115, 115, 173],
+                                       [115, 115, 171],
                                        [116, 122, 74]
                                ],
                                [
@@ -2725,19 +2719,19 @@ class Lexer
                                ],
                                [
                                        [48, 110, -32],
-                                       [111, 111, 174],
+                                       [111, 111, 172],
                                        [112, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 175],
+                                       [116, 116, 173],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 176],
+                                       [101, 101, 174],
                                        [102, 113, 74],
-                                       [114, 114, 177],
+                                       [114, 114, 175],
                                        [115, 122, 74]
                                ],
                                [
@@ -2745,12 +2739,12 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 178],
+                                       [101, 101, 176],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 179],
+                                       [101, 101, 177],
                                        [102, 122, 74]
                                ],
                                [
@@ -2761,79 +2755,79 @@ class Lexer
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 180],
+                                       [108, 108, 178],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 181],
+                                       [101, 101, 179],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 106, 74],
-                                       [107, 107, 182],
+                                       [107, 107, 180],
                                        [108, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 117, 74],
-                                       [118, 118, 183],
+                                       [118, 118, 181],
                                        [119, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 184],
+                                       [116, 116, 182],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 99, -78],
-                                       [100, 100, 185],
+                                       [100, 100, 183],
                                        [101, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 186],
+                                       [101, 101, 184],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 116, -107],
-                                       [117, 117, 187],
+                                       [117, 117, 185],
                                        [118, 122, 74]
                                ],
                                [
                                        [48, 101, -36],
-                                       [102, 102, 188],
+                                       [102, 102, 186],
                                        [103, 122, 74]
                                ],
                                [
                                        [48, 98, -98],
-                                       [99, 99, 189],
+                                       [99, 99, 187],
                                        [100, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 190],
+                                       [101, 101, 188],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 109, -39],
-                                       [110, 110, 191],
+                                       [110, 110, 189],
                                        [111, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 192],
+                                       [101, 101, 190],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 193],
+                                       [101, 101, 191],
                                        [102, 122, 74]
                                ],
                                [
-                                       [48, 117, -150],
-                                       [118, 118, 194],
+                                       [48, 117, -149],
+                                       [118, 118, 192],
                                        [119, 122, 74]
                                ],
                                [
@@ -2841,17 +2835,12 @@ class Lexer
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 195],
+                                       [108, 108, 193],
                                        [109, 122, 74]
                                ],
                                [
-                                       [48, 103, -43],
-                                       [104, 104, 196],
-                                       [105, 122, 74]
-                               ],
-                               [
                                        [48, 115, -86],
-                                       [116, 116, 197],
+                                       [116, 116, 194],
                                        [117, 122, 74]
                                ],
                                [
@@ -2859,32 +2848,32 @@ class Lexer
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 198],
+                                       [116, 116, 195],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 199],
+                                       [114, 114, 196],
                                        [115, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 200],
+                                       [114, 114, 197],
                                        [115, 122, 74]
                                ],
                                [
-                                       [48, 106, -149],
-                                       [107, 107, 201],
+                                       [48, 106, -148],
+                                       [107, 107, 198],
                                        [108, 122, 74]
                                ],
                                [
                                        [48, 114, -79],
-                                       [115, 115, 202],
+                                       [115, 115, 199],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 104, -92],
-                                       [105, 105, 203],
+                                       [105, 105, 200],
                                        [106, 122, 74]
                                ],
                                [
@@ -2892,17 +2881,17 @@ class Lexer
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 204],
+                                       [114, 114, 201],
                                        [115, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 205],
+                                       [101, 101, 202],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 206],
+                                       [114, 114, 203],
                                        [115, 122, 74]
                                ],
                                [
@@ -2910,27 +2899,27 @@ class Lexer
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 207],
+                                       [114, 114, 204],
                                        [115, 122, 74]
                                ],
                                [
                                        [48, 116, -107],
-                                       [117, 117, 208],
+                                       [117, 117, 205],
                                        [118, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 209],
+                                       [116, 116, 206],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 210],
+                                       [108, 108, 207],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 211],
+                                       [97, 97, 208],
                                        [98, 122, 74]
                                ],
                                [
@@ -2938,32 +2927,32 @@ class Lexer
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 212],
+                                       [97, 97, 209],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 213],
+                                       [97, 97, 210],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 214],
+                                       [101, 101, 211],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 215],
+                                       [97, 97, 212],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 101, -36],
-                                       [102, 102, 216],
+                                       [102, 102, 213],
                                        [103, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 217],
+                                       [114, 114, 214],
                                        [115, 122, 74]
                                ],
                                [
@@ -2971,12 +2960,12 @@ class Lexer
                                ],
                                [
                                        [48, 104, -92],
-                                       [105, 105, 218],
+                                       [105, 105, 215],
                                        [106, 122, 74]
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 219],
+                                       [114, 114, 216],
                                        [115, 122, 74]
                                ],
                                [
@@ -2990,20 +2979,17 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 220],
+                                       [101, 101, 217],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 221],
+                                       [101, 101, 218],
                                        [102, 122, 74]
                                ],
                                [
-                                       [48, 122, -35]
-                               ],
-                               [
                                        [48, 95, -29],
-                                       [97, 97, 222],
+                                       [97, 97, 219],
                                        [98, 122, 74]
                                ],
                                [
@@ -3011,12 +2997,12 @@ class Lexer
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 223],
+                                       [97, 97, 220],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 224],
+                                       [116, 116, 221],
                                        [117, 122, 74]
                                ],
                                [
@@ -3027,12 +3013,12 @@ class Lexer
                                ],
                                [
                                        [48, 109, -39],
-                                       [110, 110, 225],
+                                       [110, 110, 222],
                                        [111, 122, 74]
                                ],
                                [
                                        [48, 109, -39],
-                                       [110, 110, 226],
+                                       [110, 110, 223],
                                        [111, 122, 74]
                                ],
                                [
@@ -3040,19 +3026,19 @@ class Lexer
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 227],
+                                       [116, 116, 224],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 101, -36],
-                                       [102, 102, 228],
+                                       [102, 102, 225],
                                        [103, 109, 74],
-                                       [110, 110, 229],
+                                       [110, 110, 226],
                                        [111, 122, 74]
                                ],
                                [
                                        [48, 99, -78],
-                                       [100, 100, 230],
+                                       [100, 100, 227],
                                        [101, 122, 74]
                                ],
                                [
@@ -3063,28 +3049,28 @@ class Lexer
                                ],
                                [
                                        [48, 97, -29],
-                                       [98, 98, 231],
+                                       [98, 98, 228],
                                        [99, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
                                        [97, 102, 74],
-                                       [103, 103, 232],
+                                       [103, 103, 229],
                                        [104, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 233],
+                                       [116, 116, 230],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 98, -98],
-                                       [99, 99, 234],
+                                       [99, 99, 231],
                                        [100, 122, 74]
                                ],
                                [
                                        [48, 97, -29],
-                                       [98, 98, 235],
+                                       [98, 98, 232],
                                        [99, 122, 74]
                                ],
                                [
@@ -3092,12 +3078,12 @@ class Lexer
                                ],
                                [
                                        [48, 109, -39],
-                                       [110, 110, 236],
+                                       [110, 110, 233],
                                        [111, 122, 74]
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 237],
+                                       [97, 97, 234],
                                        [98, 122, 74]
                                ],
                                [
@@ -3105,7 +3091,7 @@ class Lexer
                                ],
                                [
                                        [48, 113, -30],
-                                       [114, 114, 238],
+                                       [114, 114, 235],
                                        [115, 122, 74]
                                ],
                                [
@@ -3113,12 +3099,12 @@ class Lexer
                                ],
                                [
                                        [48, 97, -29],
-                                       [98, 98, 239],
+                                       [98, 98, 236],
                                        [99, 122, 74]
                                ],
                                [
                                        [48, 98, -98],
-                                       [99, 99, 240],
+                                       [99, 99, 237],
                                        [100, 122, 74]
                                ],
                                [
@@ -3126,7 +3112,7 @@ class Lexer
                                ],
                                [
                                        [48, 116, -107],
-                                       [117, 117, 241],
+                                       [117, 117, 238],
                                        [118, 122, 74]
                                ],
                                [
@@ -3137,7 +3123,7 @@ class Lexer
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 242],
+                                       [97, 97, 239],
                                        [98, 122, 74]
                                ],
                                [
@@ -3145,32 +3131,32 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 243],
+                                       [101, 101, 240],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 244],
+                                       [108, 108, 241],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 245],
+                                       [101, 101, 242],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 246],
+                                       [101, 101, 243],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 247],
+                                       [116, 116, 244],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 248],
+                                       [108, 108, 245],
                                        [109, 122, 74]
                                ],
                                [
@@ -3178,32 +3164,32 @@ class Lexer
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 249],
+                                       [108, 108, 246],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 114, -79],
-                                       [115, 115, 250],
+                                       [115, 115, 247],
                                        [116, 122, 74]
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 251],
+                                       [108, 108, 248],
                                        [109, 122, 74]
                                ],
                                [
                                        [48, 115, -86],
-                                       [116, 116, 252],
+                                       [116, 116, 249],
                                        [117, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 253],
+                                       [101, 101, 250],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 98, -98],
-                                       [99, 99, 254],
+                                       [99, 99, 251],
                                        [100, 122, 74]
                                ],
                                [
@@ -3211,7 +3197,7 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 255],
+                                       [101, 101, 252],
                                        [102, 122, 74]
                                ],
                                [
@@ -3222,12 +3208,12 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 256],
+                                       [101, 101, 253],
                                        [102, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 257],
+                                       [101, 101, 254],
                                        [102, 122, 74]
                                ],
                                [
@@ -3235,12 +3221,12 @@ class Lexer
                                ],
                                [
                                        [48, 95, -29],
-                                       [97, 97, 258],
+                                       [97, 97, 255],
                                        [98, 122, 74]
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 259],
+                                       [101, 101, 256],
                                        [102, 122, 74]
                                ],
                                [
@@ -3251,7 +3237,7 @@ class Lexer
                                ],
                                [
                                        [48, 100, -38],
-                                       [101, 101, 260],
+                                       [101, 101, 257],
                                        [102, 122, 74]
                                ],
                                [
@@ -3259,7 +3245,7 @@ class Lexer
                                ],
                                [
                                        [48, 99, -78],
-                                       [100, 100, 261],
+                                       [100, 100, 258],
                                        [101, 122, 74]
                                ],
                                [
@@ -3267,7 +3253,7 @@ class Lexer
                                ],
                                [
                                        [48, 107, -31],
-                                       [108, 108, 262],
+                                       [108, 108, 259],
                                        [109, 122, 74]
                                ],
                                [
@@ -3295,7 +3281,7 @@ class Lexer
        private fun build_accept_table do
                _accept_table = once [
                        [
-                               -1,0,1,1,0,-1,-1,-1,69,-1,52,53,67,65,56,66,64,68,80,57,72,59,74,77,54,55,-1,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,-1,1,71,-1,83,-1,84,-1,2,2,-1,82,60,61,63,81,-1,58,73,70,75,77,77,77,77,79,78,78,78,78,78,78,47,78,78,78,16,78,78,78,78,78,78,25,78,30,15,78,78,78,78,78,32,78,78,78,78,78,78,78,78,78,78,78,78,78,78,-1,86,-1,85,-1,2,62,76,79,79,79,79,78,78,31,78,78,78,78,78,10,78,78,29,11,78,78,78,40,78,78,39,33,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,19,78,78,78,-1,78,78,78,78,78,78,27,78,78,78,13,78,78,78,78,46,41,78,78,78,78,78,78,43,78,78,26,44,12,78,78,48,78,37,78,78,36,5,78,78,45,78,78,78,50,51,78,78,78,78,78,14,78,78,42,78,28,78,78,38,78,21,4,78,20,78,78,78,78,78,78,34,78,78,78,78,78,78,24,78,3,23,78,78,9,78,78,6,35,78,49,78,17,78,18,7,22,8
+                               -1,0,1,1,0,76,-1,-1,68,-1,51,52,66,64,55,65,63,67,80,56,71,58,73,77,53,54,-1,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,-1,1,70,-1,83,-1,84,-1,2,2,-1,82,59,60,62,81,-1,57,72,69,74,77,77,77,77,79,78,78,78,78,78,78,47,78,78,78,16,78,78,78,78,78,78,25,78,30,15,78,78,78,78,78,32,78,78,78,78,78,78,78,78,78,78,78,78,78,-1,86,-1,85,-1,2,61,75,79,79,79,79,78,78,31,78,78,78,78,78,10,78,78,29,11,78,78,78,40,78,78,39,33,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,19,78,78,-1,78,78,78,78,78,78,27,78,78,78,13,78,78,78,78,46,41,78,78,78,78,78,78,43,78,78,26,44,12,78,78,78,37,78,78,36,5,78,78,45,78,78,78,49,50,78,78,78,78,78,14,78,78,42,78,28,78,78,38,78,21,4,78,20,78,78,78,78,78,78,34,78,78,78,78,78,78,24,78,3,23,78,78,9,78,78,6,35,78,48,78,17,78,18,7,22,8
 
                        ]
                ]
index a386ff1..1a123d3 100644 (file)
@@ -102,7 +102,6 @@ kwtrue = 'true';
 kwfalse = 'false';
 kwnull = 'null';
 kwas = 'as';
-kwwith = 'with';
 kwnullable = 'nullable';
 kwisset = 'isset';
 kwlabel = 'label';
@@ -132,6 +131,7 @@ le = '<=';
 gt = '>';
 ge = '>=';
 starship = '<=>';
+bang='!';
 
 classid = uppercase letter*;
 id = lowercase letter*;
@@ -273,8 +273,8 @@ param
 closure_decls {->closure_decl*}
        = no closure_decl+ {-> [closure_decl]};
 closure_decl
-       = kwwith kwbreak? [no2]:no id signature_noclosures n {-> New closure_decl(kwwith, kwbreak, id, signature_noclosures.signature, Null)}
-       | {optionnal} kwwith kwbreak? [no2]:no id signature_noclosures kwdo stmtso n {-> New closure_decl(kwwith, kwbreak, id, signature_noclosures.signature, stmtso.expr)}
+       = kwbreak? bang id signature_noclosures n {-> New closure_decl(kwbreak, bang, id, signature_noclosures.signature, Null)}
+       | {optionnal} kwbreak? bang id signature_noclosures kwdo stmtso n {-> New closure_decl(kwbreak, bang, id, signature_noclosures.signature, stmtso.expr)}
        ;
 
 /* TYPES *********************************************************************/
@@ -325,13 +325,17 @@ closure_defs~withelse {-> closure_def*}
        ;
 
 closure_def_last~withelse {-> closure_def}
-       = kwwith idlist? kwdo stmtso~withelse_withend label? {-> New closure_def(kwwith, [idlist.id], kwdo, stmtso~withelse_withend.expr, label)}
-       | {noend} kwwith idlist? kwdo stmt~withelse {-> New closure_def(kwwith, [idlist.id], kwdo, stmt~withelse.expr, Null)}
+       = bang [id]:closure_id idlist? kwdo stmtso~withelse_withend label? {-> New closure_def(bang, id, [idlist.id], kwdo, stmtso~withelse_withend.expr, label)}
+       | {noend} bang [id]:closure_id idlist? kwdo stmt~withelse {-> New closure_def(bang, id, [idlist.id], kwdo, stmt~withelse.expr, Null)}
        ;
 
 closure_def {-> closure_def}
-       = kwwith idlist? kwdo n stmts [n2]:n {-> New closure_def(kwwith, [idlist.id], kwdo, stmts.expr, Null)}
-       | {empty} kwwith idlist? kwdo n {-> New closure_def(kwwith, [idlist.id], kwdo, Null, Null)}
+       = bang [id]:closure_id idlist? kwdo n stmts [n2]:n {-> New closure_def(bang, id, [idlist.id], kwdo, stmts.expr, Null)}
+       | {empty} bang [id]:closure_id idlist? kwdo n {-> New closure_def(bang, id, [idlist.id], kwdo, Null, Null)}
+       ;
+closure_id
+       = {simple} id
+       | {break} kwbreak
        ;
 
 vardecl~withelse{-> expr}
@@ -504,8 +508,12 @@ braargs    {-> expr*}
 args_tail {-> expr} 
        = comma no expr [n2]:no {-> expr};
 idlist {-> id*}
+       = opar idlist_nopar cpar {-> [idlist_nopar.id]}
+       | {nopar} idlist_nopar {-> [idlist_nopar.id]}
+       ;
+idlist_nopar {-> id*}
        = {single} id {-> [id]}
-       | {more} idlist no comma [n2]:no id {-> [idlist.id, id]}
+       | {more} idlist_nopar no comma [n2]:no id {-> [idlist_nopar.id, id]}
        ;
 
 qualified 
@@ -588,7 +596,7 @@ signature = [params]:param* type? [closure_decls]:closure_decl*;
 param  = id type? dotdotdot? 
        ;
 
-closure_decl = kwwith kwbreak? id signature expr?
+closure_decl = kwbreak? bang id signature expr?
        ;
 
 type   = kwnullable? [id]:classid [types]:type*;
@@ -672,7 +680,11 @@ assign_op
        ;
 
 closure_def
-       = kwwith id* kwdo expr? label?
+       = bang [id]:closure_id [ids]:id* kwdo expr? label?
+       ;
+closure_id
+       = {simple} id
+       | {break} kwbreak
        ;
 
 qualified = id* classid? ;
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
index 3824ba5..7457ae4 100644 (file)
@@ -164,9 +164,6 @@ end
 class TKwas
 special Token
 end
-class TKwwith
-special Token
-end
 class TKwnullable
 special Token
 end
@@ -251,6 +248,9 @@ end
 class TStarship
 special Token
 end
+class TBang
+special Token
+end
 class TClassid
 special Token
 end
@@ -309,6 +309,7 @@ class ALabel special Prod end
 class AExpr special Prod end
 class AAssignOp special Prod end
 class AClosureDef special Prod end
+class AClosureId special Prod end
 class AQualified special Prod end
 class ADoc special Prod end
 
@@ -571,8 +572,8 @@ special AParam
 end
 class AClosureDecl
 special AClosureDecl
-    readable writable var _n_kwwith: TKwwith
     readable writable var _n_kwbreak: nullable TKwbreak = null
+    readable writable var _n_bang: TBang
     readable writable var _n_id: TId
     readable writable var _n_signature: ASignature
     readable writable var _n_expr: nullable AExpr = null
@@ -976,12 +977,21 @@ special AAssignOp
 end
 class AClosureDef
 special AClosureDef
-    readable writable var _n_kwwith: TKwwith
-    readable writable var _n_id: List[TId] = new List[TId]
+    readable writable var _n_bang: TBang
+    readable writable var _n_id: AClosureId
+    readable writable var _n_ids: List[TId] = new List[TId]
     readable writable var _n_kwdo: TKwdo
     readable writable var _n_expr: nullable AExpr = null
     readable writable var _n_label: nullable ALabel = null
 end
+class ASimpleClosureId
+special AClosureId
+    readable writable var _n_id: TId
+end
+class ABreakClosureId
+special AClosureId
+    readable writable var _n_kwbreak: TKwbreak
+end
 class AQualified
 special AQualified
     readable writable var _n_id: List[TId] = new List[TId]
index 9540d36..e3caf64 100644 (file)
@@ -180,9 +180,6 @@ end
 class TKwas
 special Token
 end
-class TKwwith
-special Token
-end
 class TKwnullable
 special Token
 end
@@ -267,6 +264,9 @@ end
 class TStarship
 special Token
 end
+class TBang
+special Token
+end
 class TClassid
 special Token
 end
@@ -543,8 +543,8 @@ special Prod
 end
 class AClosureDecl
 special Prod
-    readable writable var _n_kwwith: TKwwith
     readable writable var _n_kwbreak: nullable TKwbreak = null
+    readable writable var _n_bang: TBang
     readable writable var _n_id: TId
     readable writable var _n_signature: ASignature
     readable writable var _n_expr: nullable AExpr = null
@@ -926,11 +926,23 @@ special AAssignOp
 end
 class AClosureDef
 special ALabelable
-    readable writable var _n_kwwith: TKwwith
-    readable writable var _n_id: List[TId] = new List[TId]
+    readable writable var _n_bang: TBang
+    readable writable var _n_id: AClosureId
+    readable writable var _n_ids: List[TId] = new List[TId]
     readable writable var _n_kwdo: TKwdo
     readable writable var _n_expr: nullable AExpr = null
 end
+class AClosureId
+special Prod
+end
+class ASimpleClosureId
+special AClosureId
+    readable writable var _n_id: TId
+end
+class ABreakClosureId
+special AClosureId
+    readable writable var _n_kwbreak: TKwbreak
+end
 class AQualified
 special Prod
     readable writable var _n_id: List[TId] = new List[TId]
index 7130119..08eb1c1 100644 (file)
@@ -3831,11 +3831,6 @@ redef class AParam
     end
 end
 redef class AClosureDecl
-    redef fun n_kwwith=(n)
-    do
-        _n_kwwith = n
-       n.parent = self
-    end
     redef fun n_kwbreak=(n)
     do
         _n_kwbreak = n
@@ -3843,6 +3838,11 @@ redef class AClosureDecl
            n.parent = self
         end
     end
+    redef fun n_bang=(n)
+    do
+        _n_bang = n
+       n.parent = self
+    end
     redef fun n_id=(n)
     do
         _n_id = n
@@ -3864,20 +3864,20 @@ redef class AClosureDecl
     private init empty_init do end
 
     init init_aclosuredecl (
-            n_kwwith: nullable TKwwith,
             n_kwbreak: nullable TKwbreak,
+            n_bang: nullable TBang,
             n_id: nullable TId,
             n_signature: nullable ASignature,
             n_expr: nullable AExpr
     )
     do
         empty_init
-        _n_kwwith = n_kwwith.as(not null)
-       n_kwwith.parent = self
         _n_kwbreak = n_kwbreak
        if n_kwbreak != null then
                n_kwbreak.parent = self
        end
+        _n_bang = n_bang.as(not null)
+       n_bang.parent = self
         _n_id = n_id.as(not null)
        n_id.parent = self
         _n_signature = n_signature.as(not null)
@@ -3890,23 +3890,23 @@ redef class AClosureDecl
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_kwwith == old_child then
+        if _n_kwbreak == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TKwwith
-                _n_kwwith = new_child
+               assert new_child isa TKwbreak
+                _n_kwbreak = new_child
            else
-               abort
+               _n_kwbreak = null
             end
             return
        end
-        if _n_kwbreak == old_child then
+        if _n_bang == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TKwbreak
-                _n_kwbreak = new_child
+               assert new_child isa TBang
+                _n_bang = new_child
            else
-               _n_kwbreak = null
+               abort
             end
             return
        end
@@ -3944,10 +3944,10 @@ redef class AClosureDecl
 
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_kwwith)
         if _n_kwbreak != null then
             v.enter_visit(_n_kwbreak.as(not null))
         end
+        v.enter_visit(_n_bang)
         v.enter_visit(_n_id)
         v.enter_visit(_n_signature)
         if _n_expr != null then
@@ -3957,10 +3957,10 @@ redef class AClosureDecl
 
     redef fun visit_all_reverse(v: Visitor)
     do
-        v.enter_visit(_n_kwwith)
         if _n_kwbreak != null then
             v.enter_visit(_n_kwbreak.as(not null))
         end
+        v.enter_visit(_n_bang)
         v.enter_visit(_n_id)
         v.enter_visit(_n_signature)
         if _n_expr != null then
@@ -9392,9 +9392,14 @@ redef class AMinusAssignOp
     end
 end
 redef class AClosureDef
-    redef fun n_kwwith=(n)
+    redef fun n_bang=(n)
     do
-        _n_kwwith = n
+        _n_bang = n
+       n.parent = self
+    end
+    redef fun n_id=(n)
+    do
+        _n_id = n
        n.parent = self
     end
     redef fun n_kwdo=(n)
@@ -9420,19 +9425,22 @@ redef class AClosureDef
     private init empty_init do end
 
     init init_aclosuredef (
-            n_kwwith: nullable TKwwith,
-            n_id: Collection[Object], # Should be Collection[TId]
+            n_bang: nullable TBang,
+            n_id: nullable AClosureId,
+            n_ids: Collection[Object], # Should be Collection[TId]
             n_kwdo: nullable TKwdo,
             n_expr: nullable AExpr,
             n_label: nullable ALabel
     )
     do
         empty_init
-        _n_kwwith = n_kwwith.as(not null)
-       n_kwwith.parent = self
-       for n in n_id do
+        _n_bang = n_bang.as(not null)
+       n_bang.parent = self
+        _n_id = n_id.as(not null)
+       n_id.parent = self
+       for n in n_ids do
                assert n isa TId
-               _n_id.add(n)
+               _n_ids.add(n)
                n.parent = self
        end
         _n_kwdo = n_kwdo.as(not null)
@@ -9449,24 +9457,34 @@ redef class AClosureDef
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_kwwith == old_child then
+        if _n_bang == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TKwwith
-                _n_kwwith = new_child
+               assert new_child isa TBang
+                _n_bang = new_child
            else
                abort
             end
             return
        end
-        for i in [0.._n_id.length[ do
-            if _n_id[i] == old_child then
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa AClosureId
+                _n_id = new_child
+           else
+               abort
+            end
+            return
+       end
+        for i in [0.._n_ids.length[ do
+            if _n_ids[i] == old_child then
                 if new_child != null then
                    assert new_child isa TId
-                    _n_id[i] = new_child
+                    _n_ids[i] = new_child
                     new_child.parent = self
                 else
-                    _n_id.remove_at(i)
+                    _n_ids.remove_at(i)
                 end
                 return
             end
@@ -9505,8 +9523,9 @@ redef class AClosureDef
 
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_kwwith)
-            for n in _n_id do
+        v.enter_visit(_n_bang)
+        v.enter_visit(_n_id)
+            for n in _n_ids do
                 v.enter_visit(n)
            end
         v.enter_visit(_n_kwdo)
@@ -9520,11 +9539,12 @@ redef class AClosureDef
 
     redef fun visit_all_reverse(v: Visitor)
     do
-        v.enter_visit(_n_kwwith)
+        v.enter_visit(_n_bang)
+        v.enter_visit(_n_id)
        do
-           var i = _n_id.length
+           var i = _n_ids.length
             while i >= 0 do
-                v.enter_visit(_n_id[i])
+                v.enter_visit(_n_ids[i])
                i = i - 1
            end
        end
@@ -9537,6 +9557,90 @@ redef class AClosureDef
         end
     end
 end
+redef class ASimpleClosureId
+    redef fun n_id=(n)
+    do
+        _n_id = n
+       n.parent = self
+    end
+
+    private init empty_init do end
+
+    init init_asimpleclosureid (
+            n_id: nullable TId
+    )
+    do
+        empty_init
+        _n_id = n_id.as(not null)
+       n_id.parent = self
+    end
+
+    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+    do
+        if _n_id == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TId
+                _n_id = new_child
+           else
+               abort
+            end
+            return
+       end
+    end
+
+    redef fun visit_all(v: Visitor)
+    do
+        v.enter_visit(_n_id)
+    end
+
+    redef fun visit_all_reverse(v: Visitor)
+    do
+        v.enter_visit(_n_id)
+    end
+end
+redef class ABreakClosureId
+    redef fun n_kwbreak=(n)
+    do
+        _n_kwbreak = n
+       n.parent = self
+    end
+
+    private init empty_init do end
+
+    init init_abreakclosureid (
+            n_kwbreak: nullable TKwbreak
+    )
+    do
+        empty_init
+        _n_kwbreak = n_kwbreak.as(not null)
+       n_kwbreak.parent = self
+    end
+
+    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+    do
+        if _n_kwbreak == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TKwbreak
+                _n_kwbreak = new_child
+           else
+               abort
+            end
+            return
+       end
+    end
+
+    redef fun visit_all(v: Visitor)
+    do
+        v.enter_visit(_n_kwbreak)
+    end
+
+    redef fun visit_all_reverse(v: Visitor)
+    do
+        v.enter_visit(_n_kwbreak)
+    end
+end
 redef class AQualified
     redef fun n_classid=(n)
     do
index 1e9d1d0..7dae1eb 100644 (file)
@@ -1477,14 +1477,21 @@ abstract class ParserTable
                        action_table_row1467,
                        action_table_row1468,
                        action_table_row1469,
-                       action_table_row1470
+                       action_table_row1470,
+                       action_table_row1471,
+                       action_table_row1472,
+                       action_table_row1473,
+                       action_table_row1474,
+                       action_table_row1475,
+                       action_table_row1476,
+                       action_table_row1477
                ]
        end
 
        private fun action_table_row1: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 0
@@ -1493,13 +1500,13 @@ abstract class ParserTable
        private fun action_table_row2: Array[Int]
        do
                return [
-                               -1, 1, 751
+                               -1, 1, 755
                        ]
        end
        private fun action_table_row3: Array[Int]
        do
                return [
-                               -1, 1, 749
+                               -1, 1, 753
                        ]
        end
        private fun action_table_row4: Array[Int]
@@ -1512,7 +1519,7 @@ abstract class ParserTable
        private fun action_table_row5: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 1
@@ -1521,7 +1528,7 @@ abstract class ParserTable
        private fun action_table_row6: Array[Int]
        do
                return [
-                               -1, 1, 725
+                               -1, 1, 729
                        ]
        end
        private fun action_table_row7: Array[Int]
@@ -1539,13 +1546,13 @@ abstract class ParserTable
        private fun action_table_row9: Array[Int]
        do
                return [
-                               -1, 1, 727
+                               -1, 1, 731
                        ]
        end
        private fun action_table_row10: Array[Int]
        do
                return [
-                               -1, 1, 441,
+                               -1, 1, 445,
                                86, 1, 52
                        ]
        end
@@ -1575,8 +1582,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -1590,7 +1597,7 @@ abstract class ParserTable
        private fun action_table_row12: Array[Int]
        do
                return [
-                               -1, 1, 439,
+                               -1, 1, 443,
                                1, 0, 2
                        ]
        end
@@ -1605,7 +1612,7 @@ abstract class ParserTable
        private fun action_table_row14: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 2
@@ -1614,7 +1621,7 @@ abstract class ParserTable
        private fun action_table_row15: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 4
@@ -1623,7 +1630,7 @@ abstract class ParserTable
        private fun action_table_row16: Array[Int]
        do
                return [
-                               -1, 1, 437,
+                               -1, 1, 441,
                                0, 0, 1,
                                1, 0, 84
                        ]
@@ -1631,7 +1638,7 @@ abstract class ParserTable
        private fun action_table_row17: Array[Int]
        do
                return [
-                               -1, 1, 444,
+                               -1, 1, 448,
                                0, 0, 86
                        ]
        end
@@ -1666,8 +1673,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -1689,7 +1696,7 @@ abstract class ParserTable
        private fun action_table_row21: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 3
@@ -1698,7 +1705,7 @@ abstract class ParserTable
        private fun action_table_row22: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 5
@@ -1707,7 +1714,7 @@ abstract class ParserTable
        private fun action_table_row23: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1715,7 +1722,7 @@ abstract class ParserTable
        private fun action_table_row24: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -1726,11 +1733,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -1774,8 +1781,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -1796,7 +1803,7 @@ abstract class ParserTable
        private fun action_table_row28: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1804,7 +1811,7 @@ abstract class ParserTable
        private fun action_table_row29: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1812,7 +1819,7 @@ abstract class ParserTable
        private fun action_table_row30: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1820,7 +1827,7 @@ abstract class ParserTable
        private fun action_table_row31: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1828,7 +1835,7 @@ abstract class ParserTable
        private fun action_table_row32: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1836,7 +1843,7 @@ abstract class ParserTable
        private fun action_table_row33: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1855,10 +1862,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -1883,11 +1890,11 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               50, 0, 159,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               49, 0, 159,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -1912,11 +1919,11 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               50, 0, 159,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               49, 0, 159,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -1947,10 +1954,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 164,
                                78, 0, 147,
@@ -1964,7 +1971,7 @@ abstract class ParserTable
        private fun action_table_row39: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -1972,7 +1979,7 @@ abstract class ParserTable
        private fun action_table_row40: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -1983,11 +1990,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -2001,25 +2008,25 @@ abstract class ParserTable
        private fun action_table_row41: Array[Int]
        do
                return [
-                               -1, 1, 397
+                               -1, 1, 399
                        ]
        end
        private fun action_table_row42: Array[Int]
        do
                return [
-                               -1, 1, 398
+                               -1, 1, 400
                        ]
        end
        private fun action_table_row43: Array[Int]
        do
                return [
-                               -1, 1, 399
+                               -1, 1, 401
                        ]
        end
        private fun action_table_row44: Array[Int]
        do
                return [
-                               -1, 1, 400
+                               -1, 1, 402
                        ]
        end
        private fun action_table_row45: Array[Int]
@@ -2036,10 +2043,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -2053,7 +2060,7 @@ abstract class ParserTable
        private fun action_table_row46: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2062,16 +2069,16 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 46,
-                               57, 0, 174
+                               56, 0, 174
                        ]
        end
        private fun action_table_row48: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               0, 1, 424,
-                               1, 1, 424,
-                               9, 1, 424,
+                               -1, 1, 421,
+                               0, 1, 426,
+                               1, 1, 426,
+                               9, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -2082,11 +2089,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               47, 1, 424,
-                               49, 0, 105,
-                               51, 0, 106,
-                               57, 0, 175,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               56, 0, 175,
+                               64, 0, 107,
+                               75, 1, 426,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -2095,46 +2102,46 @@ abstract class ParserTable
                                81, 0, 112,
                                82, 0, 113,
                                83, 0, 53,
-                               86, 1, 424
+                               86, 1, 426
                        ]
        end
        private fun action_table_row49: Array[Int]
        do
                return [
-                               -1, 1, 385,
-                               58, 0, 178,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 387,
+                               57, 0, 178,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row50: Array[Int]
        do
                return [
-                               -1, 1, 401
+                               -1, 1, 403
                        ]
        end
        private fun action_table_row51: Array[Int]
        do
                return [
-                               -1, 1, 402
+                               -1, 1, 404
                        ]
        end
        private fun action_table_row52: Array[Int]
        do
                return [
-                               -1, 1, 403
+                               -1, 1, 405
                        ]
        end
        private fun action_table_row53: Array[Int]
        do
                return [
-                               -1, 1, 404
+                               -1, 1, 406
                        ]
        end
        private fun action_table_row54: Array[Int]
        do
                return [
-                               -1, 1, 412
+                               -1, 1, 414
                        ]
        end
        private fun action_table_row55: Array[Int]
@@ -2152,7 +2159,7 @@ abstract class ParserTable
        private fun action_table_row56: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2203,14 +2210,14 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 63,
-                               53, 0, 193,
-                               63, 0, 194
+                               52, 0, 193,
+                               62, 0, 194
                        ]
        end
        private fun action_table_row65: Array[Int]
        do
                return [
-                               -1, 1, 405
+                               -1, 1, 407
                        ]
        end
        private fun action_table_row66: Array[Int]
@@ -2224,7 +2231,7 @@ abstract class ParserTable
        private fun action_table_row67: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2232,7 +2239,7 @@ abstract class ParserTable
        private fun action_table_row68: Array[Int]
        do
                return [
-                               -1, 1, 396
+                               -1, 1, 398
                        ]
        end
        private fun action_table_row69: Array[Int]
@@ -2245,19 +2252,19 @@ abstract class ParserTable
        private fun action_table_row70: Array[Int]
        do
                return [
-                               -1, 1, 747
+                               -1, 1, 751
                        ]
        end
        private fun action_table_row71: Array[Int]
        do
                return [
-                               -1, 1, 430
+                               -1, 1, 434
                        ]
        end
        private fun action_table_row72: Array[Int]
        do
                return [
-                               -1, 1, 432,
+                               -1, 1, 436,
                                76, 0, 46,
                                77, 0, 204
                        ]
@@ -2265,7 +2272,7 @@ abstract class ParserTable
        private fun action_table_row73: Array[Int]
        do
                return [
-                               -1, 1, 438,
+                               -1, 1, 442,
                                0, 0, 1,
                                1, 0, 84
                        ]
@@ -2273,19 +2280,19 @@ abstract class ParserTable
        private fun action_table_row74: Array[Int]
        do
                return [
-                               -1, 1, 436
+                               -1, 1, 440
                        ]
        end
        private fun action_table_row75: Array[Int]
        do
                return [
-                               -1, 1, 435
+                               -1, 1, 439
                        ]
        end
        private fun action_table_row76: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 8
@@ -2294,7 +2301,7 @@ abstract class ParserTable
        private fun action_table_row77: Array[Int]
        do
                return [
-                               -1, 1, 726
+                               -1, 1, 730
                        ]
        end
        private fun action_table_row78: Array[Int]
@@ -2314,7 +2321,7 @@ abstract class ParserTable
        private fun action_table_row80: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 6
@@ -2329,7 +2336,7 @@ abstract class ParserTable
        private fun action_table_row82: Array[Int]
        do
                return [
-                               -1, 1, 728
+                               -1, 1, 732
                        ]
        end
        private fun action_table_row83: Array[Int]
@@ -2357,8 +2364,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -2380,26 +2387,26 @@ abstract class ParserTable
        private fun action_table_row85: Array[Int]
        do
                return [
-                               -1, 1, 750
+                               -1, 1, 754
                        ]
        end
        private fun action_table_row86: Array[Int]
        do
                return [
-                               -1, 1, 442,
+                               -1, 1, 446,
                                0, 0, 86
                        ]
        end
        private fun action_table_row87: Array[Int]
        do
                return [
-                               -1, 1, 752
+                               -1, 1, 756
                        ]
        end
        private fun action_table_row88: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 10
@@ -2422,7 +2429,7 @@ abstract class ParserTable
        private fun action_table_row91: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 7
@@ -2445,7 +2452,7 @@ abstract class ParserTable
        private fun action_table_row94: Array[Int]
        do
                return [
-                               -1, 1, 441
+                               -1, 1, 445
                        ]
        end
        private fun action_table_row95: Array[Int]
@@ -2458,14 +2465,14 @@ abstract class ParserTable
        private fun action_table_row96: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row97: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2473,7 +2480,7 @@ abstract class ParserTable
        private fun action_table_row98: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2481,7 +2488,7 @@ abstract class ParserTable
        private fun action_table_row99: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2489,7 +2496,7 @@ abstract class ParserTable
        private fun action_table_row100: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2497,32 +2504,32 @@ abstract class ParserTable
        private fun action_table_row101: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row102: Array[Int]
        do
                return [
-                               -1, 1, 656
+                               -1, 1, 660
                        ]
        end
        private fun action_table_row103: Array[Int]
        do
                return [
-                               -1, 1, 657
+                               -1, 1, 661
                        ]
        end
        private fun action_table_row104: Array[Int]
        do
                return [
-                               -1, 1, 658
+                               -1, 1, 662
                        ]
        end
        private fun action_table_row105: Array[Int]
        do
                return [
-                               -1, 1, 659
+                               -1, 1, 663
                        ]
        end
        private fun action_table_row106: Array[Int]
@@ -2549,7 +2556,7 @@ abstract class ParserTable
        private fun action_table_row107: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2557,7 +2564,7 @@ abstract class ParserTable
        private fun action_table_row108: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2565,51 +2572,51 @@ abstract class ParserTable
        private fun action_table_row109: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row110: Array[Int]
        do
                return [
-                               -1, 1, 648
+                               -1, 1, 652
                        ]
        end
        private fun action_table_row111: Array[Int]
        do
                return [
-                               -1, 1, 660
+                               -1, 1, 664
                        ]
        end
        private fun action_table_row112: Array[Int]
        do
                return [
-                               -1, 1, 661
+                               -1, 1, 665
                        ]
        end
        private fun action_table_row113: Array[Int]
        do
                return [
-                               -1, 1, 662
+                               -1, 1, 666
                        ]
        end
        private fun action_table_row114: Array[Int]
        do
                return [
-                               -1, 1, 663
+                               -1, 1, 667
                        ]
        end
        private fun action_table_row115: Array[Int]
        do
                return [
-                               -1, 1, 664
+                               -1, 1, 668
                        ]
        end
        private fun action_table_row116: Array[Int]
        do
                return [
-                               -1, 1, 391
+                               -1, 1, 393
                        ]
        end
        private fun action_table_row117: Array[Int]
@@ -2628,13 +2635,13 @@ abstract class ParserTable
        private fun action_table_row119: Array[Int]
        do
                return [
-                               -1, 1, 422
+                               -1, 1, 424
                        ]
        end
        private fun action_table_row120: Array[Int]
        do
                return [
-                               -1, 1, 616,
+                               -1, 1, 620,
                                30, 0, 239,
                                31, 0, 240
                        ]
@@ -2642,58 +2649,58 @@ abstract class ParserTable
        private fun action_table_row121: Array[Int]
        do
                return [
-                               -1, 1, 618
+                               -1, 1, 622
                        ]
        end
        private fun action_table_row122: Array[Int]
        do
                return [
-                               -1, 1, 621
+                               -1, 1, 625
                        ]
        end
        private fun action_table_row123: Array[Int]
        do
                return [
-                               -1, 1, 623,
+                               -1, 1, 627,
                                14, 0, 241,
                                39, 0, 242,
-                               64, 0, 243,
-                               65, 0, 244,
-                               69, 0, 245,
-                               70, 0, 246,
-                               71, 0, 247,
-                               72, 0, 248,
-                               73, 0, 249,
-                               74, 0, 250,
-                               75, 0, 251
+                               63, 0, 243,
+                               64, 0, 244,
+                               68, 0, 245,
+                               69, 0, 246,
+                               70, 0, 247,
+                               71, 0, 248,
+                               72, 0, 249,
+                               73, 0, 250,
+                               74, 0, 251
                        ]
        end
        private fun action_table_row124: Array[Int]
        do
                return [
-                               -1, 1, 633,
-                               66, 0, 252,
-                               67, 0, 253,
-                               68, 0, 254
+                               -1, 1, 637,
+                               65, 0, 252,
+                               66, 0, 253,
+                               67, 0, 254
                        ]
        end
        private fun action_table_row125: Array[Int]
        do
                return [
-                               -1, 1, 636
+                               -1, 1, 640
                        ]
        end
        private fun action_table_row126: Array[Int]
        do
                return [
-                               -1, 1, 640
+                               -1, 1, 644
                        ]
        end
        private fun action_table_row127: Array[Int]
        do
                return [
-                               -1, 1, 643,
-                               63, 0, 255
+                               -1, 1, 647,
+                               62, 0, 255
                        ]
        end
        private fun action_table_row128: Array[Int]
@@ -2710,14 +2717,14 @@ abstract class ParserTable
        private fun action_table_row129: Array[Int]
        do
                return [
-                               -1, 1, 314,
-                               50, 0, 159
+                               -1, 1, 316,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row130: Array[Int]
        do
                return [
-                               -1, 1, 319
+                               -1, 1, 321
                        ]
        end
        private fun action_table_row131: Array[Int]
@@ -2742,8 +2749,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -2757,9 +2764,9 @@ abstract class ParserTable
        private fun action_table_row132: Array[Int]
        do
                return [
-                               -1, 1, 295,
-                               56, 0, 261,
-                               58, 0, 262
+                               -1, 1, 297,
+                               55, 0, 261,
+                               57, 0, 262
                        ]
        end
        private fun action_table_row133: Array[Int]
@@ -2794,10 +2801,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -2822,10 +2829,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -2846,14 +2853,14 @@ abstract class ParserTable
        private fun action_table_row139: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row140: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2861,7 +2868,7 @@ abstract class ParserTable
        private fun action_table_row141: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2869,7 +2876,7 @@ abstract class ParserTable
        private fun action_table_row142: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2877,7 +2884,7 @@ abstract class ParserTable
        private fun action_table_row143: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2885,8 +2892,8 @@ abstract class ParserTable
        private fun action_table_row144: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row145: Array[Int]
@@ -2900,8 +2907,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 271,
@@ -2915,7 +2922,7 @@ abstract class ParserTable
        private fun action_table_row146: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -2923,15 +2930,15 @@ abstract class ParserTable
        private fun action_table_row147: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row148: Array[Int]
        do
                return [
-                               -1, 1, 385
+                               -1, 1, 387
                        ]
        end
        private fun action_table_row149: Array[Int]
@@ -2943,13 +2950,13 @@ abstract class ParserTable
        private fun action_table_row150: Array[Int]
        do
                return [
-                               -1, 1, 349
+                               -1, 1, 351
                        ]
        end
        private fun action_table_row151: Array[Int]
        do
                return [
-                               -1, 1, 353,
+                               -1, 1, 355,
                                30, 0, 275,
                                31, 0, 276
                        ]
@@ -2957,59 +2964,59 @@ abstract class ParserTable
        private fun action_table_row152: Array[Int]
        do
                return [
-                               -1, 1, 355
+                               -1, 1, 357
                        ]
        end
        private fun action_table_row153: Array[Int]
        do
                return [
-                               -1, 1, 358
+                               -1, 1, 360
                        ]
        end
        private fun action_table_row154: Array[Int]
        do
                return [
-                               -1, 1, 360,
+                               -1, 1, 362,
                                14, 0, 277,
                                39, 0, 278,
-                               64, 0, 279,
-                               65, 0, 280,
-                               69, 0, 281,
-                               70, 0, 282,
-                               71, 0, 283,
-                               72, 0, 284,
-                               73, 0, 285,
-                               74, 0, 286,
-                               75, 0, 287
+                               63, 0, 279,
+                               64, 0, 280,
+                               68, 0, 281,
+                               69, 0, 282,
+                               70, 0, 283,
+                               71, 0, 284,
+                               72, 0, 285,
+                               73, 0, 286,
+                               74, 0, 287
                        ]
        end
        private fun action_table_row155: Array[Int]
        do
                return [
-                               -1, 1, 370,
-                               66, 0, 288,
-                               67, 0, 289,
-                               68, 0, 290
+                               -1, 1, 372,
+                               65, 0, 288,
+                               66, 0, 289,
+                               67, 0, 290
                        ]
        end
        private fun action_table_row156: Array[Int]
        do
                return [
-                               -1, 1, 373
+                               -1, 1, 375
                        ]
        end
        private fun action_table_row157: Array[Int]
        do
                return [
-                               -1, 1, 377
+                               -1, 1, 379
                        ]
        end
        private fun action_table_row158: Array[Int]
        do
                return [
-                               -1, 1, 380,
-                               53, 0, 193,
-                               63, 0, 291
+                               -1, 1, 382,
+                               52, 0, 193,
+                               62, 0, 291
                        ]
        end
        private fun action_table_row159: Array[Int]
@@ -3040,10 +3047,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -3074,10 +3081,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -3097,10 +3104,10 @@ abstract class ParserTable
        private fun action_table_row165: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               56, 0, 297,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               55, 0, 297,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row166: Array[Int]
@@ -3117,10 +3124,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -3134,21 +3141,21 @@ abstract class ParserTable
        private fun action_table_row167: Array[Int]
        do
                return [
-                               -1, 1, 346
+                               -1, 1, 348
                        ]
        end
        private fun action_table_row168: Array[Int]
        do
                return [
                                -1, 3, 167,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
        private fun action_table_row169: Array[Int]
        do
                return [
-                               -1, 1, 388
+                               -1, 1, 390
                        ]
        end
        private fun action_table_row170: Array[Int]
@@ -3160,24 +3167,24 @@ abstract class ParserTable
        private fun action_table_row171: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row172: Array[Int]
        do
                return [
                                -1, 3, 171,
-                               52, 0, 303
+                               51, 0, 303
                        ]
        end
        private fun action_table_row173: Array[Int]
        do
                return [
-                               -1, 1, 380,
-                               53, 0, 193,
-                               63, 0, 304
+                               -1, 1, 382,
+                               52, 0, 193,
+                               62, 0, 304
                        ]
        end
        private fun action_table_row174: Array[Int]
@@ -3194,10 +3201,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -3211,7 +3218,7 @@ abstract class ParserTable
        private fun action_table_row175: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3219,7 +3226,7 @@ abstract class ParserTable
        private fun action_table_row176: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3227,17 +3234,17 @@ abstract class ParserTable
        private fun action_table_row177: Array[Int]
        do
                return [
-                               -1, 1, 387,
-                               58, 0, 309,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 389,
+                               57, 0, 309,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row178: Array[Int]
        do
                return [
                                -1, 1, 261,
-                               47, 0, 311
+                               75, 0, 311
                        ]
        end
        private fun action_table_row179: Array[Int]
@@ -3254,10 +3261,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -3271,13 +3278,13 @@ abstract class ParserTable
        private fun action_table_row180: Array[Int]
        do
                return [
-                               -1, 1, 309
+                               -1, 1, 311
                        ]
        end
        private fun action_table_row181: Array[Int]
        do
                return [
-                               -1, 1, 310
+                               -1, 1, 312
                        ]
        end
        private fun action_table_row182: Array[Int]
@@ -3294,10 +3301,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -3311,7 +3318,7 @@ abstract class ParserTable
        private fun action_table_row183: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3345,26 +3352,26 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 187,
-                               53, 0, 319,
-                               64, 0, 320,
-                               65, 0, 321,
-                               66, 0, 322,
-                               67, 0, 323,
-                               68, 0, 324,
-                               69, 0, 325,
-                               70, 0, 326,
-                               71, 0, 327,
-                               72, 0, 328,
-                               73, 0, 329,
-                               74, 0, 330,
-                               75, 0, 331,
+                               52, 0, 319,
+                               63, 0, 320,
+                               64, 0, 321,
+                               65, 0, 322,
+                               66, 0, 323,
+                               67, 0, 324,
+                               68, 0, 325,
+                               69, 0, 326,
+                               70, 0, 327,
+                               71, 0, 328,
+                               72, 0, 329,
+                               73, 0, 330,
+                               74, 0, 331,
                                77, 0, 332
                        ]
        end
        private fun action_table_row189: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3372,13 +3379,13 @@ abstract class ParserTable
        private fun action_table_row190: Array[Int]
        do
                return [
-                               -1, 1, 741
+                               -1, 1, 745
                        ]
        end
        private fun action_table_row191: Array[Int]
        do
                return [
-                               -1, 1, 441,
+                               -1, 1, 445,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -3396,8 +3403,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -3417,7 +3424,7 @@ abstract class ParserTable
        private fun action_table_row193: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3425,7 +3432,7 @@ abstract class ParserTable
        private fun action_table_row194: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3433,7 +3440,7 @@ abstract class ParserTable
        private fun action_table_row195: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3441,34 +3448,34 @@ abstract class ParserTable
        private fun action_table_row196: Array[Int]
        do
                return [
-                               -1, 1, 392,
-                               58, 0, 340,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 394,
+                               57, 0, 340,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row197: Array[Int]
        do
                return [
-                               -1, 1, 414
+                               -1, 1, 416
                        ]
        end
        private fun action_table_row198: Array[Int]
        do
                return [
-                               -1, 1, 415
+                               -1, 1, 417
                        ]
        end
        private fun action_table_row199: Array[Int]
        do
                return [
-                               -1, 1, 743
+                               -1, 1, 747
                        ]
        end
        private fun action_table_row200: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3476,7 +3483,7 @@ abstract class ParserTable
        private fun action_table_row201: Array[Int]
        do
                return [
-                               -1, 1, 409
+                               -1, 1, 411
                        ]
        end
        private fun action_table_row202: Array[Int]
@@ -3501,10 +3508,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -3518,7 +3525,7 @@ abstract class ParserTable
        private fun action_table_row204: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -3529,11 +3536,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -3548,25 +3555,25 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 204,
-                               57, 0, 175
+                               56, 0, 175
                        ]
        end
        private fun action_table_row206: Array[Int]
        do
                return [
-                               -1, 1, 748
+                               -1, 1, 752
                        ]
        end
        private fun action_table_row207: Array[Int]
        do
                return [
-                               -1, 1, 431
+                               -1, 1, 435
                        ]
        end
        private fun action_table_row208: Array[Int]
        do
                return [
-                               -1, 1, 443,
+                               -1, 1, 447,
                                0, 0, 86
                        ]
        end
@@ -3601,8 +3608,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -3616,7 +3623,7 @@ abstract class ParserTable
        private fun action_table_row211: Array[Int]
        do
                return [
-                               -1, 1, 753
+                               -1, 1, 757
                        ]
        end
        private fun action_table_row212: Array[Int]
@@ -3630,7 +3637,7 @@ abstract class ParserTable
        private fun action_table_row213: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 9
@@ -3639,7 +3646,7 @@ abstract class ParserTable
        private fun action_table_row214: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 12
@@ -3673,7 +3680,7 @@ abstract class ParserTable
        private fun action_table_row218: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 16
@@ -3688,7 +3695,7 @@ abstract class ParserTable
        private fun action_table_row220: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 11
@@ -3697,7 +3704,7 @@ abstract class ParserTable
        private fun action_table_row221: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 14
@@ -3720,7 +3727,7 @@ abstract class ParserTable
        private fun action_table_row224: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 18
@@ -3737,7 +3744,7 @@ abstract class ParserTable
        private fun action_table_row226: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3745,7 +3752,7 @@ abstract class ParserTable
        private fun action_table_row227: Array[Int]
        do
                return [
-                               -1, 1, 654
+                               -1, 1, 658
                        ]
        end
        private fun action_table_row228: Array[Int]
@@ -3762,10 +3769,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -3789,8 +3796,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -3805,7 +3812,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 229,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
@@ -3821,8 +3828,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -3836,13 +3843,13 @@ abstract class ParserTable
        private fun action_table_row232: Array[Int]
        do
                return [
-                               -1, 1, 651
+                               -1, 1, 655
                        ]
        end
        private fun action_table_row233: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3850,15 +3857,15 @@ abstract class ParserTable
        private fun action_table_row234: Array[Int]
        do
                return [
-                               -1, 1, 646,
-                               63, 1, 648
+                               -1, 1, 650,
+                               62, 1, 652
                        ]
        end
        private fun action_table_row235: Array[Int]
        do
                return [
                                -1, 3, 234,
-                               63, 0, 371
+                               62, 0, 371
                        ]
        end
        private fun action_table_row236: Array[Int]
@@ -3875,11 +3882,11 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               52, 0, 372,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               51, 0, 372,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -3902,8 +3909,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -3917,20 +3924,20 @@ abstract class ParserTable
        private fun action_table_row238: Array[Int]
        do
                return [
-                               -1, 1, 650
+                               -1, 1, 654
                        ]
        end
        private fun action_table_row239: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row240: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3938,7 +3945,7 @@ abstract class ParserTable
        private fun action_table_row241: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3946,7 +3953,7 @@ abstract class ParserTable
        private fun action_table_row242: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3954,7 +3961,7 @@ abstract class ParserTable
        private fun action_table_row243: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3962,7 +3969,7 @@ abstract class ParserTable
        private fun action_table_row244: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3970,7 +3977,7 @@ abstract class ParserTable
        private fun action_table_row245: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3978,7 +3985,7 @@ abstract class ParserTable
        private fun action_table_row246: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3986,7 +3993,7 @@ abstract class ParserTable
        private fun action_table_row247: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -3994,7 +4001,7 @@ abstract class ParserTable
        private fun action_table_row248: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4002,7 +4009,7 @@ abstract class ParserTable
        private fun action_table_row249: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4010,7 +4017,7 @@ abstract class ParserTable
        private fun action_table_row250: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4018,7 +4025,7 @@ abstract class ParserTable
        private fun action_table_row251: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4026,7 +4033,7 @@ abstract class ParserTable
        private fun action_table_row252: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4034,7 +4041,7 @@ abstract class ParserTable
        private fun action_table_row253: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4042,7 +4049,7 @@ abstract class ParserTable
        private fun action_table_row254: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4050,7 +4057,7 @@ abstract class ParserTable
        private fun action_table_row255: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4058,7 +4065,7 @@ abstract class ParserTable
        private fun action_table_row256: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4067,26 +4074,26 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 256,
-                               53, 0, 319,
-                               64, 0, 320,
-                               65, 0, 321,
-                               66, 0, 322,
-                               67, 0, 323,
-                               68, 0, 324,
-                               69, 0, 325,
-                               70, 0, 326,
-                               71, 0, 327,
-                               72, 0, 328,
-                               73, 0, 329,
-                               74, 0, 330,
-                               75, 0, 331,
+                               52, 0, 319,
+                               63, 0, 320,
+                               64, 0, 321,
+                               65, 0, 322,
+                               66, 0, 323,
+                               67, 0, 324,
+                               68, 0, 325,
+                               69, 0, 326,
+                               70, 0, 327,
+                               71, 0, 328,
+                               72, 0, 329,
+                               73, 0, 330,
+                               74, 0, 331,
                                77, 0, 332
                        ]
        end
        private fun action_table_row258: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4094,14 +4101,14 @@ abstract class ParserTable
        private fun action_table_row259: Array[Int]
        do
                return [
-                               -1, 1, 318
+                               -1, 1, 320
                        ]
        end
        private fun action_table_row260: Array[Int]
        do
                return [
-                               -1, 1, 313,
-                               50, 0, 159
+                               -1, 1, 315,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row261: Array[Int]
@@ -4115,7 +4122,7 @@ abstract class ParserTable
        private fun action_table_row262: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4123,7 +4130,7 @@ abstract class ParserTable
        private fun action_table_row263: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4131,14 +4138,14 @@ abstract class ParserTable
        private fun action_table_row264: Array[Int]
        do
                return [
-                               -1, 1, 296,
-                               58, 0, 400
+                               -1, 1, 298,
+                               57, 0, 400
                        ]
        end
        private fun action_table_row265: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4146,7 +4153,7 @@ abstract class ParserTable
        private fun action_table_row266: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4154,7 +4161,7 @@ abstract class ParserTable
        private fun action_table_row267: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4173,10 +4180,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -4200,10 +4207,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -4218,7 +4225,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 269,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
@@ -4234,10 +4241,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -4251,17 +4258,17 @@ abstract class ParserTable
        private fun action_table_row272: Array[Int]
        do
                return [
-                               -1, 1, 383,
-                               53, 1, 385,
-                               63, 1, 385
+                               -1, 1, 385,
+                               52, 1, 387,
+                               62, 1, 387
                        ]
        end
        private fun action_table_row273: Array[Int]
        do
                return [
                                -1, 3, 272,
-                               53, 0, 193,
-                               63, 0, 408
+                               52, 0, 193,
+                               62, 0, 408
                        ]
        end
        private fun action_table_row274: Array[Int]
@@ -4276,10 +4283,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -4293,14 +4300,14 @@ abstract class ParserTable
        private fun action_table_row275: Array[Int]
        do
                return [
-                               -1, 1, 387,
-                               47, 0, 311
+                               -1, 1, 389,
+                               75, 0, 311
                        ]
        end
        private fun action_table_row276: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4308,7 +4315,7 @@ abstract class ParserTable
        private fun action_table_row277: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4316,7 +4323,7 @@ abstract class ParserTable
        private fun action_table_row278: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4324,7 +4331,7 @@ abstract class ParserTable
        private fun action_table_row279: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4332,7 +4339,7 @@ abstract class ParserTable
        private fun action_table_row280: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4340,7 +4347,7 @@ abstract class ParserTable
        private fun action_table_row281: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4348,7 +4355,7 @@ abstract class ParserTable
        private fun action_table_row282: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4356,7 +4363,7 @@ abstract class ParserTable
        private fun action_table_row283: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4364,7 +4371,7 @@ abstract class ParserTable
        private fun action_table_row284: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4372,7 +4379,7 @@ abstract class ParserTable
        private fun action_table_row285: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4380,7 +4387,7 @@ abstract class ParserTable
        private fun action_table_row286: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4388,7 +4395,7 @@ abstract class ParserTable
        private fun action_table_row287: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4396,7 +4403,7 @@ abstract class ParserTable
        private fun action_table_row288: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4404,7 +4411,7 @@ abstract class ParserTable
        private fun action_table_row289: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4412,7 +4419,7 @@ abstract class ParserTable
        private fun action_table_row290: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4420,7 +4427,7 @@ abstract class ParserTable
        private fun action_table_row291: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4428,7 +4435,7 @@ abstract class ParserTable
        private fun action_table_row292: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4436,15 +4443,15 @@ abstract class ParserTable
        private fun action_table_row293: Array[Int]
        do
                return [
-                               -1, 1, 392,
-                               47, 0, 311
+                               -1, 1, 394,
+                               75, 0, 311
                        ]
        end
        private fun action_table_row294: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row295: Array[Int]
@@ -4468,13 +4475,13 @@ abstract class ParserTable
        private fun action_table_row298: Array[Int]
        do
                return [
-                               -1, 1, 348
+                               -1, 1, 350
                        ]
        end
        private fun action_table_row299: Array[Int]
        do
                return [
-                               -1, 1, 347
+                               -1, 1, 349
                        ]
        end
        private fun action_table_row300: Array[Int]
@@ -4488,32 +4495,32 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 228,
-                               53, 0, 430
+                               52, 0, 430
                        ]
        end
        private fun action_table_row302: Array[Int]
        do
                return [
                                -1, 3, 301,
-                               63, 0, 431
+                               62, 0, 431
                        ]
        end
        private fun action_table_row303: Array[Int]
        do
                return [
-                               -1, 1, 387
+                               -1, 1, 389
                        ]
        end
        private fun action_table_row304: Array[Int]
        do
                return [
-                               -1, 1, 406
+                               -1, 1, 408
                        ]
        end
        private fun action_table_row305: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4521,13 +4528,13 @@ abstract class ParserTable
        private fun action_table_row306: Array[Int]
        do
                return [
-                               -1, 1, 392
+                               -1, 1, 394
                        ]
        end
        private fun action_table_row307: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4535,13 +4542,13 @@ abstract class ParserTable
        private fun action_table_row308: Array[Int]
        do
                return [
-                               -1, 1, 434
+                               -1, 1, 438
                        ]
        end
        private fun action_table_row309: Array[Int]
        do
                return [
-                               -1, 1, 433
+                               -1, 1, 437
                        ]
        end
        private fun action_table_row310: Array[Int]
@@ -4558,10 +4565,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -4586,10 +4593,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -4604,7 +4611,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 311,
-                               15, 0, 436,
+                               35, 0, 436,
                                77, 0, 437
                        ]
        end
@@ -4624,19 +4631,19 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 314,
-                               47, 0, 311
+                               75, 0, 311
                        ]
        end
        private fun action_table_row316: Array[Int]
        do
                return [
-                               -1, 1, 300
+                               -1, 1, 302
                        ]
        end
        private fun action_table_row317: Array[Int]
        do
                return [
-                               -1, 1, 305
+                               -1, 1, 307
                        ]
        end
        private fun action_table_row318: Array[Int]
@@ -4657,7 +4664,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 319,
-                               54, 0, 442
+                               53, 0, 442
                        ]
        end
        private fun action_table_row321: Array[Int]
@@ -4736,17 +4743,17 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 188,
-                               58, 0, 443
+                               57, 0, 443
                        ]
        end
        private fun action_table_row334: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
        private fun action_table_row335: Array[Int]
@@ -4765,7 +4772,7 @@ abstract class ParserTable
        private fun action_table_row337: Array[Int]
        do
                return [
-                               -1, 1, 742
+                               -1, 1, 746
                        ]
        end
        private fun action_table_row338: Array[Int]
@@ -4788,10 +4795,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -4826,10 +4833,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -4854,10 +4861,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -4882,10 +4889,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -4899,19 +4906,19 @@ abstract class ParserTable
        private fun action_table_row344: Array[Int]
        do
                return [
-                               -1, 1, 744
+                               -1, 1, 748
                        ]
        end
        private fun action_table_row345: Array[Int]
        do
                return [
-                               -1, 1, 410
+                               -1, 1, 412
                        ]
        end
        private fun action_table_row346: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -4919,7 +4926,7 @@ abstract class ParserTable
        private fun action_table_row347: Array[Int]
        do
                return [
-                               -1, 1, 389
+                               -1, 1, 391
                        ]
        end
        private fun action_table_row348: Array[Int]
@@ -4947,7 +4954,7 @@ abstract class ParserTable
        private fun action_table_row351: Array[Int]
        do
                return [
-                               -1, 1, 445
+                               -1, 1, 449
                        ]
        end
        private fun action_table_row352: Array[Int]
@@ -4959,7 +4966,7 @@ abstract class ParserTable
        private fun action_table_row353: Array[Int]
        do
                return [
-                               -1, 1, 754
+                               -1, 1, 758
                        ]
        end
        private fun action_table_row354: Array[Int]
@@ -4971,7 +4978,7 @@ abstract class ParserTable
        private fun action_table_row355: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 13
@@ -4980,7 +4987,7 @@ abstract class ParserTable
        private fun action_table_row356: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 20
@@ -4995,7 +5002,7 @@ abstract class ParserTable
        private fun action_table_row358: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 17
@@ -5016,7 +5023,7 @@ abstract class ParserTable
        private fun action_table_row361: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 15
@@ -5025,7 +5032,7 @@ abstract class ParserTable
        private fun action_table_row362: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 22
@@ -5040,7 +5047,7 @@ abstract class ParserTable
        private fun action_table_row364: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 19
@@ -5066,11 +5073,11 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               52, 0, 469,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               51, 0, 469,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5084,7 +5091,7 @@ abstract class ParserTable
        private fun action_table_row367: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -5092,35 +5099,35 @@ abstract class ParserTable
        private fun action_table_row368: Array[Int]
        do
                return [
-                               -1, 1, 622
+                               -1, 1, 626
                        ]
        end
        private fun action_table_row369: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               63, 0, 472
+                               -1, 1, 421,
+                               50, 0, 225,
+                               62, 0, 472
                        ]
        end
        private fun action_table_row370: Array[Int]
        do
                return [
-                               -1, 1, 642
+                               -1, 1, 646
                        ]
        end
        private fun action_table_row371: Array[Int]
        do
                return [
                                -1, 3, 370,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
        private fun action_table_row372: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -5128,18 +5135,18 @@ abstract class ParserTable
        private fun action_table_row373: Array[Int]
        do
                return [
-                               -1, 1, 423,
-                               53, 1, 418,
-                               58, 1, 418,
-                               59, 1, 418,
-                               60, 1, 418,
-                               63, 1, 418
+                               -1, 1, 425,
+                               52, 1, 420,
+                               57, 1, 420,
+                               58, 1, 420,
+                               59, 1, 420,
+                               62, 1, 420
                        ]
        end
        private fun action_table_row374: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -5147,13 +5154,13 @@ abstract class ParserTable
        private fun action_table_row375: Array[Int]
        do
                return [
-                               -1, 1, 641
+                               -1, 1, 645
                        ]
        end
        private fun action_table_row376: Array[Int]
        do
                return [
-                               -1, 1, 652
+                               -1, 1, 656
                        ]
        end
        private fun action_table_row377: Array[Int]
@@ -5169,8 +5176,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5194,8 +5201,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5218,8 +5225,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5234,7 +5241,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 379,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
@@ -5250,8 +5257,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5274,8 +5281,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5298,8 +5305,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5322,8 +5329,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5346,8 +5353,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5370,8 +5377,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5394,8 +5401,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5418,8 +5425,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5442,8 +5449,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5466,8 +5473,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5490,8 +5497,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5514,8 +5521,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -5539,11 +5546,11 @@ abstract class ParserTable
        private fun action_table_row394: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
        private fun action_table_row395: Array[Int]
@@ -5556,7 +5563,7 @@ abstract class ParserTable
        private fun action_table_row396: Array[Int]
        do
                return [
-                               -1, 1, 317
+                               -1, 1, 319
                        ]
        end
        private fun action_table_row397: Array[Int]
@@ -5581,8 +5588,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -5605,7 +5612,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 398,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
@@ -5623,10 +5630,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -5640,7 +5647,7 @@ abstract class ParserTable
        private fun action_table_row401: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -5669,7 +5676,7 @@ abstract class ParserTable
        private fun action_table_row405: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -5677,27 +5684,27 @@ abstract class ParserTable
        private fun action_table_row406: Array[Int]
        do
                return [
-                               -1, 1, 359
+                               -1, 1, 361
                        ]
        end
        private fun action_table_row407: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               63, 0, 431
+                               -1, 1, 421,
+                               50, 0, 225,
+                               62, 0, 431
                        ]
        end
        private fun action_table_row408: Array[Int]
        do
                return [
-                               -1, 1, 379
+                               -1, 1, 381
                        ]
        end
        private fun action_table_row409: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -5705,13 +5712,13 @@ abstract class ParserTable
        private fun action_table_row410: Array[Int]
        do
                return [
-                               -1, 1, 378
+                               -1, 1, 380
                        ]
        end
        private fun action_table_row411: Array[Int]
        do
                return [
-                               -1, 1, 351
+                               -1, 1, 353
                        ]
        end
        private fun action_table_row412: Array[Int]
@@ -5727,10 +5734,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5754,10 +5761,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5780,10 +5787,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5798,7 +5805,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 414,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
@@ -5814,10 +5821,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5840,10 +5847,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5866,10 +5873,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5892,10 +5899,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5918,10 +5925,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5944,10 +5951,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5970,10 +5977,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -5996,10 +6003,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -6022,10 +6029,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -6048,10 +6055,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -6074,10 +6081,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -6100,10 +6107,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -6127,20 +6134,20 @@ abstract class ParserTable
        private fun action_table_row429: Array[Int]
        do
                return [
-                               -1, 1, 352
+                               -1, 1, 354
                        ]
        end
        private fun action_table_row430: Array[Int]
        do
                return [
                                -1, 1, 229,
-                               53, 0, 529
+                               52, 0, 529
                        ]
        end
        private fun action_table_row431: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6148,7 +6155,7 @@ abstract class ParserTable
        private fun action_table_row432: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6167,72 +6174,42 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 433,
-                               54, 0, 533,
-                               55, 0, 534,
-                               62, 0, 535
+                               53, 0, 533,
+                               54, 0, 534,
+                               61, 0, 535
                        ]
        end
        private fun action_table_row435: Array[Int]
        do
                return [
-                               -1, 1, 302
+                               -1, 1, 304
                        ]
        end
        private fun action_table_row436: Array[Int]
        do
                return [
-                               -1, 1, 307
+                               -1, 1, 309
                        ]
        end
        private fun action_table_row437: Array[Int]
        do
                return [
-                               -1, 3, 436,
-                               0, 0, 1,
-                               1, 0, 2,
-                               9, 0, 538,
-                               12, 0, 23,
-                               15, 0, 25,
-                               18, 0, 26,
-                               24, 0, 30,
-                               27, 0, 31,
-                               28, 0, 32,
-                               33, 0, 33,
-                               34, 0, 34,
-                               35, 0, 35,
-                               36, 0, 36,
-                               37, 0, 37,
-                               38, 0, 38,
-                               41, 0, 39,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 47,
-                               78, 0, 48,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
+                               -1, 1, 296
                        ]
        end
        private fun action_table_row438: Array[Int]
        do
                return [
-                               -1, 1, 428
+                               -1, 1, 295
                        ]
        end
        private fun action_table_row439: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2,
-                               15, 0, 541
+                               -1, 3, 438,
+                               15, 0, 538,
+                               50, 0, 539,
+                               77, 0, 540
                        ]
        end
        private fun action_table_row440: Array[Int]
@@ -6261,7 +6238,7 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 200,
-                               58, 0, 545
+                               57, 0, 545
                        ]
        end
        private fun action_table_row444: Array[Int]
@@ -6273,7 +6250,7 @@ abstract class ParserTable
        private fun action_table_row445: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6289,10 +6266,10 @@ abstract class ParserTable
        private fun action_table_row447: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               56, 0, 261
+                               55, 0, 261
                        ]
        end
        private fun action_table_row448: Array[Int]
@@ -6304,7 +6281,7 @@ abstract class ParserTable
        private fun action_table_row449: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6313,22 +6290,23 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 208,
-                               47, 0, 554
+                               35, 0, 554,
+                               75, 0, 555
                        ]
        end
        private fun action_table_row451: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               53, 0, 557
+                               52, 0, 558
                        ]
        end
        private fun action_table_row452: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6336,7 +6314,7 @@ abstract class ParserTable
        private fun action_table_row453: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -6347,11 +6325,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -6365,7 +6343,7 @@ abstract class ParserTable
        private fun action_table_row454: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6373,10 +6351,10 @@ abstract class ParserTable
        private fun action_table_row455: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               0, 1, 424,
-                               1, 1, 424,
-                               9, 1, 424,
+                               -1, 1, 421,
+                               0, 1, 426,
+                               1, 1, 426,
+                               9, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -6387,10 +6365,10 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               47, 1, 424,
-                               49, 0, 105,
-                               51, 0, 106,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               64, 0, 107,
+                               75, 1, 426,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -6399,34 +6377,34 @@ abstract class ParserTable
                                81, 0, 112,
                                82, 0, 113,
                                83, 0, 53,
-                               86, 1, 424
+                               86, 1, 426
                        ]
        end
        private fun action_table_row456: Array[Int]
        do
                return [
-                               -1, 1, 384,
-                               58, 0, 569,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 386,
+                               57, 0, 570,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row457: Array[Int]
        do
                return [
-                               -1, 1, 303
+                               -1, 1, 305
                        ]
        end
        private fun action_table_row458: Array[Int]
        do
                return [
-                               -1, 1, 308
+                               -1, 1, 310
                        ]
        end
        private fun action_table_row459: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6434,7 +6412,7 @@ abstract class ParserTable
        private fun action_table_row460: Array[Int]
        do
                return [
-                               -1, 1, 411
+                               -1, 1, 413
                        ]
        end
        private fun action_table_row461: Array[Int]
@@ -6459,7 +6437,7 @@ abstract class ParserTable
        private fun action_table_row464: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 21
@@ -6486,7 +6464,7 @@ abstract class ParserTable
        private fun action_table_row468: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
                                86, 1, 23
@@ -6501,13 +6479,13 @@ abstract class ParserTable
        private fun action_table_row470: Array[Int]
        do
                return [
-                               -1, 1, 418
+                               -1, 1, 420
                        ]
        end
        private fun action_table_row471: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6516,13 +6494,13 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 471,
-                               25, 0, 575
+                               25, 0, 576
                        ]
        end
        private fun action_table_row473: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6530,14 +6508,14 @@ abstract class ParserTable
        private fun action_table_row474: Array[Int]
        do
                return [
-                               -1, 1, 644
+                               -1, 1, 648
                        ]
        end
        private fun action_table_row475: Array[Int]
        do
                return [
                                -1, 3, 474,
-                               63, 0, 472
+                               62, 0, 472
                        ]
        end
        private fun action_table_row476: Array[Int]
@@ -6547,146 +6525,146 @@ abstract class ParserTable
                                12, 0, 493,
                                46, 0, 494,
                                77, 0, 495,
-                               78, 0, 577
+                               78, 0, 578
                        ]
        end
        private fun action_table_row477: Array[Int]
        do
                return [
                                -1, 3, 476,
-                               52, 0, 578,
-                               55, 0, 534
+                               51, 0, 579,
+                               54, 0, 534
                        ]
        end
        private fun action_table_row478: Array[Int]
        do
                return [
-                               -1, 1, 620
+                               -1, 1, 624
                        ]
        end
        private fun action_table_row479: Array[Int]
        do
                return [
-                               -1, 1, 619
+                               -1, 1, 623
                        ]
        end
        private fun action_table_row480: Array[Int]
        do
                return [
-                               -1, 1, 625,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 629,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row481: Array[Int]
        do
                return [
-                               -1, 1, 632
+                               -1, 1, 636
                        ]
        end
        private fun action_table_row482: Array[Int]
        do
                return [
-                               -1, 1, 634,
-                               66, 0, 252,
-                               67, 0, 253,
-                               68, 0, 254
+                               -1, 1, 638,
+                               65, 0, 252,
+                               66, 0, 253,
+                               67, 0, 254
                        ]
        end
        private fun action_table_row483: Array[Int]
        do
                return [
-                               -1, 1, 635,
-                               66, 0, 252,
-                               67, 0, 253,
-                               68, 0, 254
+                               -1, 1, 639,
+                               65, 0, 252,
+                               66, 0, 253,
+                               67, 0, 254
                        ]
        end
        private fun action_table_row484: Array[Int]
        do
                return [
-                               -1, 1, 624,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 628,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row485: Array[Int]
        do
                return [
-                               -1, 1, 626,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 630,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row486: Array[Int]
        do
                return [
-                               -1, 1, 627,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 631,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row487: Array[Int]
        do
                return [
-                               -1, 1, 628,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 632,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row488: Array[Int]
        do
                return [
-                               -1, 1, 629,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 633,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row489: Array[Int]
        do
                return [
-                               -1, 1, 630,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 634,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row490: Array[Int]
        do
                return [
-                               -1, 1, 631,
-                               64, 0, 243,
-                               65, 0, 244
+                               -1, 1, 635,
+                               63, 0, 243,
+                               64, 0, 244
                        ]
        end
        private fun action_table_row491: Array[Int]
        do
                return [
-                               -1, 1, 637
+                               -1, 1, 641
                        ]
        end
        private fun action_table_row492: Array[Int]
        do
                return [
-                               -1, 1, 638
+                               -1, 1, 642
                        ]
        end
        private fun action_table_row493: Array[Int]
        do
                return [
-                               -1, 1, 639
+                               -1, 1, 643
                        ]
        end
        private fun action_table_row494: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row495: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6694,45 +6672,45 @@ abstract class ParserTable
        private fun action_table_row496: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row497: Array[Int]
        do
                return [
-                               -1, 1, 647
+                               -1, 1, 651
                        ]
        end
        private fun action_table_row498: Array[Int]
        do
                return [
                                -1, 3, 497,
-                               14, 0, 583,
-                               15, 0, 584
+                               14, 0, 584,
+                               15, 0, 585
                        ]
        end
        private fun action_table_row499: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               53, 0, 557
+                               52, 0, 558
                        ]
        end
        private fun action_table_row500: Array[Int]
        do
                return [
-                               -1, 1, 311,
-                               50, 0, 159
+                               -1, 1, 313,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row501: Array[Int]
        do
                return [
                                -1, 3, 500,
-                               9, 0, 590,
+                               9, 0, 591,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -6750,8 +6728,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -6771,7 +6749,7 @@ abstract class ParserTable
        private fun action_table_row503: Array[Int]
        do
                return [
-                               -1, 1, 297
+                               -1, 1, 299
                        ]
        end
        private fun action_table_row504: Array[Int]
@@ -6788,10 +6766,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -6808,30 +6786,30 @@ abstract class ParserTable
                                -1, 3, 504,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 592,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               26, 0, 597,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
+                               9, 0, 593,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               26, 0, 598,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 605,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -6845,7 +6823,7 @@ abstract class ParserTable
                                -1, 3, 505,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 621,
+                               9, 0, 622,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -6863,8 +6841,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -6878,7 +6856,7 @@ abstract class ParserTable
        private fun action_table_row507: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -6887,13 +6865,13 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 507,
-                               25, 0, 625
+                               25, 0, 626
                        ]
        end
        private fun action_table_row509: Array[Int]
        do
                return [
-                               -1, 1, 381
+                               -1, 1, 383
                        ]
        end
        private fun action_table_row510: Array[Int]
@@ -6903,151 +6881,151 @@ abstract class ParserTable
                                12, 0, 526,
                                46, 0, 453,
                                77, 0, 532,
-                               78, 0, 626
+                               78, 0, 627
                        ]
        end
        private fun action_table_row511: Array[Int]
        do
                return [
-                               -1, 1, 357
+                               -1, 1, 359
                        ]
        end
        private fun action_table_row512: Array[Int]
        do
                return [
-                               -1, 1, 356
+                               -1, 1, 358
                        ]
        end
        private fun action_table_row513: Array[Int]
        do
                return [
-                               -1, 1, 362,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 364,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row514: Array[Int]
        do
                return [
-                               -1, 1, 369
+                               -1, 1, 371
                        ]
        end
        private fun action_table_row515: Array[Int]
        do
                return [
-                               -1, 1, 371,
-                               66, 0, 288,
-                               67, 0, 289,
-                               68, 0, 290
+                               -1, 1, 373,
+                               65, 0, 288,
+                               66, 0, 289,
+                               67, 0, 290
                        ]
        end
        private fun action_table_row516: Array[Int]
        do
                return [
-                               -1, 1, 372,
-                               66, 0, 288,
-                               67, 0, 289,
-                               68, 0, 290
+                               -1, 1, 374,
+                               65, 0, 288,
+                               66, 0, 289,
+                               67, 0, 290
                        ]
        end
        private fun action_table_row517: Array[Int]
        do
                return [
-                               -1, 1, 361,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 363,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row518: Array[Int]
        do
                return [
-                               -1, 1, 363,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 365,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row519: Array[Int]
        do
                return [
-                               -1, 1, 364,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 366,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row520: Array[Int]
        do
                return [
-                               -1, 1, 365,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 367,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row521: Array[Int]
        do
                return [
-                               -1, 1, 366,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 368,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row522: Array[Int]
        do
                return [
-                               -1, 1, 367,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 369,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row523: Array[Int]
        do
                return [
-                               -1, 1, 368,
-                               64, 0, 279,
-                               65, 0, 280
+                               -1, 1, 370,
+                               63, 0, 279,
+                               64, 0, 280
                        ]
        end
        private fun action_table_row524: Array[Int]
        do
                return [
-                               -1, 1, 374
+                               -1, 1, 376
                        ]
        end
        private fun action_table_row525: Array[Int]
        do
                return [
-                               -1, 1, 375
+                               -1, 1, 377
                        ]
        end
        private fun action_table_row526: Array[Int]
        do
                return [
-                               -1, 1, 376
+                               -1, 1, 378
                        ]
        end
        private fun action_table_row527: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row528: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row529: Array[Int]
        do
                return [
-                               -1, 1, 384
+                               -1, 1, 386
                        ]
        end
        private fun action_table_row530: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -7056,7 +7034,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 530,
-                               48, 0, 299,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
@@ -7064,26 +7042,26 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 531,
-                               77, 0, 631
+                               77, 0, 632
                        ]
        end
        private fun action_table_row533: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row534: Array[Int]
        do
                return [
-                               -1, 1, 425
+                               -1, 1, 427
                        ]
        end
        private fun action_table_row535: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -7091,7 +7069,7 @@ abstract class ParserTable
        private fun action_table_row536: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -7099,34 +7077,23 @@ abstract class ParserTable
        private fun action_table_row537: Array[Int]
        do
                return [
-                               -1, 1, 745
+                               -1, 1, 749
                        ]
        end
        private fun action_table_row538: Array[Int]
        do
                return [
                                -1, 3, 537,
-                               54, 0, 635,
-                               55, 0, 534
+                               53, 0, 636,
+                               54, 0, 534
                        ]
        end
        private fun action_table_row539: Array[Int]
        do
                return [
-                               -1, 1, 274,
-                               50, 0, 159
-                       ]
-       end
-       private fun action_table_row540: Array[Int]
-       do
-               return [
-                               -1, 1, 287
-                       ]
-       end
-       private fun action_table_row541: Array[Int]
-       do
-               return [
-                               -1, 1, 293,
+                               -1, 3, 538,
+                               0, 0, 1,
+                               1, 0, 2,
                                9, 0, 638,
                                12, 0, 23,
                                15, 0, 25,
@@ -7145,8 +7112,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -7157,47 +7124,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
+       private fun action_table_row540: Array[Int]
+       do
+               return [
+                               -1, 3, 539,
+                               77, 0, 540
+                       ]
+       end
+       private fun action_table_row541: Array[Int]
+       do
+               return [
+                               -1, 1, 432
+                       ]
+       end
        private fun action_table_row542: Array[Int]
        do
                return [
                                -1, 3, 541,
-                               0, 0, 1,
-                               1, 0, 2,
-                               9, 0, 640,
-                               12, 0, 23,
-                               15, 0, 25,
-                               18, 0, 26,
-                               24, 0, 30,
-                               27, 0, 31,
-                               28, 0, 32,
-                               33, 0, 33,
-                               34, 0, 34,
-                               35, 0, 35,
-                               36, 0, 36,
-                               37, 0, 37,
-                               38, 0, 38,
-                               41, 0, 39,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 47,
-                               78, 0, 48,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
+                               15, 0, 642
                        ]
        end
        private fun action_table_row543: Array[Int]
        do
                return [
-                               -1, 3, 542,
-                               55, 0, 643
+                               -1, 1, 431,
+                               0, 0, 1,
+                               1, 0, 2,
+                               54, 1, 444
                        ]
        end
        private fun action_table_row544: Array[Int]
@@ -7222,7 +7175,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 546,
-                               52, 0, 644,
+                               51, 0, 644,
                                77, 0, 645
                        ]
        end
@@ -7257,8 +7210,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -7278,7 +7231,7 @@ abstract class ParserTable
        private fun action_table_row551: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -7287,7 +7240,8 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 209,
-                               47, 0, 554
+                               35, 0, 554,
+                               75, 0, 555
                        ]
        end
        private fun action_table_row553: Array[Int]
@@ -7300,43 +7254,42 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 210,
-                               47, 0, 554
+                               35, 0, 554,
+                               75, 0, 555
                        ]
        end
        private fun action_table_row555: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2,
-                               35, 0, 654
+                               -1, 3, 554,
+                               75, 0, 654
                        ]
        end
        private fun action_table_row556: Array[Int]
        do
                return [
-                               -1, 1, 737
+                               -1, 3, 555,
+                               77, 0, 655
                        ]
        end
        private fun action_table_row557: Array[Int]
        do
                return [
-                               -1, 1, 223,
-                               47, 0, 554
+                               -1, 1, 741
                        ]
        end
        private fun action_table_row558: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 223,
+                               35, 0, 554,
+                               75, 0, 555
                        ]
        end
        private fun action_table_row559: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -7344,18 +7297,26 @@ abstract class ParserTable
        private fun action_table_row560: Array[Int]
        do
                return [
-                               -1, 1, 729
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row561: Array[Int]
        do
                return [
-                               -1, 3, 560,
+                               -1, 1, 733
+                       ]
+       end
+       private fun action_table_row562: Array[Int]
+       do
+               return [
+                               -1, 3, 561,
                                0, 0, 73,
                                1, 0, 74
                        ]
        end
-       private fun action_table_row562: Array[Int]
+       private fun action_table_row563: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -7369,61 +7330,61 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row563: Array[Int]
+       private fun action_table_row564: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row564: Array[Int]
-       do
-               return [
-                               -1, 3, 563,
-                               54, 0, 533,
-                               55, 0, 534
-                       ]
-       end
        private fun action_table_row565: Array[Int]
        do
                return [
-                               -1, 1, 390
+                               -1, 3, 564,
+                               53, 0, 533,
+                               54, 0, 534
                        ]
        end
        private fun action_table_row566: Array[Int]
        do
                return [
-                               -1, 1, 266
+                               -1, 1, 392
                        ]
        end
        private fun action_table_row567: Array[Int]
        do
                return [
-                               -1, 3, 566,
-                               51, 0, 671
+                               -1, 1, 266
                        ]
        end
        private fun action_table_row568: Array[Int]
        do
                return [
-                               -1, 1, 386,
-                               58, 0, 672,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 3, 567,
+                               50, 0, 671
                        ]
        end
        private fun action_table_row569: Array[Int]
        do
                return [
-                               -1, 1, 260,
-                               47, 0, 311
+                               -1, 1, 388,
+                               57, 0, 672,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row570: Array[Int]
        do
                return [
-                               -1, 3, 569,
+                               -1, 1, 260,
+                               75, 0, 311
+                       ]
+       end
+       private fun action_table_row571: Array[Int]
+       do
+               return [
+                               -1, 3, 570,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -7434,10 +7395,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -7448,10 +7409,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row571: Array[Int]
+       private fun action_table_row572: Array[Int]
        do
                return [
-                               -1, 3, 570,
+                               -1, 3, 571,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -7462,10 +7423,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -7476,103 +7437,103 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row572: Array[Int]
+       private fun action_table_row573: Array[Int]
        do
                return [
-                               -1, 1, 413
-                       ]
-       end
-       private fun action_table_row573: Array[Int]
-       do
-               return [
-                               -1, 1, 45
+                               -1, 1, 415
                        ]
        end
        private fun action_table_row574: Array[Int]
        do
                return [
-                               -1, 1, 47
+                               -1, 1, 45
                        ]
        end
        private fun action_table_row575: Array[Int]
        do
                return [
-                               -1, 3, 574,
-                               52, 0, 677,
-                               55, 0, 534
+                               -1, 1, 47
                        ]
        end
        private fun action_table_row576: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 575,
+                               51, 0, 677,
+                               54, 0, 534
                        ]
        end
        private fun action_table_row577: Array[Int]
        do
                return [
-                               -1, 3, 576,
-                               77, 0, 680
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row578: Array[Int]
        do
                return [
-                               -1, 1, 645,
-                               63, 1, 647
+                               -1, 3, 577,
+                               77, 0, 680
                        ]
        end
        private fun action_table_row579: Array[Int]
        do
                return [
-                               -1, 1, 420,
-                               53, 1, 416,
-                               58, 1, 416,
-                               59, 1, 416,
-                               60, 1, 416,
-                               63, 1, 416
+                               -1, 1, 649,
+                               62, 1, 651
                        ]
        end
        private fun action_table_row580: Array[Int]
        do
                return [
-                               -1, 3, 579,
-                               52, 0, 681,
-                               55, 0, 534
+                               -1, 1, 422,
+                               52, 1, 418,
+                               57, 1, 418,
+                               58, 1, 418,
+                               59, 1, 418,
+                               62, 1, 418
                        ]
        end
        private fun action_table_row581: Array[Int]
        do
                return [
-                               -1, 1, 653
+                               -1, 3, 580,
+                               51, 0, 681,
+                               54, 0, 534
                        ]
        end
        private fun action_table_row582: Array[Int]
        do
                return [
-                               -1, 3, 581,
-                               51, 0, 682
+                               -1, 1, 657
                        ]
        end
        private fun action_table_row583: Array[Int]
        do
                return [
-                               -1, 1, 649
+                               -1, 3, 582,
+                               50, 0, 682
                        ]
        end
        private fun action_table_row584: Array[Int]
        do
                return [
-                               -1, 3, 583,
-                               20, 0, 683
+                               -1, 1, 653
                        ]
        end
        private fun action_table_row585: Array[Int]
        do
                return [
                                -1, 3, 584,
+                               20, 0, 683
+                       ]
+       end
+       private fun action_table_row586: Array[Int]
+       do
+               return [
+                               -1, 3, 585,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -7593,8 +7554,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -7605,23 +7566,23 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row586: Array[Int]
+       private fun action_table_row587: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row587: Array[Int]
+       private fun action_table_row588: Array[Int]
        do
                return [
-                               -1, 3, 586,
+                               -1, 3, 587,
                                0, 0, 73,
                                1, 0, 74
                        ]
        end
-       private fun action_table_row588: Array[Int]
+       private fun action_table_row589: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -7635,43 +7596,43 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row589: Array[Int]
+       private fun action_table_row590: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row590: Array[Int]
-       do
-               return [
-                               -1, 1, 315
-                       ]
-       end
        private fun action_table_row591: Array[Int]
        do
                return [
-                               -1, 1, 312,
-                               50, 0, 159
+                               -1, 1, 317
                        ]
        end
        private fun action_table_row592: Array[Int]
        do
                return [
-                               -1, 1, 298
+                               -1, 1, 314,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row593: Array[Int]
        do
                return [
-                               -1, 1, 327
+                               -1, 1, 300
                        ]
        end
        private fun action_table_row594: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 329
+                       ]
+       end
+       private fun action_table_row595: Array[Int]
+       do
+               return [
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -7682,11 +7643,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -7697,35 +7658,35 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row595: Array[Int]
+       private fun action_table_row596: Array[Int]
        do
                return [
-                               -1, 3, 594,
+                               -1, 3, 595,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 694,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 605,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -7733,25 +7694,25 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row596: Array[Int]
+       private fun action_table_row597: Array[Int]
        do
                return [
-                               -1, 3, 595,
+                               -1, 3, 596,
                                77, 0, 697
                        ]
        end
-       private fun action_table_row597: Array[Int]
+       private fun action_table_row598: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row598: Array[Int]
+       private fun action_table_row599: Array[Int]
        do
                return [
-                               -1, 3, 597,
+                               -1, 3, 598,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -7772,8 +7733,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -7784,29 +7745,29 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row599: Array[Int]
+       private fun action_table_row600: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row600: Array[Int]
+       private fun action_table_row601: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row601: Array[Int]
+       private fun action_table_row602: Array[Int]
        do
                return [
                                -1, 1, 244,
                                12, 0, 138,
                                24, 0, 139,
-                               26, 1, 518,
+                               26, 1, 522,
                                32, 0, 140,
                                38, 0, 141,
                                40, 0, 142,
@@ -7815,10 +7776,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -7829,13 +7790,13 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row602: Array[Int]
+       private fun action_table_row603: Array[Int]
        do
                return [
                                -1, 1, 251,
                                12, 0, 138,
                                24, 0, 139,
-                               26, 1, 525,
+                               26, 1, 529,
                                32, 0, 140,
                                38, 0, 141,
                                40, 0, 142,
@@ -7844,11 +7805,11 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               50, 0, 159,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               49, 0, 159,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -7859,13 +7820,13 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row603: Array[Int]
+       private fun action_table_row604: Array[Int]
        do
                return [
                                -1, 1, 246,
                                12, 0, 138,
                                24, 0, 139,
-                               26, 1, 520,
+                               26, 1, 524,
                                32, 0, 140,
                                38, 0, 141,
                                40, 0, 142,
@@ -7874,11 +7835,11 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               50, 0, 159,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               49, 0, 159,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -7889,17 +7850,17 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row604: Array[Int]
+       private fun action_table_row605: Array[Int]
        do
                return [
                                -1, 1, 250,
-                               26, 1, 524
+                               26, 1, 528
                        ]
        end
-       private fun action_table_row605: Array[Int]
+       private fun action_table_row606: Array[Int]
        do
                return [
-                               -1, 3, 604,
+                               -1, 3, 605,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -7910,10 +7871,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 710,
                                78, 0, 147,
@@ -7924,10 +7885,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row606: Array[Int]
+       private fun action_table_row607: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -7938,11 +7899,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -7953,10 +7914,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row607: Array[Int]
+       private fun action_table_row608: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -7967,15 +7928,15 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               57, 0, 175,
-                               58, 1, 419,
-                               59, 1, 419,
-                               60, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               56, 0, 175,
+                               57, 1, 421,
+                               58, 1, 421,
+                               59, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -7986,52 +7947,52 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row608: Array[Int]
-       do
-               return [
-                               -1, 1, 385,
-                               58, 0, 716,
-                               59, 0, 179,
-                               60, 0, 180
-                       ]
-       end
        private fun action_table_row609: Array[Int]
        do
                return [
-                               -1, 1, 321
+                               -1, 1, 387,
+                               57, 0, 716,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row610: Array[Int]
        do
                return [
-                               -1, 1, 324
+                               -1, 1, 323
                        ]
        end
        private fun action_table_row611: Array[Int]
        do
                return [
-                               -1, 3, 610,
-                               53, 0, 193,
-                               63, 0, 718
+                               -1, 1, 326
                        ]
        end
        private fun action_table_row612: Array[Int]
        do
                return [
                                -1, 3, 611,
-                               41, 0, 720
+                               52, 0, 193,
+                               62, 0, 718
                        ]
        end
        private fun action_table_row613: Array[Int]
        do
                return [
                                -1, 3, 612,
-                               9, 0, 592,
+                               41, 0, 720
+                       ]
+       end
+       private fun action_table_row614: Array[Int]
+       do
+               return [
+                               -1, 3, 613,
+                               9, 0, 593,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
                                24, 0, 30,
-                               26, 0, 597,
+                               26, 0, 598,
                                27, 0, 31,
                                28, 0, 32,
                                33, 0, 33,
@@ -8045,8 +8006,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -8057,72 +8018,72 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row614: Array[Int]
-       do
-               return [
-                               -1, 3, 613,
-                               26, 0, 723
-                       ]
-       end
        private fun action_table_row615: Array[Int]
        do
                return [
-                               -1, 1, 516
+                               -1, 3, 614,
+                               26, 0, 723
                        ]
        end
        private fun action_table_row616: Array[Int]
        do
                return [
-                               -1, 1, 517
+                               -1, 1, 520
                        ]
        end
        private fun action_table_row617: Array[Int]
        do
                return [
-                               -1, 1, 529
+                               -1, 1, 521
                        ]
        end
        private fun action_table_row618: Array[Int]
        do
                return [
-                               -1, 1, 530
+                               -1, 1, 533
                        ]
        end
        private fun action_table_row619: Array[Int]
        do
                return [
-                               -1, 1, 531
+                               -1, 1, 534
                        ]
        end
        private fun action_table_row620: Array[Int]
        do
                return [
-                               -1, 1, 532
+                               -1, 1, 535
                        ]
        end
        private fun action_table_row621: Array[Int]
        do
                return [
-                               -1, 1, 533
+                               -1, 1, 536
                        ]
        end
        private fun action_table_row622: Array[Int]
        do
                return [
-                               -1, 1, 331,
-                               50, 0, 159
+                               -1, 1, 537
                        ]
        end
        private fun action_table_row623: Array[Int]
        do
                return [
-                               -1, 1, 336
+                               -1, 1, 333,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row624: Array[Int]
        do
                return [
-                               -1, 3, 623,
+                               -1, 1, 338
+                       ]
+       end
+       private fun action_table_row625: Array[Int]
+       do
+               return [
+                               -1, 3, 624,
                                9, 0, 725,
                                12, 0, 23,
                                15, 0, 25,
@@ -8141,8 +8102,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -8153,10 +8114,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row625: Array[Int]
+       private fun action_table_row626: Array[Int]
        do
                return [
-                               -1, 3, 624,
+                               -1, 3, 625,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -8167,10 +8128,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -8181,69 +8142,69 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row626: Array[Int]
+       private fun action_table_row627: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row627: Array[Int]
+       private fun action_table_row628: Array[Int]
        do
                return [
-                               -1, 1, 382,
-                               53, 1, 384,
-                               63, 1, 384
+                               -1, 1, 384,
+                               52, 1, 386,
+                               62, 1, 386
                        ]
        end
-       private fun action_table_row628: Array[Int]
+       private fun action_table_row629: Array[Int]
        do
                return [
-                               -1, 1, 386,
-                               47, 0, 311
+                               -1, 1, 388,
+                               75, 0, 311
                        ]
        end
-       private fun action_table_row629: Array[Int]
+       private fun action_table_row630: Array[Int]
        do
                return [
-                               -1, 3, 628,
-                               48, 0, 299,
+                               -1, 3, 629,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
-       private fun action_table_row630: Array[Int]
+       private fun action_table_row631: Array[Int]
        do
                return [
                                -1, 1, 232,
-                               55, 0, 731
+                               54, 0, 731
                        ]
        end
-       private fun action_table_row631: Array[Int]
+       private fun action_table_row632: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row632: Array[Int]
+       private fun action_table_row633: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
-       private fun action_table_row633: Array[Int]
+       private fun action_table_row634: Array[Int]
        do
                return [
-                               -1, 1, 386
+                               -1, 1, 388
                        ]
        end
-       private fun action_table_row634: Array[Int]
+       private fun action_table_row635: Array[Int]
        do
                return [
-                               -1, 3, 633,
+                               -1, 3, 634,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -8254,10 +8215,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -8268,10 +8229,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row635: Array[Int]
+       private fun action_table_row636: Array[Int]
        do
                return [
-                               -1, 3, 634,
+                               -1, 3, 635,
                                12, 0, 737,
                                24, 0, 738,
                                32, 0, 739,
@@ -8282,9 +8243,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -8295,56 +8256,80 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row636: Array[Int]
-       do
-               return [
-                               -1, 1, 426
-                       ]
-       end
        private fun action_table_row637: Array[Int]
        do
                return [
-                               -1, 1, 746
+                               -1, 1, 428
                        ]
        end
        private fun action_table_row638: Array[Int]
        do
                return [
-                               -1, 1, 282
+                               -1, 1, 750
                        ]
        end
        private fun action_table_row639: Array[Int]
        do
                return [
-                               -1, 1, 273,
-                               50, 0, 159
+                               -1, 1, 274,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row640: Array[Int]
        do
                return [
-                               -1, 3, 639,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 287
                        ]
        end
        private fun action_table_row641: Array[Int]
        do
                return [
-                               -1, 1, 278,
-                               50, 0, 159
+                               -1, 1, 293,
+                               9, 0, 768,
+                               12, 0, 23,
+                               15, 0, 25,
+                               18, 0, 26,
+                               24, 0, 30,
+                               27, 0, 31,
+                               28, 0, 32,
+                               33, 0, 33,
+                               34, 0, 34,
+                               35, 0, 35,
+                               36, 0, 36,
+                               37, 0, 37,
+                               38, 0, 38,
+                               41, 0, 39,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 47,
+                               78, 0, 48,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
        private fun action_table_row642: Array[Int]
        do
                return [
-                               -1, 1, 288
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2,
+                               51, 0, 770
                        ]
        end
        private fun action_table_row643: Array[Int]
        do
                return [
-                               -1, 1, 294,
+                               -1, 3, 642,
+                               0, 0, 1,
+                               1, 0, 2,
                                9, 0, 771,
                                12, 0, 23,
                                15, 0, 25,
@@ -8363,8 +8348,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -8378,9 +8363,8 @@ abstract class ParserTable
        private fun action_table_row644: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 643,
+                               54, 0, 774
                        ]
        end
        private fun action_table_row645: Array[Int]
@@ -8393,23 +8377,23 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 220,
-                               56, 0, 261
+                               55, 0, 261
                        ]
        end
        private fun action_table_row647: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               55, 0, 775
+                               54, 0, 776
                        ]
        end
        private fun action_table_row648: Array[Int]
        do
                return [
-                               -1, 1, 450,
-                               82, 0, 779
+                               -1, 1, 454,
+                               82, 0, 780
                        ]
        end
        private fun action_table_row649: Array[Int]
@@ -8421,8 +8405,8 @@ abstract class ParserTable
        private fun action_table_row650: Array[Int]
        do
                return [
-                               -1, 1, 446,
-                               9, 0, 780
+                               -1, 1, 450,
+                               9, 0, 781
                        ]
        end
        private fun action_table_row651: Array[Int]
@@ -8435,7 +8419,7 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 651,
-                               9, 0, 781,
+                               9, 0, 782,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -8453,8 +8437,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -8475,35 +8459,36 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 211,
-                               47, 0, 554
+                               35, 0, 554,
+                               75, 0, 555
                        ]
        end
        private fun action_table_row655: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 654,
+                               77, 0, 784
                        ]
        end
        private fun action_table_row656: Array[Int]
        do
                return [
-                               -1, 3, 655,
-                               77, 0, 784
+                               -1, 1, 212,
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
        private fun action_table_row657: Array[Int]
        do
                return [
-                               -1, 1, 738
+                               -1, 1, 742
                        ]
        end
        private fun action_table_row658: Array[Int]
        do
                return [
                                -1, 3, 657,
-                               76, 0, 785
+                               76, 0, 788
                        ]
        end
        private fun action_table_row659: Array[Int]
@@ -8519,7 +8504,7 @@ abstract class ParserTable
                return [
                                -1, 1, 184,
                                8, 0, 662,
-                               9, 0, 788,
+                               9, 0, 791,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -8531,7 +8516,7 @@ abstract class ParserTable
        private fun action_table_row661: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8539,7 +8524,7 @@ abstract class ParserTable
        private fun action_table_row662: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8547,7 +8532,7 @@ abstract class ParserTable
        private fun action_table_row663: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8562,8 +8547,8 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 184,
-                               16, 0, 796,
-                               17, 0, 797,
+                               16, 0, 799,
+                               17, 0, 800,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -8573,8 +8558,8 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 184,
-                               13, 0, 799,
-                               17, 0, 800,
+                               13, 0, 802,
+                               17, 0, 803,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -8584,7 +8569,7 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 184,
-                               13, 0, 802,
+                               13, 0, 805,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -8594,16 +8579,16 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 667,
-                               10, 0, 804,
-                               11, 0, 805,
-                               12, 0, 806,
-                               18, 0, 807
+                               10, 0, 807,
+                               11, 0, 808,
+                               12, 0, 809,
+                               18, 0, 810
                        ]
        end
        private fun action_table_row669: Array[Int]
        do
                return [
-                               -1, 1, 730
+                               -1, 1, 734
                        ]
        end
        private fun action_table_row670: Array[Int]
@@ -8619,7 +8604,7 @@ abstract class ParserTable
                return [
                                -1, 1, 184,
                                8, 0, 662,
-                               9, 0, 809,
+                               9, 0, 812,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -8631,7 +8616,7 @@ abstract class ParserTable
        private fun action_table_row672: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8650,10 +8635,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -8678,10 +8663,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 146,
                                78, 0, 147,
@@ -8701,27 +8686,27 @@ abstract class ParserTable
        private fun action_table_row676: Array[Int]
        do
                return [
-                               -1, 1, 299
+                               -1, 1, 301
                        ]
        end
        private fun action_table_row677: Array[Int]
        do
                return [
-                               -1, 1, 304
+                               -1, 1, 306
                        ]
        end
        private fun action_table_row678: Array[Int]
        do
                return [
-                               -1, 1, 416
+                               -1, 1, 418
                        ]
        end
        private fun action_table_row679: Array[Int]
        do
                return [
                                -1, 3, 678,
-                               52, 0, 813,
-                               55, 0, 534
+                               51, 0, 816,
+                               54, 0, 534
                        ]
        end
        private fun action_table_row680: Array[Int]
@@ -8738,10 +8723,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -8755,25 +8740,25 @@ abstract class ParserTable
        private fun action_table_row681: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row682: Array[Int]
        do
                return [
-                               -1, 1, 421,
-                               53, 1, 417,
-                               58, 1, 417,
-                               59, 1, 417,
-                               60, 1, 417,
-                               63, 1, 417
+                               -1, 1, 423,
+                               52, 1, 419,
+                               57, 1, 419,
+                               58, 1, 419,
+                               59, 1, 419,
+                               62, 1, 419
                        ]
        end
        private fun action_table_row683: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8781,15 +8766,15 @@ abstract class ParserTable
        private fun action_table_row684: Array[Int]
        do
                return [
-                               -1, 1, 451,
-                               82, 0, 817
+                               -1, 1, 455,
+                               82, 0, 820
                        ]
        end
        private fun action_table_row685: Array[Int]
        do
                return [
-                               -1, 1, 447,
-                               9, 0, 818
+                               -1, 1, 451,
+                               9, 0, 821
                        ]
        end
        private fun action_table_row686: Array[Int]
@@ -8805,7 +8790,7 @@ abstract class ParserTable
                return [
                                -1, 1, 184,
                                8, 0, 662,
-                               9, 0, 820,
+                               9, 0, 823,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -8817,7 +8802,7 @@ abstract class ParserTable
        private fun action_table_row688: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8825,7 +8810,7 @@ abstract class ParserTable
        private fun action_table_row689: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -8849,7 +8834,7 @@ abstract class ParserTable
                return [
                                -1, 1, 184,
                                8, 0, 662,
-                               9, 0, 826,
+                               9, 0, 829,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -8861,29 +8846,29 @@ abstract class ParserTable
        private fun action_table_row693: Array[Int]
        do
                return [
-                               -1, 1, 316
+                               -1, 1, 318
                        ]
        end
        private fun action_table_row694: Array[Int]
        do
                return [
                                -1, 1, 267,
-                               26, 1, 541
+                               26, 1, 545
                        ]
        end
        private fun action_table_row695: Array[Int]
        do
                return [
-                               -1, 1, 314,
-                               26, 1, 579,
-                               50, 0, 159
+                               -1, 1, 316,
+                               26, 1, 583,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row696: Array[Int]
        do
                return [
                                -1, 3, 695,
-                               9, 0, 828,
+                               9, 0, 831,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -8901,8 +8886,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -8916,16 +8901,16 @@ abstract class ParserTable
        private fun action_table_row697: Array[Int]
        do
                return [
-                               -1, 1, 584
+                               -1, 1, 588
                        ]
        end
        private fun action_table_row698: Array[Int]
        do
                return [
-                               -1, 1, 295,
-                               26, 1, 562,
-                               56, 0, 261,
-                               58, 0, 830
+                               -1, 1, 297,
+                               26, 1, 566,
+                               55, 0, 261,
+                               57, 0, 833
                        ]
        end
        private fun action_table_row699: Array[Int]
@@ -8942,10 +8927,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -8959,7 +8944,7 @@ abstract class ParserTable
        private fun action_table_row700: Array[Int]
        do
                return [
-                               -1, 1, 326
+                               -1, 1, 328
                        ]
        end
        private fun action_table_row701: Array[Int]
@@ -8976,10 +8961,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -8994,36 +8979,36 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 701,
-                               77, 0, 834
+                               77, 0, 837
                        ]
        end
        private fun action_table_row703: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row704: Array[Int]
        do
                return [
-                               -1, 1, 349,
-                               26, 1, 606
+                               -1, 1, 351,
+                               26, 1, 610
                        ]
        end
        private fun action_table_row705: Array[Int]
        do
                return [
-                               -1, 1, 380,
-                               53, 0, 193,
-                               63, 0, 836
+                               -1, 1, 382,
+                               52, 0, 193,
+                               62, 0, 839
                        ]
        end
        private fun action_table_row706: Array[Int]
        do
                return [
-                               -1, 1, 519
+                               -1, 1, 523
                        ]
        end
        private fun action_table_row707: Array[Int]
@@ -9032,7 +9017,7 @@ abstract class ParserTable
                                -1, 1, 252,
                                12, 0, 138,
                                24, 0, 139,
-                               26, 1, 526,
+                               26, 1, 530,
                                32, 0, 140,
                                38, 0, 141,
                                40, 0, 142,
@@ -9041,10 +9026,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -9058,7 +9043,7 @@ abstract class ParserTable
        private fun action_table_row708: Array[Int]
        do
                return [
-                               -1, 1, 527
+                               -1, 1, 531
                        ]
        end
        private fun action_table_row709: Array[Int]
@@ -9067,7 +9052,7 @@ abstract class ParserTable
                                -1, 1, 247,
                                12, 0, 138,
                                24, 0, 139,
-                               26, 1, 521,
+                               26, 1, 525,
                                32, 0, 140,
                                38, 0, 141,
                                40, 0, 142,
@@ -9076,10 +9061,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -9093,16 +9078,16 @@ abstract class ParserTable
        private fun action_table_row710: Array[Int]
        do
                return [
-                               -1, 1, 522
+                               -1, 1, 526
                        ]
        end
        private fun action_table_row711: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               56, 0, 297,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               55, 0, 297,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row712: Array[Int]
@@ -9119,10 +9104,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -9136,31 +9121,31 @@ abstract class ParserTable
        private fun action_table_row713: Array[Int]
        do
                return [
-                               -1, 1, 604
+                               -1, 1, 608
                        ]
        end
        private fun action_table_row714: Array[Int]
        do
                return [
                                -1, 1, 264,
-                               26, 1, 538
+                               26, 1, 542
                        ]
        end
        private fun action_table_row715: Array[Int]
        do
                return [
-                               -1, 1, 387,
-                               58, 0, 841,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 389,
+                               57, 0, 844,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row716: Array[Int]
        do
                return [
                                -1, 1, 261,
-                               26, 1, 535,
-                               47, 0, 843
+                               26, 1, 539,
+                               75, 0, 846
                        ]
        end
        private fun action_table_row717: Array[Int]
@@ -9177,10 +9162,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -9205,10 +9190,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -9222,7 +9207,7 @@ abstract class ParserTable
        private fun action_table_row719: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9230,16 +9215,16 @@ abstract class ParserTable
        private fun action_table_row720: Array[Int]
        do
                return [
-                               -1, 1, 392,
-                               58, 0, 850,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 394,
+                               57, 0, 853,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
        private fun action_table_row721: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -9250,11 +9235,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -9276,7 +9261,7 @@ abstract class ParserTable
        private fun action_table_row723: Array[Int]
        do
                return [
-                               -1, 1, 325
+                               -1, 1, 327
                        ]
        end
        private fun action_table_row724: Array[Int]
@@ -9303,8 +9288,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -9318,14 +9303,14 @@ abstract class ParserTable
        private fun action_table_row725: Array[Int]
        do
                return [
-                               -1, 1, 335
+                               -1, 1, 337
                        ]
        end
        private fun action_table_row726: Array[Int]
        do
                return [
-                               -1, 1, 330,
-                               50, 0, 159
+                               -1, 1, 332,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row727: Array[Int]
@@ -9339,7 +9324,7 @@ abstract class ParserTable
        private fun action_table_row728: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9358,10 +9343,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -9375,13 +9360,13 @@ abstract class ParserTable
        private fun action_table_row730: Array[Int]
        do
                return [
-                               -1, 1, 350
+                               -1, 1, 352
                        ]
        end
        private fun action_table_row731: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9389,7 +9374,7 @@ abstract class ParserTable
        private fun action_table_row732: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9397,33 +9382,33 @@ abstract class ParserTable
        private fun action_table_row733: Array[Int]
        do
                return [
-                               -1, 1, 739
+                               -1, 1, 743
                        ]
        end
        private fun action_table_row734: Array[Int]
        do
                return [
                                -1, 1, 233,
-                               55, 0, 731
+                               54, 0, 731
                        ]
        end
        private fun action_table_row735: Array[Int]
        do
                return [
                                -1, 3, 734,
-                               54, 0, 864
+                               53, 0, 867
                        ]
        end
        private fun action_table_row736: Array[Int]
        do
                return [
-                               -1, 1, 393
+                               -1, 1, 395
                        ]
        end
        private fun action_table_row737: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9431,14 +9416,14 @@ abstract class ParserTable
        private fun action_table_row738: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row739: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9446,7 +9431,7 @@ abstract class ParserTable
        private fun action_table_row740: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9454,7 +9439,7 @@ abstract class ParserTable
        private fun action_table_row741: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9462,7 +9447,7 @@ abstract class ParserTable
        private fun action_table_row742: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9470,32 +9455,32 @@ abstract class ParserTable
        private fun action_table_row743: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row744: Array[Int]
        do
                return [
-                               -1, 1, 499
+                               -1, 1, 503
                        ]
        end
        private fun action_table_row745: Array[Int]
        do
                return [
-                               -1, 1, 500
+                               -1, 1, 504
                        ]
        end
        private fun action_table_row746: Array[Int]
        do
                return [
-                               -1, 1, 501
+                               -1, 1, 505
                        ]
        end
        private fun action_table_row747: Array[Int]
        do
                return [
-                               -1, 1, 502
+                               -1, 1, 506
                        ]
        end
        private fun action_table_row748: Array[Int]
@@ -9503,16 +9488,16 @@ abstract class ParserTable
                return [
                                -1, 3, 747,
                                12, 0, 737,
-                               38, 0, 872,
+                               38, 0, 875,
                                41, 0, 742,
                                42, 0, 743,
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               51, 0, 748,
+                               50, 0, 748,
                                76, 0, 46,
                                77, 0, 750,
-                               78, 0, 873,
+                               78, 0, 876,
                                79, 0, 752,
                                80, 0, 753,
                                81, 0, 754,
@@ -9534,10 +9519,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -9551,7 +9536,7 @@ abstract class ParserTable
        private fun action_table_row750: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9559,58 +9544,58 @@ abstract class ParserTable
        private fun action_table_row751: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               57, 0, 175
+                               -1, 1, 421,
+                               50, 0, 225,
+                               56, 0, 175
                        ]
        end
        private fun action_table_row752: Array[Int]
        do
                return [
-                               -1, 1, 491
+                               -1, 1, 495
                        ]
        end
        private fun action_table_row753: Array[Int]
        do
                return [
-                               -1, 1, 503
+                               -1, 1, 507
                        ]
        end
        private fun action_table_row754: Array[Int]
        do
                return [
-                               -1, 1, 504
+                               -1, 1, 508
                        ]
        end
        private fun action_table_row755: Array[Int]
        do
                return [
-                               -1, 1, 505
+                               -1, 1, 509
                        ]
        end
        private fun action_table_row756: Array[Int]
        do
                return [
-                               -1, 1, 506
+                               -1, 1, 510
                        ]
        end
        private fun action_table_row757: Array[Int]
        do
                return [
-                               -1, 1, 507
+                               -1, 1, 511
                        ]
        end
        private fun action_table_row758: Array[Int]
        do
                return [
                                -1, 3, 757,
-                               41, 0, 878
+                               41, 0, 881
                        ]
        end
        private fun action_table_row759: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -9618,106 +9603,79 @@ abstract class ParserTable
        private fun action_table_row760: Array[Int]
        do
                return [
-                               -1, 1, 459,
-                               30, 0, 880,
-                               31, 0, 881
+                               -1, 1, 463,
+                               30, 0, 883,
+                               31, 0, 884
                        ]
        end
        private fun action_table_row761: Array[Int]
        do
                return [
-                               -1, 1, 461
+                               -1, 1, 465
                        ]
        end
        private fun action_table_row762: Array[Int]
        do
                return [
-                               -1, 1, 464
+                               -1, 1, 468
                        ]
        end
        private fun action_table_row763: Array[Int]
        do
                return [
-                               -1, 1, 466,
-                               14, 0, 882,
-                               39, 0, 883,
-                               64, 0, 884,
-                               65, 0, 885,
-                               69, 0, 886,
-                               70, 0, 887,
-                               71, 0, 888,
-                               72, 0, 889,
-                               73, 0, 890,
-                               74, 0, 891,
-                               75, 0, 892
+                               -1, 1, 470,
+                               14, 0, 885,
+                               39, 0, 886,
+                               63, 0, 887,
+                               64, 0, 888,
+                               68, 0, 889,
+                               69, 0, 890,
+                               70, 0, 891,
+                               71, 0, 892,
+                               72, 0, 893,
+                               73, 0, 894,
+                               74, 0, 895
                        ]
        end
        private fun action_table_row764: Array[Int]
        do
                return [
-                               -1, 1, 476,
-                               66, 0, 893,
-                               67, 0, 894,
-                               68, 0, 895
+                               -1, 1, 480,
+                               65, 0, 896,
+                               66, 0, 897,
+                               67, 0, 898
                        ]
        end
        private fun action_table_row765: Array[Int]
        do
                return [
-                               -1, 1, 479
+                               -1, 1, 483
                        ]
        end
        private fun action_table_row766: Array[Int]
        do
                return [
-                               -1, 1, 483
+                               -1, 1, 487
                        ]
        end
        private fun action_table_row767: Array[Int]
        do
                return [
-                               -1, 1, 486,
-                               63, 0, 896
+                               -1, 1, 490,
+                               62, 0, 899
                        ]
        end
        private fun action_table_row768: Array[Int]
        do
                return [
-                               -1, 1, 281
+                               -1, 1, 282
                        ]
        end
        private fun action_table_row769: Array[Int]
        do
                return [
-                               -1, 1, 289,
-                               9, 0, 897,
-                               12, 0, 23,
-                               15, 0, 25,
-                               18, 0, 26,
-                               24, 0, 30,
-                               27, 0, 31,
-                               28, 0, 32,
-                               33, 0, 33,
-                               34, 0, 34,
-                               35, 0, 35,
-                               36, 0, 36,
-                               37, 0, 37,
-                               38, 0, 38,
-                               41, 0, 39,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 47,
-                               78, 0, 48,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
+                               -1, 1, 273,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row770: Array[Int]
@@ -9731,165 +9689,185 @@ abstract class ParserTable
        private fun action_table_row771: Array[Int]
        do
                return [
-                               -1, 1, 286
+                               -1, 1, 430
                        ]
        end
        private fun action_table_row772: Array[Int]
        do
                return [
-                               -1, 1, 277,
-                               50, 0, 159
+                               -1, 1, 278,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row773: Array[Int]
        do
                return [
-                               -1, 3, 772,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 288
                        ]
        end
        private fun action_table_row774: Array[Int]
        do
                return [
-                               -1, 3, 773,
-                               77, 0, 902
+                               -1, 1, 294,
+                               9, 0, 904,
+                               12, 0, 23,
+                               15, 0, 25,
+                               18, 0, 26,
+                               24, 0, 30,
+                               27, 0, 31,
+                               28, 0, 32,
+                               33, 0, 33,
+                               34, 0, 34,
+                               35, 0, 35,
+                               36, 0, 36,
+                               37, 0, 37,
+                               38, 0, 38,
+                               41, 0, 39,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 47,
+                               78, 0, 48,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
        private fun action_table_row775: Array[Int]
        do
                return [
-                               -1, 1, 221,
-                               61, 0, 903
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row776: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 221,
+                               60, 0, 907
                        ]
        end
        private fun action_table_row777: Array[Int]
        do
                return [
-                               -1, 1, 735
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row778: Array[Int]
        do
                return [
-                               -1, 3, 777,
-                               52, 0, 905
+                               -1, 1, 739
                        ]
        end
        private fun action_table_row779: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2,
-                               55, 0, 775
+                               -1, 3, 778,
+                               51, 0, 909
                        ]
        end
        private fun action_table_row780: Array[Int]
        do
                return [
-                               -1, 1, 452
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2,
+                               54, 0, 776
                        ]
        end
        private fun action_table_row781: Array[Int]
        do
                return [
-                               -1, 1, 448
+                               -1, 1, 456
                        ]
        end
        private fun action_table_row782: Array[Int]
        do
                return [
-                               -1, 1, 238
+                               -1, 1, 452
                        ]
        end
        private fun action_table_row783: Array[Int]
        do
                return [
-                               -1, 3, 782,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 238
                        ]
        end
        private fun action_table_row784: Array[Int]
        do
                return [
                                -1, 3, 783,
-                               77, 0, 910
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row785: Array[Int]
        do
                return [
                                -1, 1, 212,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
        private fun action_table_row786: Array[Int]
        do
                return [
-                               -1, 1, 86,
-                               56, 0, 261
+                               -1, 3, 785,
+                               0, 0, 1,
+                               1, 0, 2,
+                               15, 0, 915
                        ]
        end
        private fun action_table_row787: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2,
-                               55, 0, 915
+                               -1, 1, 213,
+                               55, 0, 261
                        ]
        end
        private fun action_table_row788: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 214
                        ]
        end
        private fun action_table_row789: Array[Int]
        do
                return [
-                               -1, 1, 57
+                               -1, 1, 86,
+                               55, 0, 261
                        ]
        end
        private fun action_table_row790: Array[Int]
        do
                return [
-                               -1, 3, 789,
-                               0, 0, 73,
-                               1, 0, 74
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2,
+                               54, 0, 919
                        ]
        end
        private fun action_table_row791: Array[Int]
        do
                return [
-                               -1, 1, 184,
-                               8, 0, 662,
-                               9, 0, 922,
-                               13, 0, 664,
-                               16, 0, 665,
-                               17, 0, 666,
-                               21, 0, 27,
-                               22, 0, 28,
-                               23, 0, 29
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row792: Array[Int]
        do
                return [
-                               -1, 1, 733
+                               -1, 1, 57
                        ]
        end
        private fun action_table_row793: Array[Int]
@@ -9904,7 +9882,8 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 184,
-                               9, 0, 924,
+                               8, 0, 662,
+                               9, 0, 926,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -9916,25 +9895,25 @@ abstract class ParserTable
        private fun action_table_row795: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 737
                        ]
        end
        private fun action_table_row796: Array[Int]
        do
                return [
                                -1, 3, 795,
-                               48, 0, 299,
-                               76, 0, 300
+                               0, 0, 73,
+                               1, 0, 74
                        ]
        end
        private fun action_table_row797: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               13, 0, 928,
-                               17, 0, 929,
+                               9, 0, 928,
+                               13, 0, 664,
+                               16, 0, 665,
+                               17, 0, 666,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -9943,28 +9922,25 @@ abstract class ParserTable
        private fun action_table_row798: Array[Int]
        do
                return [
-                               -1, 1, 184,
-                               13, 0, 931,
-                               21, 0, 27,
-                               22, 0, 28,
-                               23, 0, 29
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row799: Array[Int]
        do
                return [
                                -1, 3, 798,
-                               10, 0, 933,
-                               11, 0, 934,
-                               12, 0, 935,
-                               18, 0, 936
+                               47, 0, 299,
+                               76, 0, 300
                        ]
        end
        private fun action_table_row800: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               17, 0, 937,
+                               13, 0, 932,
+                               17, 0, 933,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -9974,7 +9950,7 @@ abstract class ParserTable
        do
                return [
                                -1, 1, 184,
-                               13, 0, 939,
+                               13, 0, 935,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -9984,13 +9960,17 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 801,
-                               18, 0, 941
+                               10, 0, 937,
+                               11, 0, 938,
+                               12, 0, 939,
+                               18, 0, 940
                        ]
        end
        private fun action_table_row803: Array[Int]
        do
                return [
                                -1, 1, 184,
+                               17, 0, 941,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
@@ -9999,258 +9979,260 @@ abstract class ParserTable
        private fun action_table_row804: Array[Int]
        do
                return [
-                               -1, 3, 803,
-                               18, 0, 943
+                               -1, 1, 184,
+                               13, 0, 943,
+                               21, 0, 27,
+                               22, 0, 28,
+                               23, 0, 29
                        ]
        end
        private fun action_table_row805: Array[Int]
        do
                return [
                                -1, 3, 804,
-                               53, 0, 319,
-                               64, 0, 320,
-                               65, 0, 321,
-                               66, 0, 322,
-                               67, 0, 323,
-                               68, 0, 324,
-                               69, 0, 325,
-                               70, 0, 326,
-                               71, 0, 327,
-                               72, 0, 328,
-                               73, 0, 329,
-                               74, 0, 330,
-                               75, 0, 331,
-                               77, 0, 332
+                               18, 0, 945
                        ]
        end
        private fun action_table_row806: Array[Int]
        do
                return [
-                               -1, 3, 805,
-                               76, 0, 945
+                               -1, 1, 184,
+                               21, 0, 27,
+                               22, 0, 28,
+                               23, 0, 29
                        ]
        end
        private fun action_table_row807: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2,
-                               51, 0, 444,
-                               53, 0, 319,
-                               56, 0, 261,
-                               64, 0, 320,
-                               65, 0, 321,
-                               66, 0, 322,
-                               67, 0, 323,
-                               68, 0, 324,
-                               69, 0, 325,
-                               70, 0, 326,
-                               71, 0, 327,
-                               72, 0, 328,
-                               73, 0, 329,
-                               74, 0, 330,
-                               75, 0, 331,
-                               77, 0, 332
+                               -1, 3, 806,
+                               18, 0, 947
                        ]
        end
        private fun action_table_row808: Array[Int]
        do
                return [
                                -1, 3, 807,
-                               78, 0, 948
+                               52, 0, 319,
+                               63, 0, 320,
+                               64, 0, 321,
+                               65, 0, 322,
+                               66, 0, 323,
+                               67, 0, 324,
+                               68, 0, 325,
+                               69, 0, 326,
+                               70, 0, 327,
+                               71, 0, 328,
+                               72, 0, 329,
+                               73, 0, 330,
+                               74, 0, 331,
+                               77, 0, 332
                        ]
        end
        private fun action_table_row809: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 808,
+                               76, 0, 949
                        ]
        end
        private fun action_table_row810: Array[Int]
        do
                return [
-                               -1, 1, 59
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2,
+                               50, 0, 444,
+                               52, 0, 319,
+                               55, 0, 261,
+                               63, 0, 320,
+                               64, 0, 321,
+                               65, 0, 322,
+                               66, 0, 323,
+                               67, 0, 324,
+                               68, 0, 325,
+                               69, 0, 326,
+                               70, 0, 327,
+                               71, 0, 328,
+                               72, 0, 329,
+                               73, 0, 330,
+                               74, 0, 331,
+                               77, 0, 332
                        ]
        end
        private fun action_table_row811: Array[Int]
        do
                return [
                                -1, 3, 810,
-                               32, 0, 951,
-                               48, 0, 299,
-                               76, 0, 300
+                               78, 0, 952
                        ]
        end
        private fun action_table_row812: Array[Int]
        do
                return [
-                               -1, 1, 301
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row813: Array[Int]
        do
                return [
-                               -1, 1, 306
+                               -1, 1, 59
                        ]
        end
        private fun action_table_row814: Array[Int]
        do
                return [
-                               -1, 1, 417
+                               -1, 3, 813,
+                               32, 0, 955,
+                               47, 0, 299,
+                               76, 0, 300
                        ]
        end
        private fun action_table_row815: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 303
                        ]
        end
        private fun action_table_row816: Array[Int]
        do
                return [
-                               -1, 1, 655
+                               -1, 1, 308
                        ]
        end
        private fun action_table_row817: Array[Int]
        do
                return [
-                               -1, 3, 816,
-                               32, 0, 954,
-                               48, 0, 299,
-                               76, 0, 300
+                               -1, 1, 419
                        ]
        end
        private fun action_table_row818: Array[Int]
        do
                return [
-                               -1, 1, 453
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row819: Array[Int]
        do
                return [
-                               -1, 1, 449
+                               -1, 1, 659
                        ]
        end
        private fun action_table_row820: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 819,
+                               32, 0, 958,
+                               47, 0, 299,
+                               76, 0, 300
                        ]
        end
        private fun action_table_row821: Array[Int]
        do
                return [
-                               -1, 1, 58
+                               -1, 1, 457
                        ]
        end
        private fun action_table_row822: Array[Int]
        do
                return [
-                               -1, 3, 821,
-                               0, 0, 73,
-                               1, 0, 74
+                               -1, 1, 453
                        ]
        end
        private fun action_table_row823: Array[Int]
        do
                return [
-                               -1, 1, 184,
-                               8, 0, 662,
-                               9, 0, 959,
-                               13, 0, 664,
-                               16, 0, 665,
-                               17, 0, 666,
-                               21, 0, 27,
-                               22, 0, 28,
-                               23, 0, 29
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row824: Array[Int]
        do
                return [
-                               -1, 1, 184,
-                               9, 0, 960,
-                               13, 0, 664,
-                               16, 0, 665,
-                               17, 0, 666,
-                               21, 0, 27,
-                               22, 0, 28,
-                               23, 0, 29
+                               -1, 1, 58
                        ]
        end
        private fun action_table_row825: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 824,
+                               0, 0, 73,
+                               1, 0, 74
                        ]
        end
        private fun action_table_row826: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 184,
+                               8, 0, 662,
+                               9, 0, 963,
+                               13, 0, 664,
+                               16, 0, 665,
+                               17, 0, 666,
+                               21, 0, 27,
+                               22, 0, 28,
+                               23, 0, 29
                        ]
        end
        private fun action_table_row827: Array[Int]
        do
                return [
-                               -1, 1, 60
+                               -1, 1, 184,
+                               9, 0, 964,
+                               13, 0, 664,
+                               16, 0, 665,
+                               17, 0, 666,
+                               21, 0, 27,
+                               22, 0, 28,
+                               23, 0, 29
                        ]
        end
        private fun action_table_row828: Array[Int]
        do
                return [
-                               -1, 1, 318,
-                               26, 1, 583
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row829: Array[Int]
        do
                return [
-                               -1, 1, 313,
-                               26, 1, 578,
-                               50, 0, 159
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row830: Array[Int]
        do
                return [
-                               -1, 3, 829,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 60
                        ]
        end
        private fun action_table_row831: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 320,
+                               26, 1, 587
                        ]
        end
        private fun action_table_row832: Array[Int]
        do
                return [
-                               -1, 1, 296,
-                               26, 1, 563,
-                               58, 0, 968
+                               -1, 1, 315,
+                               26, 1, 582,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row833: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 3, 832,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10258,7 +10240,7 @@ abstract class ParserTable
        private fun action_table_row834: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10266,22 +10248,23 @@ abstract class ParserTable
        private fun action_table_row835: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 298,
+                               26, 1, 567,
+                               57, 0, 972
                        ]
        end
        private fun action_table_row836: Array[Int]
        do
                return [
-                               -1, 1, 387,
-                               47, 0, 843
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row837: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10289,32 +10272,55 @@ abstract class ParserTable
        private fun action_table_row838: Array[Int]
        do
                return [
-                               -1, 1, 392,
-                               47, 0, 843
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row839: Array[Int]
        do
                return [
-                               -1, 1, 528
+                               -1, 1, 389,
+                               75, 0, 846
                        ]
        end
        private fun action_table_row840: Array[Int]
        do
                return [
-                               -1, 1, 523
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row841: Array[Int]
        do
                return [
-                               -1, 1, 605
+                               -1, 1, 394,
+                               75, 0, 846
                        ]
        end
        private fun action_table_row842: Array[Int]
        do
                return [
-                               -1, 3, 841,
+                               -1, 1, 532
+                       ]
+       end
+       private fun action_table_row843: Array[Int]
+       do
+               return [
+                               -1, 1, 527
+                       ]
+       end
+       private fun action_table_row844: Array[Int]
+       do
+               return [
+                               -1, 1, 609
+                       ]
+       end
+       private fun action_table_row845: Array[Int]
+       do
+               return [
+                               -1, 3, 844,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -10325,10 +10331,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -10339,10 +10345,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row843: Array[Int]
+       private fun action_table_row846: Array[Int]
        do
                return [
-                               -1, 3, 842,
+                               -1, 3, 845,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -10353,10 +10359,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -10367,59 +10373,59 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row844: Array[Int]
+       private fun action_table_row847: Array[Int]
        do
                return [
-                               -1, 3, 843,
-                               15, 0, 977,
+                               -1, 3, 846,
+                               35, 0, 436,
                                77, 0, 437
                        ]
        end
-       private fun action_table_row845: Array[Int]
+       private fun action_table_row848: Array[Int]
        do
                return [
-                               -1, 3, 844,
-                               47, 0, 843
+                               -1, 3, 847,
+                               75, 0, 846
                        ]
        end
-       private fun action_table_row846: Array[Int]
+       private fun action_table_row849: Array[Int]
        do
                return [
-                               -1, 1, 537
+                               -1, 1, 541
                        ]
        end
-       private fun action_table_row847: Array[Int]
+       private fun action_table_row850: Array[Int]
        do
                return [
-                               -1, 1, 542
+                               -1, 1, 546
                        ]
        end
-       private fun action_table_row848: Array[Int]
+       private fun action_table_row851: Array[Int]
        do
                return [
-                               -1, 1, 567
+                               -1, 1, 571
                        ]
        end
-       private fun action_table_row849: Array[Int]
+       private fun action_table_row852: Array[Int]
        do
                return [
-                               -1, 1, 572
+                               -1, 1, 576
                        ]
        end
-       private fun action_table_row850: Array[Int]
+       private fun action_table_row853: Array[Int]
        do
                return [
-                               -1, 3, 849,
-                               12, 0, 980,
+                               -1, 3, 852,
+                               12, 0, 983,
                                46, 0, 453,
-                               77, 0, 981,
-                               78, 0, 982
+                               77, 0, 984,
+                               78, 0, 985
                        ]
        end
-       private fun action_table_row851: Array[Int]
+       private fun action_table_row854: Array[Int]
        do
                return [
-                               -1, 3, 850,
+                               -1, 3, 853,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -10430,10 +10436,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -10444,10 +10450,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row852: Array[Int]
+       private fun action_table_row855: Array[Int]
        do
                return [
-                               -1, 3, 851,
+                               -1, 3, 854,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -10458,10 +10464,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -10472,23 +10478,23 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row853: Array[Int]
+       private fun action_table_row856: Array[Int]
        do
                return [
                                -1, 1, 265,
-                               26, 1, 539
+                               26, 1, 543
                        ]
        end
-       private fun action_table_row854: Array[Int]
+       private fun action_table_row857: Array[Int]
        do
                return [
-                               -1, 3, 853,
-                               9, 0, 592,
+                               -1, 3, 856,
+                               9, 0, 593,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
                                24, 0, 30,
-                               26, 0, 597,
+                               26, 0, 598,
                                27, 0, 31,
                                28, 0, 32,
                                33, 0, 33,
@@ -10502,8 +10508,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -10514,31 +10520,31 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row855: Array[Int]
+       private fun action_table_row858: Array[Int]
        do
                return [
-                               -1, 3, 854,
+                               -1, 3, 857,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row856: Array[Int]
+       private fun action_table_row859: Array[Int]
        do
                return [
-                               -1, 1, 320
+                               -1, 1, 322
                        ]
        end
-       private fun action_table_row857: Array[Int]
+       private fun action_table_row860: Array[Int]
        do
                return [
-                               -1, 1, 334
+                               -1, 1, 336
                        ]
        end
-       private fun action_table_row858: Array[Int]
+       private fun action_table_row861: Array[Int]
        do
                return [
-                               -1, 3, 857,
-                               9, 0, 987,
+                               -1, 3, 860,
+                               9, 0, 990,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -10556,8 +10562,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -10568,72 +10574,72 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row859: Array[Int]
+       private fun action_table_row862: Array[Int]
        do
                return [
-                               -1, 3, 858,
+                               -1, 3, 861,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row860: Array[Int]
+       private fun action_table_row863: Array[Int]
        do
                return [
-                               -1, 3, 859,
-                               15, 0, 989
+                               -1, 3, 862,
+                               15, 0, 992
                        ]
        end
-       private fun action_table_row861: Array[Int]
+       private fun action_table_row864: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row862: Array[Int]
+       private fun action_table_row865: Array[Int]
        do
                return [
-                               -1, 3, 861,
-                               54, 0, 991
+                               -1, 3, 864,
+                               53, 0, 994
                        ]
        end
-       private fun action_table_row863: Array[Int]
+       private fun action_table_row866: Array[Int]
        do
                return [
-                               -1, 3, 862,
-                               48, 0, 299,
+                               -1, 3, 865,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
-       private fun action_table_row864: Array[Int]
+       private fun action_table_row867: Array[Int]
        do
                return [
-                               -1, 1, 740
+                               -1, 1, 744
                        ]
        end
-       private fun action_table_row865: Array[Int]
+       private fun action_table_row868: Array[Int]
        do
                return [
                                -1, 1, 230
                        ]
        end
-       private fun action_table_row866: Array[Int]
+       private fun action_table_row869: Array[Int]
        do
                return [
-                               -1, 1, 427
+                               -1, 1, 429
                        ]
        end
-       private fun action_table_row867: Array[Int]
+       private fun action_table_row870: Array[Int]
        do
                return [
-                               -1, 1, 497
+                               -1, 1, 501
                        ]
        end
-       private fun action_table_row868: Array[Int]
+       private fun action_table_row871: Array[Int]
        do
                return [
-                               -1, 3, 867,
+                               -1, 3, 870,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -10644,10 +10650,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -10658,10 +10664,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row869: Array[Int]
+       private fun action_table_row872: Array[Int]
        do
                return [
-                               -1, 3, 868,
+                               -1, 3, 871,
                                12, 0, 737,
                                32, 0, 739,
                                38, 0, 740,
@@ -10671,9 +10677,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -10684,18 +10690,18 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row870: Array[Int]
+       private fun action_table_row873: Array[Int]
        do
                return [
-                               -1, 3, 869,
-                               48, 0, 995,
-                               76, 0, 996
+                               -1, 3, 872,
+                               47, 0, 998,
+                               76, 0, 999
                        ]
        end
-       private fun action_table_row871: Array[Int]
+       private fun action_table_row874: Array[Int]
        do
                return [
-                               -1, 3, 870,
+                               -1, 3, 873,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -10704,9 +10710,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -10717,45 +10723,45 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row872: Array[Int]
+       private fun action_table_row875: Array[Int]
        do
                return [
-                               -1, 1, 494
+                               -1, 1, 498
                        ]
        end
-       private fun action_table_row873: Array[Int]
+       private fun action_table_row876: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row874: Array[Int]
+       private fun action_table_row877: Array[Int]
        do
                return [
-                               -1, 1, 489,
-                               63, 1, 491
+                               -1, 1, 493,
+                               62, 1, 495
                        ]
        end
-       private fun action_table_row875: Array[Int]
+       private fun action_table_row878: Array[Int]
        do
                return [
-                               -1, 3, 874,
-                               63, 0, 1000
+                               -1, 3, 877,
+                               62, 0, 1003
                        ]
        end
-       private fun action_table_row876: Array[Int]
+       private fun action_table_row879: Array[Int]
        do
                return [
-                               -1, 3, 875,
-                               52, 0, 1001
+                               -1, 3, 878,
+                               51, 0, 1004
                        ]
        end
-       private fun action_table_row877: Array[Int]
+       private fun action_table_row880: Array[Int]
        do
                return [
-                               -1, 3, 876,
+                               -1, 3, 879,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -10764,9 +10770,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -10777,55 +10783,31 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row878: Array[Int]
-       do
-               return [
-                               -1, 1, 493
-                       ]
-       end
-       private fun action_table_row879: Array[Int]
-       do
-               return [
-                               -1, 1, 419,
-                               51, 0, 225
-                       ]
-       end
-       private fun action_table_row880: Array[Int]
-       do
-               return [
-                               -1, 3, 879,
-                               53, 0, 1004,
-                               54, 0, 1005
-                       ]
-       end
        private fun action_table_row881: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 497
                        ]
        end
        private fun action_table_row882: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row883: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 882,
+                               52, 0, 1007,
+                               53, 0, 1008
                        ]
        end
        private fun action_table_row884: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10833,7 +10815,7 @@ abstract class ParserTable
        private fun action_table_row885: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10841,7 +10823,7 @@ abstract class ParserTable
        private fun action_table_row886: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10849,7 +10831,7 @@ abstract class ParserTable
        private fun action_table_row887: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10857,7 +10839,7 @@ abstract class ParserTable
        private fun action_table_row888: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10865,7 +10847,7 @@ abstract class ParserTable
        private fun action_table_row889: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10873,7 +10855,7 @@ abstract class ParserTable
        private fun action_table_row890: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10881,7 +10863,7 @@ abstract class ParserTable
        private fun action_table_row891: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10889,7 +10871,7 @@ abstract class ParserTable
        private fun action_table_row892: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10897,7 +10879,7 @@ abstract class ParserTable
        private fun action_table_row893: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10905,7 +10887,7 @@ abstract class ParserTable
        private fun action_table_row894: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10913,7 +10895,7 @@ abstract class ParserTable
        private fun action_table_row895: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10921,7 +10903,7 @@ abstract class ParserTable
        private fun action_table_row896: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10929,7 +10911,7 @@ abstract class ParserTable
        private fun action_table_row897: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -10937,15 +10919,38 @@ abstract class ParserTable
        private fun action_table_row898: Array[Int]
        do
                return [
-                               -1, 1, 271,
-                               50, 0, 159
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row899: Array[Int]
        do
                return [
-                               -1, 1, 290,
-                               9, 0, 1024,
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
+                       ]
+       end
+       private fun action_table_row900: Array[Int]
+       do
+               return [
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
+                       ]
+       end
+       private fun action_table_row901: Array[Int]
+       do
+               return [
+                               -1, 1, 281
+                       ]
+       end
+       private fun action_table_row902: Array[Int]
+       do
+               return [
+                               -1, 1, 289,
+                               9, 0, 1026,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -10963,8 +10968,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -10975,97 +10980,79 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row900: Array[Int]
+       private fun action_table_row903: Array[Int]
        do
                return [
-                               -1, 1, 285
+                               -1, 3, 902,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
-       private fun action_table_row901: Array[Int]
+       private fun action_table_row904: Array[Int]
        do
                return [
-                               -1, 1, 291,
-                               9, 0, 1025,
-                               12, 0, 23,
-                               15, 0, 25,
-                               18, 0, 26,
-                               24, 0, 30,
-                               27, 0, 31,
-                               28, 0, 32,
-                               33, 0, 33,
-                               34, 0, 34,
-                               35, 0, 35,
-                               36, 0, 36,
-                               37, 0, 37,
-                               38, 0, 38,
-                               41, 0, 39,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 47,
-                               78, 0, 48,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
+                               -1, 1, 286
                        ]
        end
-       private fun action_table_row902: Array[Int]
+       private fun action_table_row905: Array[Int]
        do
                return [
-                               -1, 3, 901,
+                               -1, 1, 277,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row906: Array[Int]
+       do
+               return [
+                               -1, 3, 905,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row903: Array[Int]
+       private fun action_table_row907: Array[Int]
        do
                return [
-                               -1, 1, 429
+                               -1, 3, 906,
+                               77, 0, 1031
                        ]
        end
-       private fun action_table_row904: Array[Int]
+       private fun action_table_row908: Array[Int]
        do
                return [
                                -1, 1, 222
                        ]
        end
-       private fun action_table_row905: Array[Int]
+       private fun action_table_row909: Array[Int]
        do
                return [
-                               -1, 3, 904,
+                               -1, 3, 908,
                                77, 0, 645
                        ]
        end
-       private fun action_table_row906: Array[Int]
+       private fun action_table_row910: Array[Int]
        do
                return [
                                -1, 1, 216
                        ]
        end
-       private fun action_table_row907: Array[Int]
+       private fun action_table_row911: Array[Int]
        do
                return [
-                               -1, 1, 736
+                               -1, 1, 740
                        ]
        end
-       private fun action_table_row908: Array[Int]
+       private fun action_table_row912: Array[Int]
        do
                return [
-                               -1, 3, 907,
-                               52, 0, 1028
+                               -1, 3, 911,
+                               51, 0, 1033
                        ]
        end
-       private fun action_table_row909: Array[Int]
+       private fun action_table_row913: Array[Int]
        do
                return [
-                               -1, 3, 908,
-                               9, 0, 1029,
+                               -1, 3, 912,
+                               9, 0, 1034,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -11083,8 +11070,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -11095,85 +11082,112 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row910: Array[Int]
+       private fun action_table_row914: Array[Int]
        do
                return [
-                               -1, 3, 909,
+                               -1, 3, 913,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row911: Array[Int]
+       private fun action_table_row915: Array[Int]
        do
                return [
-                               -1, 1, 212,
-                               51, 0, 444,
-                               56, 0, 261
+                               -1, 3, 914,
+                               0, 0, 1,
+                               1, 0, 2,
+                               15, 0, 1036
                        ]
        end
-       private fun action_table_row912: Array[Int]
+       private fun action_table_row916: Array[Int]
        do
                return [
-                               -1, 3, 911,
+                               -1, 3, 915,
                                0, 0, 1,
                                1, 0, 2,
-                               15, 0, 1032
+                               9, 0, 648,
+                               12, 0, 23,
+                               15, 0, 25,
+                               18, 0, 26,
+                               24, 0, 30,
+                               27, 0, 31,
+                               28, 0, 32,
+                               33, 0, 33,
+                               34, 0, 34,
+                               35, 0, 35,
+                               36, 0, 36,
+                               37, 0, 37,
+                               38, 0, 38,
+                               41, 0, 39,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 47,
+                               78, 0, 48,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
-       private fun action_table_row913: Array[Int]
+       private fun action_table_row917: Array[Int]
        do
                return [
-                               -1, 1, 213,
-                               56, 0, 261
+                               -1, 1, 224
                        ]
        end
-       private fun action_table_row914: Array[Int]
+       private fun action_table_row918: Array[Int]
        do
                return [
-                               -1, 1, 214
+                               -1, 1, 215
                        ]
        end
-       private fun action_table_row915: Array[Int]
+       private fun action_table_row919: Array[Int]
        do
                return [
                                -1, 1, 87
                        ]
        end
-       private fun action_table_row916: Array[Int]
+       private fun action_table_row920: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row917: Array[Int]
+       private fun action_table_row921: Array[Int]
        do
                return [
-                               -1, 1, 731
+                               -1, 1, 735
                        ]
        end
-       private fun action_table_row918: Array[Int]
+       private fun action_table_row922: Array[Int]
        do
                return [
-                               -1, 3, 917,
-                               54, 0, 1036
+                               -1, 3, 921,
+                               53, 0, 1040
                        ]
        end
-       private fun action_table_row919: Array[Int]
+       private fun action_table_row923: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               55, 0, 915
+                               54, 0, 919
                        ]
        end
-       private fun action_table_row920: Array[Int]
+       private fun action_table_row924: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1039,
+                               9, 0, 1043,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -11182,51 +11196,51 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row921: Array[Int]
+       private fun action_table_row925: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row922: Array[Int]
+       private fun action_table_row926: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row923: Array[Int]
+       private fun action_table_row927: Array[Int]
        do
                return [
                                -1, 1, 61
                        ]
        end
-       private fun action_table_row924: Array[Int]
+       private fun action_table_row928: Array[Int]
        do
                return [
                                -1, 1, 89
                        ]
        end
-       private fun action_table_row925: Array[Int]
+       private fun action_table_row929: Array[Int]
        do
                return [
                                -1, 1, 63
                        ]
        end
-       private fun action_table_row926: Array[Int]
+       private fun action_table_row930: Array[Int]
        do
                return [
-                               -1, 1, 734
+                               -1, 1, 738
                        ]
        end
-       private fun action_table_row927: Array[Int]
+       private fun action_table_row931: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1043,
+                               9, 0, 1047,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -11235,40 +11249,40 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row928: Array[Int]
+       private fun action_table_row932: Array[Int]
        do
                return [
                                -1, 1, 88
                        ]
        end
-       private fun action_table_row929: Array[Int]
+       private fun action_table_row933: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               17, 0, 1044,
+                               17, 0, 1048,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
                        ]
        end
-       private fun action_table_row930: Array[Int]
+       private fun action_table_row934: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               13, 0, 1046,
+                               13, 0, 1050,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
                        ]
        end
-       private fun action_table_row931: Array[Int]
+       private fun action_table_row935: Array[Int]
        do
                return [
-                               -1, 3, 930,
-                               18, 0, 1048
+                               -1, 3, 934,
+                               18, 0, 1052
                        ]
        end
-       private fun action_table_row932: Array[Int]
+       private fun action_table_row936: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -11277,89 +11291,89 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row933: Array[Int]
+       private fun action_table_row937: Array[Int]
        do
                return [
-                               -1, 3, 932,
-                               18, 0, 1050
+                               -1, 3, 936,
+                               18, 0, 1054
                        ]
        end
-       private fun action_table_row934: Array[Int]
+       private fun action_table_row938: Array[Int]
        do
                return [
-                               -1, 3, 933,
-                               53, 0, 319,
-                               64, 0, 320,
-                               65, 0, 321,
-                               66, 0, 322,
-                               67, 0, 323,
-                               68, 0, 324,
-                               69, 0, 325,
-                               70, 0, 326,
-                               71, 0, 327,
-                               72, 0, 328,
-                               73, 0, 329,
-                               74, 0, 330,
-                               75, 0, 331,
+                               -1, 3, 937,
+                               52, 0, 319,
+                               63, 0, 320,
+                               64, 0, 321,
+                               65, 0, 322,
+                               66, 0, 323,
+                               67, 0, 324,
+                               68, 0, 325,
+                               69, 0, 326,
+                               70, 0, 327,
+                               71, 0, 328,
+                               72, 0, 329,
+                               73, 0, 330,
+                               74, 0, 331,
                                77, 0, 332
                        ]
        end
-       private fun action_table_row935: Array[Int]
+       private fun action_table_row939: Array[Int]
        do
                return [
-                               -1, 3, 934,
-                               76, 0, 1052
+                               -1, 3, 938,
+                               76, 0, 1056
                        ]
        end
-       private fun action_table_row936: Array[Int]
+       private fun action_table_row940: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               53, 0, 319,
-                               56, 0, 261,
-                               64, 0, 320,
-                               65, 0, 321,
-                               66, 0, 322,
-                               67, 0, 323,
-                               68, 0, 324,
-                               69, 0, 325,
-                               70, 0, 326,
-                               71, 0, 327,
-                               72, 0, 328,
-                               73, 0, 329,
-                               74, 0, 330,
-                               75, 0, 331,
+                               50, 0, 444,
+                               52, 0, 319,
+                               55, 0, 261,
+                               63, 0, 320,
+                               64, 0, 321,
+                               65, 0, 322,
+                               66, 0, 323,
+                               67, 0, 324,
+                               68, 0, 325,
+                               69, 0, 326,
+                               70, 0, 327,
+                               71, 0, 328,
+                               72, 0, 329,
+                               73, 0, 330,
+                               74, 0, 331,
                                77, 0, 332
                        ]
        end
-       private fun action_table_row937: Array[Int]
+       private fun action_table_row941: Array[Int]
        do
                return [
-                               -1, 3, 936,
-                               78, 0, 1055
+                               -1, 3, 940,
+                               78, 0, 1059
                        ]
        end
-       private fun action_table_row938: Array[Int]
+       private fun action_table_row942: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               13, 0, 1056,
+                               13, 0, 1060,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
                        ]
        end
-       private fun action_table_row939: Array[Int]
+       private fun action_table_row943: Array[Int]
        do
                return [
-                               -1, 3, 938,
-                               18, 0, 1058
+                               -1, 3, 942,
+                               18, 0, 1062
                        ]
        end
-       private fun action_table_row940: Array[Int]
+       private fun action_table_row944: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -11368,81 +11382,81 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row941: Array[Int]
+       private fun action_table_row945: Array[Int]
        do
                return [
-                               -1, 3, 940,
-                               18, 0, 1060
+                               -1, 3, 944,
+                               18, 0, 1064
                        ]
        end
-       private fun action_table_row942: Array[Int]
+       private fun action_table_row946: Array[Int]
        do
                return [
-                               -1, 3, 941,
-                               78, 0, 1061
+                               -1, 3, 945,
+                               78, 0, 1065
                        ]
        end
-       private fun action_table_row943: Array[Int]
+       private fun action_table_row947: Array[Int]
        do
                return [
-                               -1, 3, 942,
-                               18, 0, 1062
+                               -1, 3, 946,
+                               18, 0, 1066
                        ]
        end
-       private fun action_table_row944: Array[Int]
+       private fun action_table_row948: Array[Int]
        do
                return [
-                               -1, 3, 943,
-                               78, 0, 1063
+                               -1, 3, 947,
+                               78, 0, 1067
                        ]
        end
-       private fun action_table_row945: Array[Int]
+       private fun action_table_row949: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
-       private fun action_table_row946: Array[Int]
+       private fun action_table_row950: Array[Int]
        do
                return [
-                               -1, 3, 945,
-                               56, 0, 261
+                               -1, 3, 949,
+                               55, 0, 261
                        ]
        end
-       private fun action_table_row947: Array[Int]
+       private fun action_table_row951: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
-       private fun action_table_row948: Array[Int]
+       private fun action_table_row952: Array[Int]
        do
                return [
-                               -1, 3, 947,
-                               15, 0, 1067
+                               -1, 3, 951,
+                               15, 0, 1071
                        ]
        end
-       private fun action_table_row949: Array[Int]
+       private fun action_table_row953: Array[Int]
        do
                return [
                                -1, 1, 110,
-                               56, 0, 261,
-                               58, 0, 1068
+                               55, 0, 261,
+                               57, 0, 1072
                        ]
        end
-       private fun action_table_row950: Array[Int]
+       private fun action_table_row954: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1070,
+                               9, 0, 1074,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -11451,58 +11465,58 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row951: Array[Int]
+       private fun action_table_row955: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row952: Array[Int]
+       private fun action_table_row956: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row953: Array[Int]
+       private fun action_table_row957: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row954: Array[Int]
+       private fun action_table_row958: Array[Int]
        do
                return [
-                               -1, 3, 953,
-                               26, 0, 1074
+                               -1, 3, 957,
+                               26, 0, 1078
                        ]
        end
-       private fun action_table_row955: Array[Int]
+       private fun action_table_row959: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row956: Array[Int]
+       private fun action_table_row960: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row957: Array[Int]
+       private fun action_table_row961: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1077,
+                               9, 0, 1081,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -11511,39 +11525,39 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row958: Array[Int]
+       private fun action_table_row962: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row959: Array[Int]
+       private fun action_table_row963: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row960: Array[Int]
+       private fun action_table_row964: Array[Int]
        do
                return [
                                -1, 1, 62
                        ]
        end
-       private fun action_table_row961: Array[Int]
+       private fun action_table_row965: Array[Int]
        do
                return [
                                -1, 1, 65
                        ]
        end
-       private fun action_table_row962: Array[Int]
+       private fun action_table_row966: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1081,
+                               9, 0, 1085,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -11552,11 +11566,11 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row963: Array[Int]
+       private fun action_table_row967: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1082,
+                               9, 0, 1086,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -11565,26 +11579,26 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row964: Array[Int]
+       private fun action_table_row968: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row965: Array[Int]
+       private fun action_table_row969: Array[Int]
        do
                return [
-                               -1, 1, 317,
-                               26, 1, 582
+                               -1, 1, 319,
+                               26, 1, 586
                        ]
        end
-       private fun action_table_row966: Array[Int]
+       private fun action_table_row970: Array[Int]
        do
                return [
-                               -1, 3, 965,
-                               9, 0, 1084,
+                               -1, 3, 969,
+                               9, 0, 1088,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -11602,8 +11616,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -11614,18 +11628,18 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row967: Array[Int]
+       private fun action_table_row971: Array[Int]
        do
                return [
-                               -1, 3, 966,
+                               -1, 3, 970,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row968: Array[Int]
+       private fun action_table_row972: Array[Int]
        do
                return [
-                               -1, 3, 967,
+                               -1, 3, 971,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -11636,10 +11650,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -11650,124 +11664,88 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row969: Array[Int]
+       private fun action_table_row973: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row970: Array[Int]
+       private fun action_table_row974: Array[Int]
        do
                return [
-                               -1, 3, 969,
-                               25, 0, 1088
+                               -1, 3, 973,
+                               25, 0, 1092
                        ]
        end
-       private fun action_table_row971: Array[Int]
+       private fun action_table_row975: Array[Int]
        do
                return [
-                               -1, 3, 970,
-                               15, 0, 1089
+                               -1, 3, 974,
+                               15, 0, 1093
                        ]
        end
-       private fun action_table_row972: Array[Int]
+       private fun action_table_row976: Array[Int]
        do
                return [
-                               -1, 3, 971,
-                               29, 0, 1090
+                               -1, 3, 975,
+                               29, 0, 1094
                        ]
        end
-       private fun action_table_row973: Array[Int]
+       private fun action_table_row977: Array[Int]
        do
                return [
-                               -1, 1, 608
+                               -1, 1, 612
                        ]
        end
-       private fun action_table_row974: Array[Int]
+       private fun action_table_row978: Array[Int]
        do
                return [
-                               -1, 3, 973,
+                               -1, 3, 977,
                                12, 0, 526,
                                46, 0, 453,
-                               77, 0, 1091,
+                               77, 0, 1095,
                                78, 0, 528
                        ]
        end
-       private fun action_table_row975: Array[Int]
+       private fun action_table_row979: Array[Int]
        do
                return [
-                               -1, 1, 609
+                               -1, 1, 613
                        ]
        end
-       private fun action_table_row976: Array[Int]
+       private fun action_table_row980: Array[Int]
        do
                return [
-                               -1, 1, 569
+                               -1, 1, 573
                        ]
        end
-       private fun action_table_row977: Array[Int]
+       private fun action_table_row981: Array[Int]
        do
                return [
-                               -1, 1, 574
+                               -1, 1, 578
                        ]
        end
-       private fun action_table_row978: Array[Int]
+       private fun action_table_row982: Array[Int]
        do
                return [
-                               -1, 3, 977,
-                               0, 0, 1,
-                               1, 0, 2,
-                               9, 0, 1092,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
-                               38, 0, 38,
-                               41, 0, 605,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
+                               -1, 3, 981,
+                               15, 0, 1096,
+                               50, 0, 539,
+                               77, 0, 540
                        ]
        end
-       private fun action_table_row979: Array[Int]
-       do
-               return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2,
-                               15, 0, 1095
-                       ]
-       end
-       private fun action_table_row980: Array[Int]
+       private fun action_table_row983: Array[Int]
        do
                return [
-                               -1, 1, 543
+                               -1, 1, 547
                        ]
        end
-       private fun action_table_row981: Array[Int]
+       private fun action_table_row984: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -11778,11 +11756,11 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -11793,10 +11771,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row982: Array[Int]
+       private fun action_table_row985: Array[Int]
        do
                return [
-                               -1, 1, 424,
+                               -1, 1, 426,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -11807,14 +11785,14 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               51, 0, 106,
-                               53, 1, 419,
-                               58, 1, 419,
-                               59, 1, 419,
-                               60, 1, 419,
-                               63, 1, 419,
-                               65, 0, 107,
+                               48, 0, 105,
+                               50, 0, 106,
+                               52, 1, 421,
+                               57, 1, 421,
+                               58, 1, 421,
+                               59, 1, 421,
+                               62, 1, 421,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -11825,43 +11803,43 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row983: Array[Int]
+       private fun action_table_row986: Array[Int]
        do
                return [
-                               -1, 1, 384,
-                               58, 0, 1099,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 386,
+                               57, 0, 1101,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
-       private fun action_table_row984: Array[Int]
+       private fun action_table_row987: Array[Int]
        do
                return [
-                               -1, 1, 570
+                               -1, 1, 574
                        ]
        end
-       private fun action_table_row985: Array[Int]
+       private fun action_table_row988: Array[Int]
        do
                return [
-                               -1, 1, 575
+                               -1, 1, 579
                        ]
        end
-       private fun action_table_row986: Array[Int]
+       private fun action_table_row989: Array[Int]
        do
                return [
-                               -1, 1, 322
+                               -1, 1, 324
                        ]
        end
-       private fun action_table_row987: Array[Int]
+       private fun action_table_row990: Array[Int]
        do
                return [
-                               -1, 3, 986,
-                               9, 0, 592,
+                               -1, 3, 989,
+                               9, 0, 593,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
                                24, 0, 30,
-                               26, 0, 597,
+                               26, 0, 598,
                                27, 0, 31,
                                28, 0, 32,
                                33, 0, 33,
@@ -11875,8 +11853,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -11887,18 +11865,18 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row988: Array[Int]
+       private fun action_table_row991: Array[Int]
        do
                return [
-                               -1, 1, 328,
-                               50, 0, 159
+                               -1, 1, 330,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row989: Array[Int]
+       private fun action_table_row992: Array[Int]
        do
                return [
-                               -1, 3, 988,
-                               9, 0, 1103,
+                               -1, 3, 991,
+                               9, 0, 1105,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -11916,8 +11894,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -11928,13 +11906,13 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row990: Array[Int]
+       private fun action_table_row993: Array[Int]
        do
                return [
-                               -1, 3, 989,
+                               -1, 3, 992,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 1104,
+                               9, 0, 1106,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -11952,8 +11930,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -11964,116 +11942,116 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row991: Array[Int]
+       private fun action_table_row994: Array[Int]
        do
                return [
-                               -1, 3, 990,
-                               26, 0, 1107
+                               -1, 3, 993,
+                               26, 0, 1109
                        ]
        end
-       private fun action_table_row992: Array[Int]
+       private fun action_table_row995: Array[Int]
        do
                return [
                                -1, 1, 231
                        ]
        end
-       private fun action_table_row993: Array[Int]
+       private fun action_table_row996: Array[Int]
        do
                return [
                                -1, 1, 234
                        ]
        end
-       private fun action_table_row994: Array[Int]
+       private fun action_table_row997: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row995: Array[Int]
+       private fun action_table_row998: Array[Int]
        do
                return [
-                               -1, 1, 465
+                               -1, 1, 469
                        ]
        end
-       private fun action_table_row996: Array[Int]
+       private fun action_table_row999: Array[Int]
        do
                return [
-                               -1, 3, 995,
-                               76, 0, 1109
+                               -1, 3, 998,
+                               76, 0, 1111
                        ]
        end
-       private fun action_table_row997: Array[Int]
+       private fun action_table_row1000: Array[Int]
        do
                return [
-                               -1, 1, 454
+                               -1, 1, 458
                        ]
        end
-       private fun action_table_row998: Array[Int]
+       private fun action_table_row1001: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225,
-                               63, 0, 1110
+                               -1, 1, 421,
+                               50, 0, 225,
+                               62, 0, 1112
                        ]
        end
-       private fun action_table_row999: Array[Int]
+       private fun action_table_row1002: Array[Int]
        do
                return [
-                               -1, 1, 485
+                               -1, 1, 489
                        ]
        end
-       private fun action_table_row1000: Array[Int]
+       private fun action_table_row1003: Array[Int]
        do
                return [
-                               -1, 3, 999,
-                               48, 0, 995,
-                               76, 0, 996
+                               -1, 3, 1002,
+                               47, 0, 998,
+                               76, 0, 999
                        ]
        end
-       private fun action_table_row1001: Array[Int]
+       private fun action_table_row1004: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1002: Array[Int]
+       private fun action_table_row1005: Array[Int]
        do
                return [
-                               -1, 1, 508
+                               -1, 1, 512
                        ]
        end
-       private fun action_table_row1003: Array[Int]
+       private fun action_table_row1006: Array[Int]
        do
                return [
-                               -1, 1, 484
+                               -1, 1, 488
                        ]
        end
-       private fun action_table_row1004: Array[Int]
+       private fun action_table_row1007: Array[Int]
        do
                return [
-                               -1, 1, 495
+                               -1, 1, 499
                        ]
        end
-       private fun action_table_row1005: Array[Int]
+       private fun action_table_row1008: Array[Int]
        do
                return [
-                               -1, 1, 395
+                               -1, 1, 397
                        ]
        end
-       private fun action_table_row1006: Array[Int]
+       private fun action_table_row1009: Array[Int]
        do
                return [
-                               -1, 1, 394
+                               -1, 1, 396
                        ]
        end
-       private fun action_table_row1007: Array[Int]
+       private fun action_table_row1010: Array[Int]
        do
                return [
-                               -1, 3, 1006,
+                               -1, 3, 1009,
                                12, 0, 737,
                                32, 0, 739,
                                38, 0, 740,
@@ -12083,9 +12061,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12096,10 +12074,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1008: Array[Int]
+       private fun action_table_row1011: Array[Int]
        do
                return [
-                               -1, 3, 1007,
+                               -1, 3, 1010,
                                12, 0, 737,
                                32, 0, 739,
                                38, 0, 740,
@@ -12109,9 +12087,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12122,10 +12100,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1009: Array[Int]
+       private fun action_table_row1012: Array[Int]
        do
                return [
-                               -1, 3, 1008,
+                               -1, 3, 1011,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12134,9 +12112,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12147,18 +12125,18 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1010: Array[Int]
+       private fun action_table_row1013: Array[Int]
        do
                return [
-                               -1, 3, 1009,
-                               48, 0, 995,
-                               76, 0, 996
+                               -1, 3, 1012,
+                               47, 0, 998,
+                               76, 0, 999
                        ]
        end
-       private fun action_table_row1011: Array[Int]
+       private fun action_table_row1014: Array[Int]
        do
                return [
-                               -1, 3, 1010,
+                               -1, 3, 1013,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12167,9 +12145,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12180,10 +12158,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1012: Array[Int]
+       private fun action_table_row1015: Array[Int]
        do
                return [
-                               -1, 3, 1011,
+                               -1, 3, 1014,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12192,9 +12170,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12205,10 +12183,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1013: Array[Int]
+       private fun action_table_row1016: Array[Int]
        do
                return [
-                               -1, 3, 1012,
+                               -1, 3, 1015,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12217,9 +12195,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12230,10 +12208,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1014: Array[Int]
+       private fun action_table_row1017: Array[Int]
        do
                return [
-                               -1, 3, 1013,
+                               -1, 3, 1016,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12242,9 +12220,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12255,10 +12233,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1015: Array[Int]
+       private fun action_table_row1018: Array[Int]
        do
                return [
-                               -1, 3, 1014,
+                               -1, 3, 1017,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12267,9 +12245,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12280,10 +12258,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1016: Array[Int]
+       private fun action_table_row1019: Array[Int]
        do
                return [
-                               -1, 3, 1015,
+                               -1, 3, 1018,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12292,9 +12270,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12305,10 +12283,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1017: Array[Int]
+       private fun action_table_row1020: Array[Int]
        do
                return [
-                               -1, 3, 1016,
+                               -1, 3, 1019,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12317,9 +12295,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12330,10 +12308,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1018: Array[Int]
+       private fun action_table_row1021: Array[Int]
        do
                return [
-                               -1, 3, 1017,
+                               -1, 3, 1020,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12342,9 +12320,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12355,10 +12333,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1019: Array[Int]
+       private fun action_table_row1022: Array[Int]
        do
                return [
-                               -1, 3, 1018,
+                               -1, 3, 1021,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12367,9 +12345,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12380,10 +12358,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1020: Array[Int]
+       private fun action_table_row1023: Array[Int]
        do
                return [
-                               -1, 3, 1019,
+                               -1, 3, 1022,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12392,9 +12370,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12405,10 +12383,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1021: Array[Int]
+       private fun action_table_row1024: Array[Int]
        do
                return [
-                               -1, 3, 1020,
+                               -1, 3, 1023,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12417,9 +12395,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12430,10 +12408,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1022: Array[Int]
+       private fun action_table_row1025: Array[Int]
        do
                return [
-                               -1, 3, 1021,
+                               -1, 3, 1024,
                                12, 0, 737,
                                38, 0, 740,
                                40, 0, 741,
@@ -12442,9 +12420,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -12455,41 +12433,68 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1023: Array[Int]
+       private fun action_table_row1026: Array[Int]
        do
                return [
-                               -1, 3, 1022,
-                               12, 0, 1130,
-                               46, 0, 1131,
-                               77, 0, 1132,
-                               78, 0, 1133
+                               -1, 3, 1025,
+                               12, 0, 1132,
+                               46, 0, 1133,
+                               77, 0, 1134,
+                               78, 0, 1135
                        ]
        end
-       private fun action_table_row1024: Array[Int]
+       private fun action_table_row1027: Array[Int]
        do
                return [
-                               -1, 1, 279
+                               -1, 1, 271,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1025: Array[Int]
+       private fun action_table_row1028: Array[Int]
        do
                return [
-                               -1, 1, 272,
-                               50, 0, 159
+                               -1, 1, 290,
+                               9, 0, 1137,
+                               12, 0, 23,
+                               15, 0, 25,
+                               18, 0, 26,
+                               24, 0, 30,
+                               27, 0, 31,
+                               28, 0, 32,
+                               33, 0, 33,
+                               34, 0, 34,
+                               35, 0, 35,
+                               36, 0, 36,
+                               37, 0, 37,
+                               38, 0, 38,
+                               41, 0, 39,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 47,
+                               78, 0, 48,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
-       private fun action_table_row1026: Array[Int]
+       private fun action_table_row1029: Array[Int]
        do
                return [
-                               -1, 1, 275,
-                               50, 0, 159
+                               -1, 1, 285
                        ]
        end
-       private fun action_table_row1027: Array[Int]
+       private fun action_table_row1030: Array[Int]
        do
                return [
-                               -1, 1, 292,
-                               9, 0, 1136,
+                               -1, 1, 291,
+                               9, 0, 1138,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -12507,8 +12512,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -12519,29 +12524,43 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1028: Array[Int]
+       private fun action_table_row1031: Array[Int]
+       do
+               return [
+                               -1, 3, 1030,
+                               0, 0, 1,
+                               1, 0, 2
+                       ]
+       end
+       private fun action_table_row1032: Array[Int]
+       do
+               return [
+                               -1, 1, 433
+                       ]
+       end
+       private fun action_table_row1033: Array[Int]
        do
                return [
                                -1, 1, 219
                        ]
        end
-       private fun action_table_row1029: Array[Int]
+       private fun action_table_row1034: Array[Int]
        do
                return [
                                -1, 1, 217
                        ]
        end
-       private fun action_table_row1030: Array[Int]
+       private fun action_table_row1035: Array[Int]
        do
                return [
                                -1, 1, 236
                        ]
        end
-       private fun action_table_row1031: Array[Int]
+       private fun action_table_row1036: Array[Int]
        do
                return [
-                               -1, 3, 1030,
-                               9, 0, 1137,
+                               -1, 3, 1035,
+                               9, 0, 1140,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -12559,8 +12578,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -12571,19 +12590,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1032: Array[Int]
-       do
-               return [
-                               -1, 3, 1031,
-                               0, 0, 1,
-                               1, 0, 2,
-                               15, 0, 1138
-                       ]
-       end
-       private fun action_table_row1033: Array[Int]
+       private fun action_table_row1037: Array[Int]
        do
                return [
-                               -1, 3, 1032,
+                               -1, 3, 1036,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -12604,8 +12614,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -12616,55 +12626,57 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1034: Array[Int]
+       private fun action_table_row1038: Array[Int]
        do
                return [
-                               -1, 1, 224
+                               -1, 1, 225
                        ]
        end
-       private fun action_table_row1035: Array[Int]
+       private fun action_table_row1039: Array[Int]
        do
                return [
-                               -1, 1, 215
+                               -1, 3, 1038,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
-       private fun action_table_row1036: Array[Int]
+       private fun action_table_row1040: Array[Int]
        do
                return [
-                               -1, 3, 1035,
-                               76, 0, 785
+                               -1, 3, 1039,
+                               76, 0, 788
                        ]
        end
-       private fun action_table_row1037: Array[Int]
+       private fun action_table_row1041: Array[Int]
        do
                return [
                                -1, 1, 83
                        ]
        end
-       private fun action_table_row1038: Array[Int]
+       private fun action_table_row1042: Array[Int]
        do
                return [
-                               -1, 1, 732
+                               -1, 1, 736
                        ]
        end
-       private fun action_table_row1039: Array[Int]
+       private fun action_table_row1043: Array[Int]
        do
                return [
-                               -1, 3, 1038,
-                               54, 0, 1142
+                               -1, 3, 1042,
+                               53, 0, 1144
                        ]
        end
-       private fun action_table_row1040: Array[Int]
+       private fun action_table_row1044: Array[Int]
        do
                return [
                                -1, 1, 67
                        ]
        end
-       private fun action_table_row1041: Array[Int]
+       private fun action_table_row1045: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1143,
+                               9, 0, 1145,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -12673,11 +12685,11 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1042: Array[Int]
+       private fun action_table_row1046: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1144,
+                               9, 0, 1146,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -12686,38 +12698,38 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1043: Array[Int]
+       private fun action_table_row1047: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1044: Array[Int]
+       private fun action_table_row1048: Array[Int]
        do
                return [
                                -1, 1, 64
                        ]
        end
-       private fun action_table_row1045: Array[Int]
+       private fun action_table_row1049: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               13, 0, 1146,
+                               13, 0, 1148,
                                21, 0, 27,
                                22, 0, 28,
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1046: Array[Int]
+       private fun action_table_row1050: Array[Int]
        do
                return [
-                               -1, 3, 1045,
-                               18, 0, 1148
+                               -1, 3, 1049,
+                               18, 0, 1150
                        ]
        end
-       private fun action_table_row1047: Array[Int]
+       private fun action_table_row1051: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -12726,77 +12738,77 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1048: Array[Int]
+       private fun action_table_row1052: Array[Int]
        do
                return [
-                               -1, 3, 1047,
-                               18, 0, 1150
+                               -1, 3, 1051,
+                               18, 0, 1152
                        ]
        end
-       private fun action_table_row1049: Array[Int]
+       private fun action_table_row1053: Array[Int]
        do
                return [
-                               -1, 3, 1048,
-                               78, 0, 1151
+                               -1, 3, 1052,
+                               78, 0, 1153
                        ]
        end
-       private fun action_table_row1050: Array[Int]
+       private fun action_table_row1054: Array[Int]
        do
                return [
-                               -1, 3, 1049,
-                               18, 0, 1152
+                               -1, 3, 1053,
+                               18, 0, 1154
                        ]
        end
-       private fun action_table_row1051: Array[Int]
+       private fun action_table_row1055: Array[Int]
        do
                return [
-                               -1, 3, 1050,
-                               78, 0, 1153
+                               -1, 3, 1054,
+                               78, 0, 1155
                        ]
        end
-       private fun action_table_row1052: Array[Int]
+       private fun action_table_row1056: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
-       private fun action_table_row1053: Array[Int]
+       private fun action_table_row1057: Array[Int]
        do
                return [
-                               -1, 3, 1052,
-                               56, 0, 261
+                               -1, 3, 1056,
+                               55, 0, 261
                        ]
        end
-       private fun action_table_row1054: Array[Int]
+       private fun action_table_row1058: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2,
-                               51, 0, 444,
-                               56, 0, 261
+                               50, 0, 444,
+                               55, 0, 261
                        ]
        end
-       private fun action_table_row1055: Array[Int]
+       private fun action_table_row1059: Array[Int]
        do
                return [
-                               -1, 3, 1054,
-                               15, 0, 1157
+                               -1, 3, 1058,
+                               15, 0, 1159
                        ]
        end
-       private fun action_table_row1056: Array[Int]
+       private fun action_table_row1060: Array[Int]
        do
                return [
                                -1, 1, 119,
-                               56, 0, 261,
-                               58, 0, 1158
+                               55, 0, 261,
+                               57, 0, 1160
                        ]
        end
-       private fun action_table_row1057: Array[Int]
+       private fun action_table_row1061: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -12805,82 +12817,82 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1058: Array[Int]
+       private fun action_table_row1062: Array[Int]
        do
                return [
-                               -1, 3, 1057,
-                               18, 0, 1161
+                               -1, 3, 1061,
+                               18, 0, 1163
                        ]
        end
-       private fun action_table_row1059: Array[Int]
+       private fun action_table_row1063: Array[Int]
        do
                return [
-                               -1, 3, 1058,
-                               78, 0, 1162
+                               -1, 3, 1062,
+                               78, 0, 1164
                        ]
        end
-       private fun action_table_row1060: Array[Int]
+       private fun action_table_row1064: Array[Int]
        do
                return [
-                               -1, 3, 1059,
-                               18, 0, 1163
+                               -1, 3, 1063,
+                               18, 0, 1165
                        ]
        end
-       private fun action_table_row1061: Array[Int]
+       private fun action_table_row1065: Array[Int]
        do
                return [
-                               -1, 3, 1060,
-                               78, 0, 1164
+                               -1, 3, 1064,
+                               78, 0, 1166
                        ]
        end
-       private fun action_table_row1062: Array[Int]
+       private fun action_table_row1066: Array[Int]
        do
                return [
                                -1, 1, 104,
-                               56, 0, 261,
-                               58, 0, 1165
+                               55, 0, 261,
+                               57, 0, 1167
                        ]
        end
-       private fun action_table_row1063: Array[Int]
+       private fun action_table_row1067: Array[Int]
        do
                return [
-                               -1, 3, 1062,
-                               78, 0, 1167
+                               -1, 3, 1066,
+                               78, 0, 1169
                        ]
        end
-       private fun action_table_row1064: Array[Int]
+       private fun action_table_row1068: Array[Int]
        do
                return [
                                -1, 1, 108,
-                               56, 0, 261,
-                               58, 0, 1168
+                               55, 0, 261,
+                               57, 0, 1170
                        ]
        end
-       private fun action_table_row1065: Array[Int]
+       private fun action_table_row1069: Array[Int]
        do
                return [
-                               -1, 3, 1064,
-                               14, 0, 1170,
-                               15, 0, 1171
+                               -1, 3, 1068,
+                               14, 0, 1172,
+                               15, 0, 1173
                        ]
        end
-       private fun action_table_row1066: Array[Int]
+       private fun action_table_row1070: Array[Int]
        do
                return [
                                -1, 1, 182
                        ]
        end
-       private fun action_table_row1067: Array[Int]
+       private fun action_table_row1071: Array[Int]
        do
                return [
-                               -1, 3, 1066,
-                               15, 0, 1172
+                               -1, 3, 1070,
+                               15, 0, 1174
                        ]
        end
-       private fun action_table_row1068: Array[Int]
+       private fun action_table_row1072: Array[Int]
        do
                return [
-                               -1, 3, 1067,
+                               -1, 3, 1071,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -12901,8 +12913,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -12913,32 +12925,32 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1069: Array[Int]
+       private fun action_table_row1073: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1070: Array[Int]
+       private fun action_table_row1074: Array[Int]
        do
                return [
                                -1, 1, 128,
-                               58, 0, 1175
+                               57, 0, 1177
                        ]
        end
-       private fun action_table_row1071: Array[Int]
+       private fun action_table_row1075: Array[Int]
        do
                return [
                                -1, 1, 71
                        ]
        end
-       private fun action_table_row1072: Array[Int]
+       private fun action_table_row1076: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1176,
+                               9, 0, 1178,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -12947,53 +12959,53 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1073: Array[Int]
+       private fun action_table_row1077: Array[Int]
        do
                return [
-                               -1, 3, 1072,
-                               45, 0, 1177
+                               -1, 3, 1076,
+                               45, 0, 1179
                        ]
        end
-       private fun action_table_row1074: Array[Int]
+       private fun action_table_row1078: Array[Int]
        do
                return [
-                               -1, 3, 1073,
-                               52, 0, 1178
+                               -1, 3, 1077,
+                               51, 0, 1180
                        ]
        end
-       private fun action_table_row1075: Array[Int]
+       private fun action_table_row1079: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1076: Array[Int]
+       private fun action_table_row1080: Array[Int]
        do
                return [
-                               -1, 3, 1075,
-                               45, 0, 1180
+                               -1, 3, 1079,
+                               45, 0, 1182
                        ]
        end
-       private fun action_table_row1077: Array[Int]
+       private fun action_table_row1081: Array[Int]
        do
                return [
-                               -1, 3, 1076,
-                               52, 0, 1181
+                               -1, 3, 1080,
+                               51, 0, 1183
                        ]
        end
-       private fun action_table_row1078: Array[Int]
+       private fun action_table_row1082: Array[Int]
        do
                return [
                                -1, 1, 69
                        ]
        end
-       private fun action_table_row1079: Array[Int]
+       private fun action_table_row1083: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1182,
+                               9, 0, 1184,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -13002,11 +13014,11 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1080: Array[Int]
+       private fun action_table_row1084: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1183,
+                               9, 0, 1185,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -13015,31 +13027,31 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1081: Array[Int]
+       private fun action_table_row1085: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1082: Array[Int]
+       private fun action_table_row1086: Array[Int]
        do
                return [
                                -1, 1, 66
                        ]
        end
-       private fun action_table_row1083: Array[Int]
+       private fun action_table_row1087: Array[Int]
        do
                return [
                                -1, 1, 73
                        ]
        end
-       private fun action_table_row1084: Array[Int]
+       private fun action_table_row1088: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1185,
+                               9, 0, 1187,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -13048,19 +13060,19 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1085: Array[Int]
+       private fun action_table_row1089: Array[Int]
        do
                return [
-                               -1, 1, 311,
-                               26, 1, 576,
-                               50, 0, 159
+                               -1, 1, 313,
+                               26, 1, 580,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1086: Array[Int]
+       private fun action_table_row1090: Array[Int]
        do
                return [
-                               -1, 3, 1085,
-                               9, 0, 1187,
+                               -1, 3, 1089,
+                               9, 0, 1189,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -13078,8 +13090,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -13090,16 +13102,16 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1087: Array[Int]
+       private fun action_table_row1091: Array[Int]
        do
                return [
-                               -1, 1, 564
+                               -1, 1, 568
                        ]
        end
-       private fun action_table_row1088: Array[Int]
+       private fun action_table_row1092: Array[Int]
        do
                return [
-                               -1, 3, 1087,
+                               -1, 3, 1091,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -13110,10 +13122,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -13124,36 +13136,36 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1089: Array[Int]
+       private fun action_table_row1093: Array[Int]
        do
                return [
-                               -1, 3, 1088,
+                               -1, 3, 1092,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 592,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               26, 0, 597,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
+                               9, 0, 593,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               26, 0, 598,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 605,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -13161,92 +13173,35 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1090: Array[Int]
+       private fun action_table_row1094: Array[Int]
        do
                return [
-                               -1, 3, 1089,
+                               -1, 3, 1093,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 1190,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
-                               38, 0, 38,
-                               41, 0, 605,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
-                       ]
-       end
-       private fun action_table_row1091: Array[Int]
-       do
-               return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
-                       ]
-       end
-       private fun action_table_row1092: Array[Int]
-       do
-               return [
-                               -1, 1, 419,
-                               51, 0, 225
-                       ]
-       end
-       private fun action_table_row1093: Array[Int]
-       do
-               return [
-                               -1, 1, 274,
-                               26, 1, 547,
-                               50, 0, 159
-                       ]
-       end
-       private fun action_table_row1094: Array[Int]
-       do
-               return [
-                               -1, 1, 293,
-                               9, 0, 1196,
-                               12, 0, 23,
-                               15, 0, 25,
-                               18, 0, 26,
-                               24, 0, 30,
-                               27, 0, 31,
-                               28, 0, 32,
-                               33, 0, 33,
-                               34, 0, 34,
-                               35, 0, 35,
-                               36, 0, 36,
-                               37, 0, 37,
+                               9, 0, 1192,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 39,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 47,
-                               78, 0, 48,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -13257,38 +13212,47 @@ abstract class ParserTable
        private fun action_table_row1095: Array[Int]
        do
                return [
-                               -1, 1, 560
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1096: Array[Int]
        do
                return [
-                               -1, 3, 1095,
+                               -1, 1, 421,
+                               50, 0, 225
+                       ]
+       end
+       private fun action_table_row1097: Array[Int]
+       do
+               return [
+                               -1, 3, 1096,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 1198,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
+                               9, 0, 1197,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 605,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -13296,34 +13260,41 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1097: Array[Int]
+       private fun action_table_row1098: Array[Int]
+       do
+               return [
+                               -1, 3, 1097,
+                               15, 0, 1200
+                       ]
+       end
+       private fun action_table_row1099: Array[Int]
        do
                return [
                                -1, 1, 266,
-                               26, 1, 540
+                               26, 1, 544
                        ]
        end
-       private fun action_table_row1098: Array[Int]
+       private fun action_table_row1100: Array[Int]
        do
                return [
-                               -1, 1, 386,
-                               58, 0, 1201,
-                               59, 0, 179,
-                               60, 0, 180
+                               -1, 1, 388,
+                               57, 0, 1201,
+                               58, 0, 179,
+                               59, 0, 180
                        ]
        end
-       private fun action_table_row1099: Array[Int]
+       private fun action_table_row1101: Array[Int]
        do
                return [
                                -1, 1, 260,
-                               26, 1, 534,
-                               47, 0, 843
+                               26, 1, 538,
+                               75, 0, 846
                        ]
        end
-       private fun action_table_row1100: Array[Int]
+       private fun action_table_row1102: Array[Int]
        do
                return [
-                               -1, 3, 1099,
+                               -1, 3, 1101,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -13334,10 +13305,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -13348,10 +13319,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1101: Array[Int]
+       private fun action_table_row1103: Array[Int]
        do
                return [
-                               -1, 3, 1100,
+                               -1, 3, 1102,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -13362,10 +13333,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -13376,42 +13347,42 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1102: Array[Int]
+       private fun action_table_row1104: Array[Int]
        do
                return [
-                               -1, 1, 323
+                               -1, 1, 325
                        ]
        end
-       private fun action_table_row1103: Array[Int]
+       private fun action_table_row1105: Array[Int]
        do
                return [
-                               -1, 1, 332
+                               -1, 1, 334
                        ]
        end
-       private fun action_table_row1104: Array[Int]
+       private fun action_table_row1106: Array[Int]
        do
                return [
-                               -1, 1, 329,
-                               50, 0, 159
+                               -1, 1, 331,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1105: Array[Int]
+       private fun action_table_row1107: Array[Int]
        do
                return [
-                               -1, 1, 340,
-                               50, 0, 159
+                               -1, 1, 342,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1106: Array[Int]
+       private fun action_table_row1108: Array[Int]
        do
                return [
-                               -1, 1, 345
+                               -1, 1, 347
                        ]
        end
-       private fun action_table_row1107: Array[Int]
+       private fun action_table_row1109: Array[Int]
        do
                return [
-                               -1, 3, 1106,
+                               -1, 3, 1108,
                                9, 0, 1208,
                                12, 0, 23,
                                15, 0, 25,
@@ -13430,8 +13401,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -13442,236 +13413,229 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1108: Array[Int]
+       private fun action_table_row1110: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1109: Array[Int]
-       do
-               return [
-                               -1, 3, 1108,
-                               25, 0, 1211
-                       ]
-       end
-       private fun action_table_row1110: Array[Int]
-       do
-               return [
-                               -1, 1, 455
-                       ]
-       end
        private fun action_table_row1111: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 3, 1110,
+                               25, 0, 1211
                        ]
        end
        private fun action_table_row1112: Array[Int]
        do
                return [
-                               -1, 1, 487
+                               -1, 1, 459
                        ]
        end
        private fun action_table_row1113: Array[Int]
        do
                return [
-                               -1, 3, 1112,
-                               63, 0, 1110
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1114: Array[Int]
        do
                return [
-                               -1, 3, 1113,
-                               12, 0, 1130,
-                               46, 0, 1131,
-                               77, 0, 1132,
-                               78, 0, 1213
+                               -1, 1, 491
                        ]
        end
        private fun action_table_row1115: Array[Int]
        do
                return [
-                               -1, 1, 463
+                               -1, 3, 1114,
+                               62, 0, 1112
                        ]
        end
        private fun action_table_row1116: Array[Int]
        do
                return [
-                               -1, 1, 462
+                               -1, 3, 1115,
+                               12, 0, 1132,
+                               46, 0, 1133,
+                               77, 0, 1134,
+                               78, 0, 1213
                        ]
        end
        private fun action_table_row1117: Array[Int]
        do
                return [
-                               -1, 1, 468,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 467
                        ]
        end
        private fun action_table_row1118: Array[Int]
        do
                return [
-                               -1, 1, 475
+                               -1, 1, 466
                        ]
        end
        private fun action_table_row1119: Array[Int]
        do
                return [
-                               -1, 1, 477,
-                               66, 0, 893,
-                               67, 0, 894,
-                               68, 0, 895
+                               -1, 1, 472,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1120: Array[Int]
        do
                return [
-                               -1, 1, 478,
-                               66, 0, 893,
-                               67, 0, 894,
-                               68, 0, 895
+                               -1, 1, 479
                        ]
        end
        private fun action_table_row1121: Array[Int]
        do
                return [
-                               -1, 1, 467,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 481,
+                               65, 0, 896,
+                               66, 0, 897,
+                               67, 0, 898
                        ]
        end
        private fun action_table_row1122: Array[Int]
        do
                return [
-                               -1, 1, 469,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 482,
+                               65, 0, 896,
+                               66, 0, 897,
+                               67, 0, 898
                        ]
        end
        private fun action_table_row1123: Array[Int]
        do
                return [
-                               -1, 1, 470,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 471,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1124: Array[Int]
        do
                return [
-                               -1, 1, 471,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 473,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1125: Array[Int]
        do
                return [
-                               -1, 1, 472,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 474,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1126: Array[Int]
        do
                return [
-                               -1, 1, 473,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 475,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1127: Array[Int]
        do
                return [
-                               -1, 1, 474,
-                               64, 0, 884,
-                               65, 0, 885
+                               -1, 1, 476,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1128: Array[Int]
        do
                return [
-                               -1, 1, 480
+                               -1, 1, 477,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1129: Array[Int]
        do
                return [
-                               -1, 1, 481
+                               -1, 1, 478,
+                               63, 0, 887,
+                               64, 0, 888
                        ]
        end
        private fun action_table_row1130: Array[Int]
        do
                return [
-                               -1, 1, 482
+                               -1, 1, 484
                        ]
        end
        private fun action_table_row1131: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 485
                        ]
        end
        private fun action_table_row1132: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 486
                        ]
        end
        private fun action_table_row1133: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row1134: Array[Int]
        do
                return [
-                               -1, 1, 490
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1135: Array[Int]
        do
                return [
-                               -1, 1, 280
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
        private fun action_table_row1136: Array[Int]
        do
                return [
-                               -1, 1, 283
+                               -1, 1, 494
                        ]
        end
        private fun action_table_row1137: Array[Int]
        do
                return [
-                               -1, 1, 276,
-                               50, 0, 159
+                               -1, 1, 279
                        ]
        end
        private fun action_table_row1138: Array[Int]
        do
                return [
-                               -1, 1, 237
+                               -1, 1, 272,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row1139: Array[Int]
        do
                return [
-                               -1, 3, 1138,
-                               0, 0, 1,
-                               1, 0, 2,
-                               9, 0, 648,
+                               -1, 1, 275,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1140: Array[Int]
+       do
+               return [
+                               -1, 1, 292,
+                               9, 0, 1219,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -13689,8 +13653,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -13701,49 +13665,55 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1140: Array[Int]
+       private fun action_table_row1141: Array[Int]
        do
                return [
-                               -1, 1, 225
+                               -1, 1, 237
                        ]
        end
-       private fun action_table_row1141: Array[Int]
+       private fun action_table_row1142: Array[Int]
        do
                return [
-                               -1, 3, 1140,
+                               -1, 3, 1141,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1142: Array[Int]
+       private fun action_table_row1143: Array[Int]
+       do
+               return [
+                               -1, 1, 226
+                       ]
+       end
+       private fun action_table_row1144: Array[Int]
        do
                return [
                                -1, 1, 85
                        ]
        end
-       private fun action_table_row1143: Array[Int]
+       private fun action_table_row1145: Array[Int]
        do
                return [
                                -1, 1, 84
                        ]
        end
-       private fun action_table_row1144: Array[Int]
+       private fun action_table_row1146: Array[Int]
        do
                return [
                                -1, 1, 68
                        ]
        end
-       private fun action_table_row1145: Array[Int]
+       private fun action_table_row1147: Array[Int]
        do
                return [
                                -1, 1, 75
                        ]
        end
-       private fun action_table_row1146: Array[Int]
+       private fun action_table_row1148: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1220,
+                               9, 0, 1221,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -13752,7 +13722,7 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1147: Array[Int]
+       private fun action_table_row1149: Array[Int]
        do
                return [
                                -1, 1, 184,
@@ -13761,82 +13731,82 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1148: Array[Int]
-       do
-               return [
-                               -1, 3, 1147,
-                               18, 0, 1222
-                       ]
-       end
-       private fun action_table_row1149: Array[Int]
-       do
-               return [
-                               -1, 3, 1148,
-                               78, 0, 1223
-                       ]
-       end
        private fun action_table_row1150: Array[Int]
        do
                return [
                                -1, 3, 1149,
-                               18, 0, 1224
+                               18, 0, 1223
                        ]
        end
        private fun action_table_row1151: Array[Int]
        do
                return [
                                -1, 3, 1150,
-                               78, 0, 1225
+                               78, 0, 1224
                        ]
        end
        private fun action_table_row1152: Array[Int]
        do
                return [
-                               -1, 1, 107,
-                               56, 0, 261,
-                               58, 0, 1226
+                               -1, 3, 1151,
+                               18, 0, 1225
                        ]
        end
        private fun action_table_row1153: Array[Int]
        do
                return [
                                -1, 3, 1152,
-                               78, 0, 1228
+                               78, 0, 1226
                        ]
        end
        private fun action_table_row1154: Array[Int]
        do
                return [
-                               -1, 1, 109,
-                               56, 0, 261,
-                               58, 0, 1229
+                               -1, 1, 107,
+                               55, 0, 261,
+                               57, 0, 1227
                        ]
        end
        private fun action_table_row1155: Array[Int]
        do
                return [
                                -1, 3, 1154,
-                               14, 0, 1231,
-                               15, 0, 1232
+                               78, 0, 1229
                        ]
        end
        private fun action_table_row1156: Array[Int]
        do
                return [
-                               -1, 1, 183
+                               -1, 1, 109,
+                               55, 0, 261,
+                               57, 0, 1230
                        ]
        end
        private fun action_table_row1157: Array[Int]
        do
                return [
                                -1, 3, 1156,
+                               14, 0, 1232,
                                15, 0, 1233
                        ]
        end
        private fun action_table_row1158: Array[Int]
        do
                return [
-                               -1, 3, 1157,
+                               -1, 1, 183
+                       ]
+       end
+       private fun action_table_row1159: Array[Int]
+       do
+               return [
+                               -1, 3, 1158,
+                               15, 0, 1234
+                       ]
+       end
+       private fun action_table_row1160: Array[Int]
+       do
+               return [
+                               -1, 3, 1159,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -13857,8 +13827,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -13869,109 +13839,109 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1159: Array[Int]
+       private fun action_table_row1161: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1160: Array[Int]
+       private fun action_table_row1162: Array[Int]
        do
                return [
                                -1, 1, 137,
-                               58, 0, 1236
+                               57, 0, 1237
                        ]
        end
-       private fun action_table_row1161: Array[Int]
+       private fun action_table_row1163: Array[Int]
        do
                return [
-                               -1, 3, 1160,
-                               18, 0, 1237
+                               -1, 3, 1162,
+                               18, 0, 1238
                        ]
        end
-       private fun action_table_row1162: Array[Int]
+       private fun action_table_row1164: Array[Int]
        do
                return [
-                               -1, 3, 1161,
-                               78, 0, 1238
+                               -1, 3, 1163,
+                               78, 0, 1239
                        ]
        end
-       private fun action_table_row1163: Array[Int]
+       private fun action_table_row1165: Array[Int]
        do
                return [
                                -1, 1, 113,
-                               56, 0, 261,
-                               58, 0, 1239
+                               55, 0, 261,
+                               57, 0, 1240
                        ]
        end
-       private fun action_table_row1164: Array[Int]
+       private fun action_table_row1166: Array[Int]
        do
                return [
-                               -1, 3, 1163,
-                               78, 0, 1241
+                               -1, 3, 1165,
+                               78, 0, 1242
                        ]
        end
-       private fun action_table_row1165: Array[Int]
+       private fun action_table_row1167: Array[Int]
        do
                return [
                                -1, 1, 102,
-                               56, 0, 261,
-                               58, 0, 1242
+                               55, 0, 261,
+                               57, 0, 1243
                        ]
        end
-       private fun action_table_row1166: Array[Int]
+       private fun action_table_row1168: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1167: Array[Int]
+       private fun action_table_row1169: Array[Int]
        do
                return [
                                -1, 1, 122,
-                               58, 0, 1245
+                               57, 0, 1246
                        ]
        end
-       private fun action_table_row1168: Array[Int]
+       private fun action_table_row1170: Array[Int]
        do
                return [
                                -1, 1, 117,
-                               56, 0, 261,
-                               58, 0, 1246
+                               55, 0, 261,
+                               57, 0, 1247
                        ]
        end
-       private fun action_table_row1169: Array[Int]
+       private fun action_table_row1171: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1170: Array[Int]
+       private fun action_table_row1172: Array[Int]
        do
                return [
                                -1, 1, 126,
-                               58, 0, 1249
+                               57, 0, 1250
                        ]
        end
-       private fun action_table_row1171: Array[Int]
+       private fun action_table_row1173: Array[Int]
        do
                return [
-                               -1, 3, 1170,
-                               5, 0, 1250,
-                               19, 0, 1251,
-                               20, 0, 1252
+                               -1, 3, 1172,
+                               5, 0, 1251,
+                               19, 0, 1252,
+                               20, 0, 1253
                        ]
        end
-       private fun action_table_row1172: Array[Int]
+       private fun action_table_row1174: Array[Int]
        do
                return [
-                               -1, 3, 1171,
+                               -1, 3, 1173,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -13992,8 +13962,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -14004,10 +13974,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1173: Array[Int]
+       private fun action_table_row1175: Array[Int]
        do
                return [
-                               -1, 3, 1172,
+                               -1, 3, 1174,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -14028,8 +13998,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -14040,17 +14010,17 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1174: Array[Int]
+       private fun action_table_row1176: Array[Int]
        do
                return [
                                -1, 1, 174,
-                               9, 0, 1255
+                               9, 0, 1256
                        ]
        end
-       private fun action_table_row1175: Array[Int]
+       private fun action_table_row1177: Array[Int]
        do
                return [
-                               -1, 3, 1174,
+                               -1, 3, 1176,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -14061,10 +14031,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14075,38 +14045,38 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1176: Array[Int]
+       private fun action_table_row1178: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1177: Array[Int]
+       private fun action_table_row1179: Array[Int]
        do
                return [
                                -1, 1, 72
                        ]
        end
-       private fun action_table_row1178: Array[Int]
+       private fun action_table_row1180: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1179: Array[Int]
+       private fun action_table_row1181: Array[Int]
        do
                return [
-                               -1, 1, 407
+                               -1, 1, 409
                        ]
        end
-       private fun action_table_row1180: Array[Int]
+       private fun action_table_row1182: Array[Int]
        do
                return [
-                               -1, 3, 1179,
+                               -1, 3, 1181,
                                12, 0, 95,
                                24, 0, 96,
                                32, 0, 97,
@@ -14117,8 +14087,8 @@ abstract class ParserTable
                                43, 0, 102,
                                44, 0, 103,
                                45, 0, 104,
-                               49, 0, 105,
-                               65, 0, 107,
+                               48, 0, 105,
+                               64, 0, 107,
                                76, 0, 46,
                                77, 0, 108,
                                78, 0, 109,
@@ -14129,37 +14099,37 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1181: Array[Int]
+       private fun action_table_row1183: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1182: Array[Int]
+       private fun action_table_row1184: Array[Int]
        do
                return [
-                               -1, 1, 665
+                               -1, 1, 669
                        ]
        end
-       private fun action_table_row1183: Array[Int]
+       private fun action_table_row1185: Array[Int]
        do
                return [
                                -1, 1, 70
                        ]
        end
-       private fun action_table_row1184: Array[Int]
+       private fun action_table_row1186: Array[Int]
        do
                return [
                                -1, 1, 77
                        ]
        end
-       private fun action_table_row1185: Array[Int]
+       private fun action_table_row1187: Array[Int]
        do
                return [
                                -1, 1, 184,
-                               9, 0, 1261,
+                               9, 0, 1262,
                                13, 0, 664,
                                16, 0, 665,
                                17, 0, 666,
@@ -14168,53 +14138,53 @@ abstract class ParserTable
                                23, 0, 29
                        ]
        end
-       private fun action_table_row1186: Array[Int]
+       private fun action_table_row1188: Array[Int]
        do
                return [
                                -1, 1, 74
                        ]
        end
-       private fun action_table_row1187: Array[Int]
+       private fun action_table_row1189: Array[Int]
        do
                return [
-                               -1, 1, 315,
-                               26, 1, 580
+                               -1, 1, 317,
+                               26, 1, 584
                        ]
        end
-       private fun action_table_row1188: Array[Int]
+       private fun action_table_row1190: Array[Int]
        do
                return [
-                               -1, 1, 312,
-                               26, 1, 577,
-                               50, 0, 159
+                               -1, 1, 314,
+                               26, 1, 581,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1189: Array[Int]
+       private fun action_table_row1191: Array[Int]
        do
                return [
-                               -1, 1, 565
+                               -1, 1, 569
                        ]
        end
-       private fun action_table_row1190: Array[Int]
+       private fun action_table_row1192: Array[Int]
        do
                return [
-                               -1, 3, 1189,
-                               26, 0, 1263
+                               -1, 3, 1191,
+                               26, 0, 1264
                        ]
        end
-       private fun action_table_row1191: Array[Int]
+       private fun action_table_row1193: Array[Int]
        do
                return [
-                               -1, 1, 331,
-                               26, 1, 589,
-                               50, 0, 159
+                               -1, 1, 333,
+                               26, 1, 593,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1192: Array[Int]
+       private fun action_table_row1194: Array[Int]
        do
                return [
-                               -1, 3, 1191,
-                               9, 0, 1265,
+                               -1, 3, 1193,
+                               9, 0, 1266,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -14232,8 +14202,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -14244,16 +14214,16 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1193: Array[Int]
+       private fun action_table_row1195: Array[Int]
        do
                return [
-                               -1, 1, 594
+                               -1, 1, 598
                        ]
        end
-       private fun action_table_row1194: Array[Int]
+       private fun action_table_row1196: Array[Int]
        do
                return [
-                               -1, 3, 1193,
+                               -1, 3, 1195,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -14264,10 +14234,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14278,49 +14248,26 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1195: Array[Int]
-       do
-               return [
-                               -1, 1, 386,
-                               47, 0, 843
-                       ]
-       end
-       private fun action_table_row1196: Array[Int]
-       do
-               return [
-                               -1, 1, 282,
-                               26, 1, 555
-                       ]
-       end
        private fun action_table_row1197: Array[Int]
        do
                return [
-                               -1, 1, 273,
-                               26, 1, 546,
-                               50, 0, 159
+                               -1, 1, 388,
+                               75, 0, 846
                        ]
        end
        private fun action_table_row1198: Array[Int]
        do
                return [
-                               -1, 3, 1197,
-                               0, 0, 1,
-                               1, 0, 2
-                       ]
-       end
-       private fun action_table_row1199: Array[Int]
-       do
-               return [
-                               -1, 1, 278,
+                               -1, 1, 274,
                                26, 1, 551,
-                               50, 0, 159
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1200: Array[Int]
+       private fun action_table_row1199: Array[Int]
        do
                return [
-                               -1, 1, 294,
-                               9, 0, 1273,
+                               -1, 1, 293,
+                               9, 0, 1271,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -14338,8 +14285,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -14350,10 +14297,46 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
+       private fun action_table_row1200: Array[Int]
+       do
+               return [
+                               -1, 1, 564
+                       ]
+       end
        private fun action_table_row1201: Array[Int]
        do
                return [
-                               -1, 1, 561
+                               -1, 3, 1200,
+                               0, 0, 1,
+                               1, 0, 2,
+                               9, 0, 1273,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
+                               38, 0, 38,
+                               41, 0, 606,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 607,
+                               78, 0, 608,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
        private fun action_table_row1202: Array[Int]
@@ -14370,10 +14353,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -14398,10 +14381,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 702,
                                78, 0, 147,
@@ -14415,38 +14398,38 @@ abstract class ParserTable
        private fun action_table_row1204: Array[Int]
        do
                return [
-                               -1, 1, 536
+                               -1, 1, 540
                        ]
        end
        private fun action_table_row1205: Array[Int]
        do
                return [
-                               -1, 1, 566
+                               -1, 1, 570
                        ]
        end
        private fun action_table_row1206: Array[Int]
        do
                return [
-                               -1, 1, 571
+                               -1, 1, 575
                        ]
        end
        private fun action_table_row1207: Array[Int]
        do
                return [
-                               -1, 1, 333
+                               -1, 1, 335
                        ]
        end
        private fun action_table_row1208: Array[Int]
        do
                return [
-                               -1, 1, 344
+                               -1, 1, 346
                        ]
        end
        private fun action_table_row1209: Array[Int]
        do
                return [
-                               -1, 1, 339,
-                               50, 0, 159
+                               -1, 1, 341,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row1210: Array[Int]
@@ -14471,10 +14454,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14488,7 +14471,7 @@ abstract class ParserTable
        private fun action_table_row1212: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -14497,149 +14480,154 @@ abstract class ParserTable
        do
                return [
                                -1, 3, 1212,
-                               77, 0, 1282
+                               77, 0, 1283
                        ]
        end
        private fun action_table_row1214: Array[Int]
        do
                return [
-                               -1, 1, 488,
-                               63, 1, 490
+                               -1, 1, 492,
+                               62, 1, 494
                        ]
        end
        private fun action_table_row1215: Array[Int]
        do
                return [
-                               -1, 1, 496
+                               -1, 1, 500
                        ]
        end
        private fun action_table_row1216: Array[Int]
        do
                return [
                                -1, 3, 1215,
-                               51, 0, 1283
+                               50, 0, 1284
                        ]
        end
        private fun action_table_row1217: Array[Int]
        do
                return [
-                               -1, 1, 492
+                               -1, 1, 496
                        ]
        end
        private fun action_table_row1218: Array[Int]
        do
                return [
-                               -1, 1, 284
+                               -1, 1, 280
                        ]
        end
        private fun action_table_row1219: Array[Int]
        do
                return [
-                               -1, 3, 1218,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 283
                        ]
        end
        private fun action_table_row1220: Array[Int]
        do
                return [
-                               -1, 1, 226
+                               -1, 1, 276,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row1221: Array[Int]
        do
                return [
-                               -1, 1, 76
+                               -1, 1, 227
                        ]
        end
        private fun action_table_row1222: Array[Int]
        do
                return [
-                               -1, 3, 1221,
-                               18, 0, 1285
+                               -1, 1, 76
                        ]
        end
        private fun action_table_row1223: Array[Int]
        do
                return [
                                -1, 3, 1222,
-                               78, 0, 1286
+                               18, 0, 1286
                        ]
        end
        private fun action_table_row1224: Array[Int]
        do
                return [
-                               -1, 1, 116,
-                               56, 0, 261,
-                               58, 0, 1287
+                               -1, 3, 1223,
+                               78, 0, 1287
                        ]
        end
        private fun action_table_row1225: Array[Int]
        do
                return [
-                               -1, 3, 1224,
-                               78, 0, 1289
+                               -1, 1, 116,
+                               55, 0, 261,
+                               57, 0, 1288
                        ]
        end
        private fun action_table_row1226: Array[Int]
        do
                return [
-                               -1, 1, 105,
-                               56, 0, 261,
-                               58, 0, 1290
+                               -1, 3, 1225,
+                               78, 0, 1290
                        ]
        end
        private fun action_table_row1227: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 105,
+                               55, 0, 261,
+                               57, 0, 1291
                        ]
        end
        private fun action_table_row1228: Array[Int]
        do
                return [
-                               -1, 1, 125,
-                               58, 0, 1293
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1229: Array[Int]
        do
                return [
-                               -1, 1, 118,
-                               56, 0, 261,
-                               58, 0, 1294
+                               -1, 1, 125,
+                               57, 0, 1294
                        ]
        end
        private fun action_table_row1230: Array[Int]
        do
                return [
-                               -1, 1, 440,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 118,
+                               55, 0, 261,
+                               57, 0, 1295
                        ]
        end
        private fun action_table_row1231: Array[Int]
        do
                return [
-                               -1, 1, 127,
-                               58, 0, 1297
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1232: Array[Int]
        do
                return [
-                               -1, 3, 1231,
-                               5, 0, 1298,
-                               19, 0, 1299,
-                               20, 0, 1300
+                               -1, 1, 127,
+                               57, 0, 1298
                        ]
        end
        private fun action_table_row1233: Array[Int]
        do
                return [
                                -1, 3, 1232,
+                               5, 0, 1299,
+                               19, 0, 1300,
+                               20, 0, 1301
+                       ]
+       end
+       private fun action_table_row1234: Array[Int]
+       do
+               return [
+                               -1, 3, 1233,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -14660,8 +14648,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -14672,10 +14660,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1234: Array[Int]
+       private fun action_table_row1235: Array[Int]
        do
                return [
-                               -1, 3, 1233,
+                               -1, 3, 1234,
                                0, 0, 1,
                                1, 0, 2,
                                9, 0, 648,
@@ -14696,8 +14684,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -14708,17 +14696,17 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1235: Array[Int]
+       private fun action_table_row1236: Array[Int]
        do
                return [
                                -1, 1, 175,
-                               9, 0, 1303
+                               9, 0, 1304
                        ]
        end
-       private fun action_table_row1236: Array[Int]
+       private fun action_table_row1237: Array[Int]
        do
                return [
-                               -1, 3, 1235,
+                               -1, 3, 1236,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -14729,10 +14717,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14743,71 +14731,71 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1237: Array[Int]
+       private fun action_table_row1238: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1238: Array[Int]
+       private fun action_table_row1239: Array[Int]
        do
                return [
-                               -1, 3, 1237,
-                               78, 0, 1306
+                               -1, 3, 1238,
+                               78, 0, 1307
                        ]
        end
-       private fun action_table_row1239: Array[Int]
+       private fun action_table_row1240: Array[Int]
        do
                return [
                                -1, 1, 103,
-                               56, 0, 261,
-                               58, 0, 1307
+                               55, 0, 261,
+                               57, 0, 1308
                        ]
        end
-       private fun action_table_row1240: Array[Int]
+       private fun action_table_row1241: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1241: Array[Int]
+       private fun action_table_row1242: Array[Int]
        do
                return [
                                -1, 1, 131,
-                               58, 0, 1310
+                               57, 0, 1311
                        ]
        end
-       private fun action_table_row1242: Array[Int]
+       private fun action_table_row1243: Array[Int]
        do
                return [
                                -1, 1, 111,
-                               56, 0, 261,
-                               58, 0, 1311
+                               55, 0, 261,
+                               57, 0, 1312
                        ]
        end
-       private fun action_table_row1243: Array[Int]
+       private fun action_table_row1244: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1244: Array[Int]
+       private fun action_table_row1245: Array[Int]
        do
                return [
                                -1, 1, 120,
-                               58, 0, 1314
+                               57, 0, 1315
                        ]
        end
-       private fun action_table_row1245: Array[Int]
+       private fun action_table_row1246: Array[Int]
        do
                return [
-                               -1, 3, 1244,
+                               -1, 3, 1245,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -14818,10 +14806,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14832,33 +14820,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1246: Array[Int]
+       private fun action_table_row1247: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1247: Array[Int]
+       private fun action_table_row1248: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1248: Array[Int]
+       private fun action_table_row1249: Array[Int]
        do
                return [
                                -1, 1, 135,
-                               58, 0, 1318
+                               57, 0, 1319
                        ]
        end
-       private fun action_table_row1249: Array[Int]
+       private fun action_table_row1250: Array[Int]
        do
                return [
-                               -1, 3, 1248,
+                               -1, 3, 1249,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -14869,10 +14857,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14883,63 +14871,63 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1250: Array[Int]
+       private fun action_table_row1251: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1251: Array[Int]
+       private fun action_table_row1252: Array[Int]
        do
                return [
                                -1, 1, 94
                        ]
        end
-       private fun action_table_row1252: Array[Int]
+       private fun action_table_row1253: Array[Int]
        do
                return [
                                -1, 1, 96
                        ]
        end
-       private fun action_table_row1253: Array[Int]
+       private fun action_table_row1254: Array[Int]
        do
                return [
                                -1, 1, 98,
-                               82, 0, 1321
+                               82, 0, 1322
                        ]
        end
-       private fun action_table_row1254: Array[Int]
+       private fun action_table_row1255: Array[Int]
        do
                return [
                                -1, 1, 90,
-                               9, 0, 1322
+                               9, 0, 1323
                        ]
        end
-       private fun action_table_row1255: Array[Int]
+       private fun action_table_row1256: Array[Int]
        do
                return [
                                -1, 1, 176,
-                               9, 0, 1323
+                               9, 0, 1324
                        ]
        end
-       private fun action_table_row1256: Array[Int]
+       private fun action_table_row1257: Array[Int]
        do
                return [
                                -1, 1, 178
                        ]
        end
-       private fun action_table_row1257: Array[Int]
+       private fun action_table_row1258: Array[Int]
        do
                return [
                                -1, 1, 146
                        ]
        end
-       private fun action_table_row1258: Array[Int]
+       private fun action_table_row1259: Array[Int]
        do
                return [
-                               -1, 3, 1257,
+                               -1, 3, 1258,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -14950,10 +14938,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -14964,68 +14952,68 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1259: Array[Int]
-       do
-               return [
-                               -1, 3, 1258,
-                               52, 0, 1325
-                       ]
-       end
        private fun action_table_row1260: Array[Int]
        do
                return [
-                               -1, 1, 617
+                               -1, 3, 1259,
+                               51, 0, 1326
                        ]
        end
        private fun action_table_row1261: Array[Int]
        do
                return [
-                               -1, 3, 1260,
-                               52, 0, 1326
+                               -1, 1, 621
                        ]
        end
        private fun action_table_row1262: Array[Int]
        do
                return [
-                               -1, 1, 78
+                               -1, 3, 1261,
+                               51, 0, 1327
                        ]
        end
        private fun action_table_row1263: Array[Int]
        do
                return [
-                               -1, 1, 316,
-                               26, 1, 581
+                               -1, 1, 78
                        ]
        end
        private fun action_table_row1264: Array[Int]
        do
                return [
-                               -1, 3, 1263,
+                               -1, 1, 318,
+                               26, 1, 585
+                       ]
+       end
+       private fun action_table_row1265: Array[Int]
+       do
+               return [
+                               -1, 3, 1264,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 1327,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
+                               9, 0, 1328,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 605,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -15033,33 +15021,25 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1265: Array[Int]
-       do
-               return [
-                               -1, 1, 335,
-                               26, 1, 593
-                       ]
-       end
        private fun action_table_row1266: Array[Int]
        do
                return [
-                               -1, 1, 330,
-                               26, 1, 588,
-                               50, 0, 159
+                               -1, 1, 337,
+                               26, 1, 597
                        ]
        end
        private fun action_table_row1267: Array[Int]
        do
                return [
-                               -1, 3, 1266,
-                               0, 0, 1,
-                               1, 0, 2
+                               -1, 1, 332,
+                               26, 1, 592,
+                               49, 0, 159
                        ]
        end
        private fun action_table_row1268: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 3, 1267,
                                0, 0, 1,
                                1, 0, 2
                        ]
@@ -15067,21 +15047,53 @@ abstract class ParserTable
        private fun action_table_row1269: Array[Int]
        do
                return [
-                               -1, 1, 607
+                               -1, 1, 444,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1270: Array[Int]
        do
                return [
-                               -1, 1, 281,
-                               26, 1, 554
+                               -1, 1, 611
                        ]
        end
        private fun action_table_row1271: Array[Int]
        do
                return [
-                               -1, 1, 289,
-                               9, 0, 1335,
+                               -1, 1, 282,
+                               26, 1, 559
+                       ]
+       end
+       private fun action_table_row1272: Array[Int]
+       do
+               return [
+                               -1, 1, 273,
+                               26, 1, 550,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1273: Array[Int]
+       do
+               return [
+                               -1, 3, 1272,
+                               0, 0, 1,
+                               1, 0, 2
+                       ]
+       end
+       private fun action_table_row1274: Array[Int]
+       do
+               return [
+                               -1, 1, 278,
+                               26, 1, 555,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1275: Array[Int]
+       do
+               return [
+                               -1, 1, 294,
+                               9, 0, 1340,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -15099,72 +15111,47 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
                                79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
-                       ]
-       end
-       private fun action_table_row1272: Array[Int]
-       do
-               return [
-                               -1, 3, 1271,
-                               0, 0, 1,
-                               1, 0, 2
-                       ]
-       end
-       private fun action_table_row1273: Array[Int]
-       do
-               return [
-                               -1, 1, 286,
-                               26, 1, 559
-                       ]
-       end
-       private fun action_table_row1274: Array[Int]
-       do
-               return [
-                               -1, 1, 277,
-                               26, 1, 550,
-                               50, 0, 159
-                       ]
-       end
-       private fun action_table_row1275: Array[Int]
-       do
-               return [
-                               -1, 3, 1274,
-                               0, 0, 1,
-                               1, 0, 2
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
        private fun action_table_row1276: Array[Int]
        do
                return [
-                               -1, 1, 568
+                               -1, 1, 565
                        ]
        end
        private fun action_table_row1277: Array[Int]
        do
                return [
-                               -1, 1, 573
+                               -1, 1, 572
                        ]
        end
        private fun action_table_row1278: Array[Int]
        do
                return [
-                               -1, 1, 343
+                               -1, 1, 577
                        ]
        end
        private fun action_table_row1279: Array[Int]
        do
                return [
-                               -1, 3, 1278,
-                               9, 0, 1340,
+                               -1, 1, 345
+                       ]
+       end
+       private fun action_table_row1280: Array[Int]
+       do
+               return [
+                               -1, 3, 1279,
+                               9, 0, 1342,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -15182,8 +15169,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -15194,24 +15181,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1280: Array[Int]
+       private fun action_table_row1281: Array[Int]
        do
                return [
-                               -1, 3, 1279,
+                               -1, 3, 1280,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1281: Array[Int]
+       private fun action_table_row1282: Array[Int]
        do
                return [
-                               -1, 1, 354
+                               -1, 1, 356
                        ]
        end
-       private fun action_table_row1282: Array[Int]
+       private fun action_table_row1283: Array[Int]
        do
                return [
-                               -1, 3, 1281,
+                               -1, 3, 1282,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15222,10 +15209,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15236,84 +15223,84 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1283: Array[Int]
+       private fun action_table_row1284: Array[Int]
        do
                return [
-                               -1, 1, 419,
-                               51, 0, 225
+                               -1, 1, 421,
+                               50, 0, 225
                        ]
        end
-       private fun action_table_row1284: Array[Int]
+       private fun action_table_row1285: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1285: Array[Int]
+       private fun action_table_row1286: Array[Int]
        do
                return [
-                               -1, 1, 227
+                               -1, 1, 284
                        ]
        end
-       private fun action_table_row1286: Array[Int]
+       private fun action_table_row1287: Array[Int]
        do
                return [
-                               -1, 3, 1285,
-                               78, 0, 1345
+                               -1, 3, 1286,
+                               78, 0, 1347
                        ]
        end
-       private fun action_table_row1287: Array[Int]
+       private fun action_table_row1288: Array[Int]
        do
                return [
                                -1, 1, 106,
-                               56, 0, 261,
-                               58, 0, 1346
+                               55, 0, 261,
+                               57, 0, 1348
                        ]
        end
-       private fun action_table_row1288: Array[Int]
+       private fun action_table_row1289: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1289: Array[Int]
+       private fun action_table_row1290: Array[Int]
        do
                return [
                                -1, 1, 134,
-                               58, 0, 1349
+                               57, 0, 1351
                        ]
        end
-       private fun action_table_row1290: Array[Int]
+       private fun action_table_row1291: Array[Int]
        do
                return [
                                -1, 1, 114,
-                               56, 0, 261,
-                               58, 0, 1350
+                               55, 0, 261,
+                               57, 0, 1352
                        ]
        end
-       private fun action_table_row1291: Array[Int]
+       private fun action_table_row1292: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1292: Array[Int]
+       private fun action_table_row1293: Array[Int]
        do
                return [
                                -1, 1, 123,
-                               58, 0, 1353
+                               57, 0, 1355
                        ]
        end
-       private fun action_table_row1293: Array[Int]
+       private fun action_table_row1294: Array[Int]
        do
                return [
-                               -1, 3, 1292,
+                               -1, 3, 1293,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15324,10 +15311,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15338,33 +15325,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1294: Array[Int]
+       private fun action_table_row1295: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1295: Array[Int]
+       private fun action_table_row1296: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1296: Array[Int]
+       private fun action_table_row1297: Array[Int]
        do
                return [
                                -1, 1, 136,
-                               58, 0, 1357
+                               57, 0, 1359
                        ]
        end
-       private fun action_table_row1297: Array[Int]
+       private fun action_table_row1298: Array[Int]
        do
                return [
-                               -1, 3, 1296,
+                               -1, 3, 1297,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15375,10 +15362,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15389,63 +15376,63 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1298: Array[Int]
+       private fun action_table_row1299: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1299: Array[Int]
+       private fun action_table_row1300: Array[Int]
        do
                return [
                                -1, 1, 95
                        ]
        end
-       private fun action_table_row1300: Array[Int]
+       private fun action_table_row1301: Array[Int]
        do
                return [
                                -1, 1, 97
                        ]
        end
-       private fun action_table_row1301: Array[Int]
+       private fun action_table_row1302: Array[Int]
        do
                return [
                                -1, 1, 99,
-                               82, 0, 1360
+                               82, 0, 1362
                        ]
        end
-       private fun action_table_row1302: Array[Int]
+       private fun action_table_row1303: Array[Int]
        do
                return [
                                -1, 1, 91,
-                               9, 0, 1361
+                               9, 0, 1363
                        ]
        end
-       private fun action_table_row1303: Array[Int]
+       private fun action_table_row1304: Array[Int]
        do
                return [
                                -1, 1, 177,
-                               9, 0, 1362
+                               9, 0, 1364
                        ]
        end
-       private fun action_table_row1304: Array[Int]
+       private fun action_table_row1305: Array[Int]
        do
                return [
                                -1, 1, 179
                        ]
        end
-       private fun action_table_row1305: Array[Int]
+       private fun action_table_row1306: Array[Int]
        do
                return [
                                -1, 1, 155
                        ]
        end
-       private fun action_table_row1306: Array[Int]
+       private fun action_table_row1307: Array[Int]
        do
                return [
-                               -1, 3, 1305,
+                               -1, 3, 1306,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15456,10 +15443,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15470,33 +15457,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1307: Array[Int]
+       private fun action_table_row1308: Array[Int]
        do
                return [
                                -1, 1, 112,
-                               56, 0, 261,
-                               58, 0, 1364
+                               55, 0, 261,
+                               57, 0, 1366
                        ]
        end
-       private fun action_table_row1308: Array[Int]
+       private fun action_table_row1309: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1309: Array[Int]
+       private fun action_table_row1310: Array[Int]
        do
                return [
                                -1, 1, 121,
-                               58, 0, 1367
+                               57, 0, 1369
                        ]
        end
-       private fun action_table_row1310: Array[Int]
+       private fun action_table_row1311: Array[Int]
        do
                return [
-                               -1, 3, 1309,
+                               -1, 3, 1310,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15507,10 +15494,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15521,33 +15508,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1311: Array[Int]
+       private fun action_table_row1312: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1312: Array[Int]
+       private fun action_table_row1313: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1313: Array[Int]
+       private fun action_table_row1314: Array[Int]
        do
                return [
                                -1, 1, 129,
-                               58, 0, 1371
+                               57, 0, 1373
                        ]
        end
-       private fun action_table_row1314: Array[Int]
+       private fun action_table_row1315: Array[Int]
        do
                return [
-                               -1, 3, 1313,
+                               -1, 3, 1314,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15558,10 +15545,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15572,24 +15559,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1315: Array[Int]
+       private fun action_table_row1316: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1316: Array[Int]
+       private fun action_table_row1317: Array[Int]
        do
                return [
                                -1, 1, 140
                        ]
        end
-       private fun action_table_row1317: Array[Int]
+       private fun action_table_row1318: Array[Int]
        do
                return [
-                               -1, 3, 1316,
+                               -1, 3, 1317,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15600,10 +15587,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15614,10 +15601,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1318: Array[Int]
+       private fun action_table_row1319: Array[Int]
        do
                return [
-                               -1, 3, 1317,
+                               -1, 3, 1318,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15628,10 +15615,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15642,24 +15629,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1319: Array[Int]
+       private fun action_table_row1320: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1320: Array[Int]
+       private fun action_table_row1321: Array[Int]
        do
                return [
                                -1, 1, 144
                        ]
        end
-       private fun action_table_row1321: Array[Int]
+       private fun action_table_row1322: Array[Int]
        do
                return [
-                               -1, 3, 1320,
+                               -1, 3, 1321,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -15670,10 +15657,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -15684,54 +15671,54 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1322: Array[Int]
+       private fun action_table_row1323: Array[Int]
        do
                return [
                                -1, 1, 100
                        ]
        end
-       private fun action_table_row1323: Array[Int]
+       private fun action_table_row1324: Array[Int]
        do
                return [
                                -1, 1, 92
                        ]
        end
-       private fun action_table_row1324: Array[Int]
+       private fun action_table_row1325: Array[Int]
        do
                return [
                                -1, 1, 180
                        ]
        end
-       private fun action_table_row1325: Array[Int]
+       private fun action_table_row1326: Array[Int]
        do
                return [
                                -1, 1, 164
                        ]
        end
-       private fun action_table_row1326: Array[Int]
+       private fun action_table_row1327: Array[Int]
        do
                return [
-                               -1, 1, 408
+                               -1, 1, 410
                        ]
        end
-       private fun action_table_row1327: Array[Int]
+       private fun action_table_row1328: Array[Int]
        do
                return [
-                               -1, 1, 666
+                               -1, 1, 670
                        ]
        end
-       private fun action_table_row1328: Array[Int]
+       private fun action_table_row1329: Array[Int]
        do
                return [
                                -1, 1, 239,
-                               26, 1, 514
+                               26, 1, 518
                        ]
        end
-       private fun action_table_row1329: Array[Int]
+       private fun action_table_row1330: Array[Int]
        do
                return [
-                               -1, 3, 1328,
-                               9, 0, 1378,
+                               -1, 3, 1329,
+                               9, 0, 1380,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -15749,8 +15736,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -15761,30 +15748,30 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1330: Array[Int]
+       private fun action_table_row1331: Array[Int]
        do
                return [
-                               -1, 1, 585
+                               -1, 1, 589
                        ]
        end
-       private fun action_table_row1331: Array[Int]
+       private fun action_table_row1332: Array[Int]
        do
                return [
-                               -1, 1, 515
+                               -1, 1, 519
                        ]
        end
-       private fun action_table_row1332: Array[Int]
+       private fun action_table_row1333: Array[Int]
        do
                return [
-                               -1, 1, 334,
-                               26, 1, 592
+                               -1, 1, 336,
+                               26, 1, 596
                        ]
        end
-       private fun action_table_row1333: Array[Int]
+       private fun action_table_row1334: Array[Int]
        do
                return [
-                               -1, 3, 1332,
-                               9, 0, 1380,
+                               -1, 3, 1333,
+                               9, 0, 1382,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -15802,8 +15789,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -15814,34 +15801,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1334: Array[Int]
+       private fun action_table_row1335: Array[Int]
        do
                return [
-                               -1, 3, 1333,
+                               -1, 3, 1334,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1335: Array[Int]
+       private fun action_table_row1336: Array[Int]
        do
                return [
-                               -1, 3, 1334,
-                               15, 0, 1382
+                               -1, 3, 1335,
+                               15, 0, 1384
                        ]
        end
-       private fun action_table_row1336: Array[Int]
+       private fun action_table_row1337: Array[Int]
        do
                return [
-                               -1, 1, 271,
-                               26, 1, 544,
-                               50, 0, 159
+                               -1, 1, 281,
+                               26, 1, 558
                        ]
        end
-       private fun action_table_row1337: Array[Int]
+       private fun action_table_row1338: Array[Int]
        do
                return [
-                               -1, 1, 290,
-                               9, 0, 1384,
+                               -1, 1, 289,
+                               9, 0, 1385,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -15859,8 +15845,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -15871,67 +15857,49 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1338: Array[Int]
+       private fun action_table_row1339: Array[Int]
        do
                return [
-                               -1, 1, 285,
-                               26, 1, 558
+                               -1, 3, 1338,
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
-       private fun action_table_row1339: Array[Int]
+       private fun action_table_row1340: Array[Int]
        do
                return [
-                               -1, 1, 291,
-                               9, 0, 1385,
-                               12, 0, 23,
-                               15, 0, 25,
-                               18, 0, 26,
-                               24, 0, 30,
-                               27, 0, 31,
-                               28, 0, 32,
-                               33, 0, 33,
-                               34, 0, 34,
-                               35, 0, 35,
-                               36, 0, 36,
-                               37, 0, 37,
-                               38, 0, 38,
-                               41, 0, 39,
-                               42, 0, 40,
-                               43, 0, 41,
-                               44, 0, 42,
-                               45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
-                               76, 0, 46,
-                               77, 0, 47,
-                               78, 0, 48,
-                               79, 0, 49,
-                               80, 0, 50,
-                               81, 0, 51,
-                               82, 0, 52,
-                               83, 0, 53
+                               -1, 1, 286,
+                               26, 1, 563
                        ]
        end
-       private fun action_table_row1340: Array[Int]
+       private fun action_table_row1341: Array[Int]
+       do
+               return [
+                               -1, 1, 277,
+                               26, 1, 554,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1342: Array[Int]
        do
                return [
-                               -1, 3, 1339,
+                               -1, 3, 1341,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1341: Array[Int]
+       private fun action_table_row1343: Array[Int]
        do
                return [
-                               -1, 1, 337,
-                               50, 0, 159
+                               -1, 1, 339,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1342: Array[Int]
+       private fun action_table_row1344: Array[Int]
        do
                return [
-                               -1, 3, 1341,
-                               9, 0, 1388,
+                               -1, 3, 1343,
+                               9, 0, 1391,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -15949,8 +15917,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -15961,56 +15929,56 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1343: Array[Int]
+       private fun action_table_row1345: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1344: Array[Int]
+       private fun action_table_row1346: Array[Int]
        do
                return [
-                               -1, 1, 498
+                               -1, 1, 502
                        ]
        end
-       private fun action_table_row1345: Array[Int]
+       private fun action_table_row1347: Array[Int]
        do
                return [
-                               -1, 3, 1344,
-                               32, 0, 1390,
-                               48, 0, 299,
+                               -1, 3, 1346,
+                               32, 0, 1393,
+                               47, 0, 299,
                                76, 0, 300
                        ]
        end
-       private fun action_table_row1346: Array[Int]
+       private fun action_table_row1348: Array[Int]
        do
                return [
                                -1, 1, 115,
-                               56, 0, 261,
-                               58, 0, 1392
+                               55, 0, 261,
+                               57, 0, 1395
                        ]
        end
-       private fun action_table_row1347: Array[Int]
+       private fun action_table_row1349: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1348: Array[Int]
+       private fun action_table_row1350: Array[Int]
        do
                return [
                                -1, 1, 124,
-                               58, 0, 1395
+                               57, 0, 1398
                        ]
        end
-       private fun action_table_row1349: Array[Int]
+       private fun action_table_row1351: Array[Int]
        do
                return [
-                               -1, 3, 1348,
+                               -1, 3, 1350,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16021,10 +15989,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16035,33 +16003,33 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1350: Array[Int]
+       private fun action_table_row1352: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1351: Array[Int]
+       private fun action_table_row1353: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1352: Array[Int]
+       private fun action_table_row1354: Array[Int]
        do
                return [
                                -1, 1, 132,
-                               58, 0, 1399
+                               57, 0, 1402
                        ]
        end
-       private fun action_table_row1353: Array[Int]
+       private fun action_table_row1355: Array[Int]
        do
                return [
-                               -1, 3, 1352,
+                               -1, 3, 1354,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16072,10 +16040,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16086,24 +16054,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1354: Array[Int]
+       private fun action_table_row1356: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1355: Array[Int]
+       private fun action_table_row1357: Array[Int]
        do
                return [
                                -1, 1, 143
                        ]
        end
-       private fun action_table_row1356: Array[Int]
+       private fun action_table_row1358: Array[Int]
        do
                return [
-                               -1, 3, 1355,
+                               -1, 3, 1357,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16114,10 +16082,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16128,10 +16096,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1357: Array[Int]
+       private fun action_table_row1359: Array[Int]
        do
                return [
-                               -1, 3, 1356,
+                               -1, 3, 1358,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16142,10 +16110,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16156,24 +16124,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1358: Array[Int]
+       private fun action_table_row1360: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1359: Array[Int]
+       private fun action_table_row1361: Array[Int]
        do
                return [
                                -1, 1, 145
                        ]
        end
-       private fun action_table_row1360: Array[Int]
+       private fun action_table_row1362: Array[Int]
        do
                return [
-                               -1, 3, 1359,
+                               -1, 3, 1361,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16184,10 +16152,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16198,49 +16166,49 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1361: Array[Int]
+       private fun action_table_row1363: Array[Int]
        do
                return [
                                -1, 1, 101
                        ]
        end
-       private fun action_table_row1362: Array[Int]
+       private fun action_table_row1364: Array[Int]
        do
                return [
                                -1, 1, 93
                        ]
        end
-       private fun action_table_row1363: Array[Int]
+       private fun action_table_row1365: Array[Int]
        do
                return [
                                -1, 1, 181
                        ]
        end
-       private fun action_table_row1364: Array[Int]
+       private fun action_table_row1366: Array[Int]
        do
                return [
                                -1, 1, 173
                        ]
        end
-       private fun action_table_row1365: Array[Int]
+       private fun action_table_row1367: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1366: Array[Int]
+       private fun action_table_row1368: Array[Int]
        do
                return [
                                -1, 1, 130,
-                               58, 0, 1407
+                               57, 0, 1410
                        ]
        end
-       private fun action_table_row1367: Array[Int]
+       private fun action_table_row1369: Array[Int]
        do
                return [
-                               -1, 3, 1366,
+                               -1, 3, 1368,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16251,10 +16219,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16265,24 +16233,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1368: Array[Int]
+       private fun action_table_row1370: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1369: Array[Int]
+       private fun action_table_row1371: Array[Int]
        do
                return [
                                -1, 1, 149
                        ]
        end
-       private fun action_table_row1370: Array[Int]
+       private fun action_table_row1372: Array[Int]
        do
                return [
-                               -1, 3, 1369,
+                               -1, 3, 1371,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16293,10 +16261,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16307,10 +16275,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1371: Array[Int]
+       private fun action_table_row1373: Array[Int]
        do
                return [
-                               -1, 3, 1370,
+                               -1, 3, 1372,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16321,10 +16289,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16335,24 +16303,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1372: Array[Int]
+       private fun action_table_row1374: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1373: Array[Int]
+       private fun action_table_row1375: Array[Int]
        do
                return [
                                -1, 1, 138
                        ]
        end
-       private fun action_table_row1374: Array[Int]
+       private fun action_table_row1376: Array[Int]
        do
                return [
-                               -1, 3, 1373,
+                               -1, 3, 1375,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16363,10 +16331,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16377,22 +16345,22 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1375: Array[Int]
+       private fun action_table_row1377: Array[Int]
        do
                return [
                                -1, 1, 158
                        ]
        end
-       private fun action_table_row1376: Array[Int]
+       private fun action_table_row1378: Array[Int]
        do
                return [
                                -1, 1, 153
                        ]
        end
-       private fun action_table_row1377: Array[Int]
+       private fun action_table_row1379: Array[Int]
        do
                return [
-                               -1, 3, 1376,
+                               -1, 3, 1378,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16403,10 +16371,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16417,40 +16385,40 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1378: Array[Int]
+       private fun action_table_row1380: Array[Int]
        do
                return [
                                -1, 1, 162
                        ]
        end
-       private fun action_table_row1379: Array[Int]
+       private fun action_table_row1381: Array[Int]
        do
                return [
                                -1, 1, 238,
-                               26, 1, 513
+                               26, 1, 517
                        ]
        end
-       private fun action_table_row1380: Array[Int]
+       private fun action_table_row1382: Array[Int]
        do
                return [
-                               -1, 3, 1379,
+                               -1, 3, 1381,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1381: Array[Int]
+       private fun action_table_row1383: Array[Int]
        do
                return [
-                               -1, 1, 328,
-                               26, 1, 586,
-                               50, 0, 159
+                               -1, 1, 330,
+                               26, 1, 590,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1382: Array[Int]
+       private fun action_table_row1384: Array[Int]
        do
                return [
-                               -1, 3, 1381,
-                               9, 0, 1418,
+                               -1, 3, 1383,
+                               9, 0, 1421,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -16468,8 +16436,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -16480,35 +16448,35 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1383: Array[Int]
+       private fun action_table_row1385: Array[Int]
        do
                return [
-                               -1, 3, 1382,
+                               -1, 3, 1384,
                                0, 0, 1,
                                1, 0, 2,
-                               9, 0, 1419,
-                               12, 0, 593,
-                               15, 0, 594,
-                               18, 0, 595,
-                               24, 0, 596,
-                               27, 0, 598,
-                               28, 0, 599,
-                               33, 0, 600,
-                               34, 0, 601,
-                               35, 0, 602,
-                               36, 0, 603,
-                               37, 0, 604,
+                               9, 0, 1422,
+                               12, 0, 594,
+                               15, 0, 595,
+                               18, 0, 596,
+                               24, 0, 597,
+                               27, 0, 599,
+                               28, 0, 600,
+                               33, 0, 601,
+                               34, 0, 602,
+                               35, 0, 603,
+                               36, 0, 604,
+                               37, 0, 605,
                                38, 0, 38,
-                               41, 0, 605,
+                               41, 0, 606,
                                42, 0, 40,
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
-                               77, 0, 606,
-                               78, 0, 607,
+                               77, 0, 607,
+                               78, 0, 608,
                                79, 0, 49,
                                80, 0, 50,
                                81, 0, 51,
@@ -16516,34 +16484,19 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1384: Array[Int]
-       do
-               return [
-                               -1, 1, 279,
-                               26, 1, 552
-                       ]
-       end
-       private fun action_table_row1385: Array[Int]
-       do
-               return [
-                               -1, 1, 272,
-                               26, 1, 545,
-                               50, 0, 159
-                       ]
-       end
        private fun action_table_row1386: Array[Int]
        do
                return [
-                               -1, 1, 275,
+                               -1, 1, 271,
                                26, 1, 548,
-                               50, 0, 159
+                               49, 0, 159
                        ]
        end
        private fun action_table_row1387: Array[Int]
        do
                return [
-                               -1, 1, 292,
-                               9, 0, 1424,
+                               -1, 1, 290,
+                               9, 0, 1426,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -16561,8 +16514,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -16576,58 +16529,107 @@ abstract class ParserTable
        private fun action_table_row1388: Array[Int]
        do
                return [
-                               -1, 1, 341
+                               -1, 1, 285,
+                               26, 1, 562
                        ]
        end
        private fun action_table_row1389: Array[Int]
        do
                return [
-                               -1, 1, 338,
-                               50, 0, 159
+                               -1, 1, 291,
+                               9, 0, 1427,
+                               12, 0, 23,
+                               15, 0, 25,
+                               18, 0, 26,
+                               24, 0, 30,
+                               27, 0, 31,
+                               28, 0, 32,
+                               33, 0, 33,
+                               34, 0, 34,
+                               35, 0, 35,
+                               36, 0, 36,
+                               37, 0, 37,
+                               38, 0, 38,
+                               41, 0, 39,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 47,
+                               78, 0, 48,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
                        ]
        end
        private fun action_table_row1390: Array[Int]
        do
                return [
                                -1, 3, 1389,
-                               26, 0, 1426
+                               0, 0, 1,
+                               1, 0, 2
                        ]
        end
        private fun action_table_row1391: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 343
+                       ]
+       end
+       private fun action_table_row1392: Array[Int]
+       do
+               return [
+                               -1, 1, 340,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1393: Array[Int]
+       do
+               return [
+                               -1, 3, 1392,
+                               26, 0, 1430
+                       ]
+       end
+       private fun action_table_row1394: Array[Int]
+       do
+               return [
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1392: Array[Int]
+       private fun action_table_row1395: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1393: Array[Int]
+       private fun action_table_row1396: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1394: Array[Int]
+       private fun action_table_row1397: Array[Int]
        do
                return [
                                -1, 1, 133,
-                               58, 0, 1430
+                               57, 0, 1434
                        ]
        end
-       private fun action_table_row1395: Array[Int]
+       private fun action_table_row1398: Array[Int]
        do
                return [
-                               -1, 3, 1394,
+                               -1, 3, 1397,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16638,10 +16640,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16652,24 +16654,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1396: Array[Int]
+       private fun action_table_row1399: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1397: Array[Int]
+       private fun action_table_row1400: Array[Int]
        do
                return [
                                -1, 1, 152
                        ]
        end
-       private fun action_table_row1398: Array[Int]
+       private fun action_table_row1401: Array[Int]
        do
                return [
-                               -1, 3, 1397,
+                               -1, 3, 1400,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16680,10 +16682,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16694,10 +16696,10 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1399: Array[Int]
+       private fun action_table_row1402: Array[Int]
        do
                return [
-                               -1, 3, 1398,
+                               -1, 3, 1401,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16708,10 +16710,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16722,24 +16724,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1400: Array[Int]
+       private fun action_table_row1403: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1401: Array[Int]
+       private fun action_table_row1404: Array[Int]
        do
                return [
                                -1, 1, 141
                        ]
        end
-       private fun action_table_row1402: Array[Int]
+       private fun action_table_row1405: Array[Int]
        do
                return [
-                               -1, 3, 1401,
+                               -1, 3, 1404,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16750,10 +16752,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16764,22 +16766,22 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1403: Array[Int]
+       private fun action_table_row1406: Array[Int]
        do
                return [
                                -1, 1, 161
                        ]
        end
-       private fun action_table_row1404: Array[Int]
+       private fun action_table_row1407: Array[Int]
        do
                return [
                                -1, 1, 154
                        ]
        end
-       private fun action_table_row1405: Array[Int]
+       private fun action_table_row1408: Array[Int]
        do
                return [
-                               -1, 3, 1404,
+                               -1, 3, 1407,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16790,10 +16792,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16804,16 +16806,16 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1406: Array[Int]
+       private fun action_table_row1409: Array[Int]
        do
                return [
                                -1, 1, 163
                        ]
        end
-       private fun action_table_row1407: Array[Int]
+       private fun action_table_row1410: Array[Int]
        do
                return [
-                               -1, 3, 1406,
+                               -1, 3, 1409,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16824,10 +16826,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16838,24 +16840,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1408: Array[Int]
+       private fun action_table_row1411: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1409: Array[Int]
+       private fun action_table_row1412: Array[Int]
        do
                return [
                                -1, 1, 139
                        ]
        end
-       private fun action_table_row1410: Array[Int]
+       private fun action_table_row1413: Array[Int]
        do
                return [
-                               -1, 3, 1409,
+                               -1, 3, 1412,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16866,10 +16868,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16880,22 +16882,22 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1411: Array[Int]
+       private fun action_table_row1414: Array[Int]
        do
                return [
                                -1, 1, 167
                        ]
        end
-       private fun action_table_row1412: Array[Int]
+       private fun action_table_row1415: Array[Int]
        do
                return [
                                -1, 1, 147
                        ]
        end
-       private fun action_table_row1413: Array[Int]
+       private fun action_table_row1416: Array[Int]
        do
                return [
-                               -1, 3, 1412,
+                               -1, 3, 1415,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -16906,10 +16908,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -16920,23 +16922,23 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1414: Array[Int]
+       private fun action_table_row1417: Array[Int]
        do
                return [
                                -1, 1, 156
                        ]
        end
-       private fun action_table_row1415: Array[Int]
+       private fun action_table_row1418: Array[Int]
        do
                return [
                                -1, 1, 171
                        ]
        end
-       private fun action_table_row1416: Array[Int]
+       private fun action_table_row1419: Array[Int]
        do
                return [
-                               -1, 3, 1415,
-                               9, 0, 1442,
+                               -1, 3, 1418,
+                               9, 0, 1446,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -16954,8 +16956,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -16966,42 +16968,105 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1417: Array[Int]
+       private fun action_table_row1420: Array[Int]
        do
                return [
-                               -1, 3, 1416,
+                               -1, 3, 1419,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1418: Array[Int]
+       private fun action_table_row1421: Array[Int]
        do
                return [
-                               -1, 1, 332,
-                               26, 1, 590
+                               -1, 1, 334,
+                               26, 1, 594
                        ]
        end
-       private fun action_table_row1419: Array[Int]
+       private fun action_table_row1422: Array[Int]
+       do
+               return [
+                               -1, 1, 331,
+                               26, 1, 591,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1423: Array[Int]
+       do
+               return [
+                               -1, 1, 342,
+                               26, 1, 602,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1424: Array[Int]
+       do
+               return [
+                               -1, 3, 1423,
+                               9, 0, 1450,
+                               12, 0, 23,
+                               15, 0, 25,
+                               18, 0, 26,
+                               24, 0, 30,
+                               27, 0, 31,
+                               28, 0, 32,
+                               33, 0, 33,
+                               34, 0, 34,
+                               35, 0, 35,
+                               36, 0, 36,
+                               37, 0, 37,
+                               38, 0, 38,
+                               41, 0, 39,
+                               42, 0, 40,
+                               43, 0, 41,
+                               44, 0, 42,
+                               45, 0, 43,
+                               50, 0, 44,
+                               52, 0, 45,
+                               76, 0, 46,
+                               77, 0, 47,
+                               78, 0, 48,
+                               79, 0, 49,
+                               80, 0, 50,
+                               81, 0, 51,
+                               82, 0, 52,
+                               83, 0, 53
+                       ]
+       end
+       private fun action_table_row1425: Array[Int]
+       do
+               return [
+                               -1, 1, 607
+                       ]
+       end
+       private fun action_table_row1426: Array[Int]
        do
                return [
-                               -1, 1, 329,
-                               26, 1, 587,
-                               50, 0, 159
+                               -1, 1, 279,
+                               26, 1, 556
+                       ]
+       end
+       private fun action_table_row1427: Array[Int]
+       do
+               return [
+                               -1, 1, 272,
+                               26, 1, 549,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1420: Array[Int]
+       private fun action_table_row1428: Array[Int]
        do
                return [
-                               -1, 1, 340,
-                               26, 1, 598,
-                               50, 0, 159
+                               -1, 1, 275,
+                               26, 1, 552,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1421: Array[Int]
+       private fun action_table_row1429: Array[Int]
        do
                return [
-                               -1, 3, 1420,
-                               9, 0, 1446,
+                               -1, 1, 292,
+                               9, 0, 1454,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -17019,8 +17084,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -17031,66 +17096,38 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1422: Array[Int]
-       do
-               return [
-                               -1, 1, 603
-                       ]
-       end
-       private fun action_table_row1423: Array[Int]
-       do
-               return [
-                               -1, 1, 280,
-                               26, 1, 553
-                       ]
-       end
-       private fun action_table_row1424: Array[Int]
-       do
-               return [
-                               -1, 1, 283,
-                               26, 1, 556
-                       ]
-       end
-       private fun action_table_row1425: Array[Int]
-       do
-               return [
-                               -1, 1, 276,
-                               26, 1, 549,
-                               50, 0, 159
-                       ]
-       end
-       private fun action_table_row1426: Array[Int]
+       private fun action_table_row1430: Array[Int]
        do
                return [
-                               -1, 1, 342
+                               -1, 1, 344
                        ]
        end
-       private fun action_table_row1427: Array[Int]
+       private fun action_table_row1431: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1428: Array[Int]
+       private fun action_table_row1432: Array[Int]
        do
                return [
-                               -1, 3, 1427,
-                               45, 0, 1450
+                               -1, 3, 1431,
+                               45, 0, 1456
                        ]
        end
-       private fun action_table_row1429: Array[Int]
+       private fun action_table_row1433: Array[Int]
        do
                return [
-                               -1, 3, 1428,
-                               52, 0, 1451
+                               -1, 3, 1432,
+                               51, 0, 1457
                        ]
        end
-       private fun action_table_row1430: Array[Int]
+       private fun action_table_row1434: Array[Int]
        do
                return [
-                               -1, 3, 1429,
+                               -1, 3, 1433,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -17101,10 +17138,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -17115,24 +17152,24 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1431: Array[Int]
+       private fun action_table_row1435: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1432: Array[Int]
+       private fun action_table_row1436: Array[Int]
        do
                return [
                                -1, 1, 142
                        ]
        end
-       private fun action_table_row1433: Array[Int]
+       private fun action_table_row1437: Array[Int]
        do
                return [
-                               -1, 3, 1432,
+                               -1, 3, 1436,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -17143,10 +17180,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -17157,22 +17194,22 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1434: Array[Int]
+       private fun action_table_row1438: Array[Int]
        do
                return [
                                -1, 1, 170
                        ]
        end
-       private fun action_table_row1435: Array[Int]
+       private fun action_table_row1439: Array[Int]
        do
                return [
                                -1, 1, 150
                        ]
        end
-       private fun action_table_row1436: Array[Int]
+       private fun action_table_row1440: Array[Int]
        do
                return [
-                               -1, 3, 1435,
+                               -1, 3, 1439,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -17183,10 +17220,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -17197,28 +17234,28 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1437: Array[Int]
+       private fun action_table_row1441: Array[Int]
        do
                return [
                                -1, 1, 159
                        ]
        end
-       private fun action_table_row1438: Array[Int]
+       private fun action_table_row1442: Array[Int]
        do
                return [
                                -1, 1, 172
                        ]
        end
-       private fun action_table_row1439: Array[Int]
+       private fun action_table_row1443: Array[Int]
        do
                return [
                                -1, 1, 148
                        ]
        end
-       private fun action_table_row1440: Array[Int]
+       private fun action_table_row1444: Array[Int]
        do
                return [
-                               -1, 3, 1439,
+                               -1, 3, 1443,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -17229,10 +17266,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -17243,30 +17280,30 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1441: Array[Int]
+       private fun action_table_row1445: Array[Int]
        do
                return [
                                -1, 1, 157
                        ]
        end
-       private fun action_table_row1442: Array[Int]
+       private fun action_table_row1446: Array[Int]
        do
                return [
                                -1, 1, 165
                        ]
        end
-       private fun action_table_row1443: Array[Int]
+       private fun action_table_row1447: Array[Int]
        do
                return [
                                -1, 1, 236,
-                               26, 1, 511
+                               26, 1, 515
                        ]
        end
-       private fun action_table_row1444: Array[Int]
+       private fun action_table_row1448: Array[Int]
        do
                return [
-                               -1, 3, 1443,
-                               9, 0, 1457,
+                               -1, 3, 1447,
+                               9, 0, 1463,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -17284,8 +17321,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -17296,47 +17333,62 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1445: Array[Int]
+       private fun action_table_row1449: Array[Int]
        do
                return [
-                               -1, 1, 333,
-                               26, 1, 591
+                               -1, 1, 335,
+                               26, 1, 595
                        ]
        end
-       private fun action_table_row1446: Array[Int]
+       private fun action_table_row1450: Array[Int]
        do
                return [
-                               -1, 1, 344,
-                               26, 1, 602
+                               -1, 1, 346,
+                               26, 1, 606
                        ]
        end
-       private fun action_table_row1447: Array[Int]
+       private fun action_table_row1451: Array[Int]
        do
                return [
-                               -1, 1, 339,
-                               26, 1, 597,
-                               50, 0, 159
+                               -1, 1, 341,
+                               26, 1, 601,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1448: Array[Int]
+       private fun action_table_row1452: Array[Int]
        do
                return [
-                               -1, 3, 1447,
+                               -1, 3, 1451,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1449: Array[Int]
+       private fun action_table_row1453: Array[Int]
        do
                return [
-                               -1, 1, 284,
+                               -1, 1, 280,
                                26, 1, 557
                        ]
        end
-       private fun action_table_row1450: Array[Int]
+       private fun action_table_row1454: Array[Int]
+       do
+               return [
+                               -1, 1, 283,
+                               26, 1, 560
+                       ]
+       end
+       private fun action_table_row1455: Array[Int]
+       do
+               return [
+                               -1, 1, 276,
+                               26, 1, 553,
+                               49, 0, 159
+                       ]
+       end
+       private fun action_table_row1456: Array[Int]
        do
                return [
-                               -1, 3, 1449,
+                               -1, 3, 1455,
                                12, 0, 737,
                                24, 0, 738,
                                32, 0, 739,
@@ -17347,9 +17399,9 @@ abstract class ParserTable
                                43, 0, 744,
                                44, 0, 745,
                                45, 0, 746,
-                               49, 0, 747,
-                               51, 0, 748,
-                               65, 0, 749,
+                               48, 0, 747,
+                               50, 0, 748,
+                               64, 0, 749,
                                76, 0, 46,
                                77, 0, 750,
                                78, 0, 751,
@@ -17360,30 +17412,30 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1451: Array[Int]
+       private fun action_table_row1457: Array[Int]
        do
                return [
-                               -1, 1, 440,
+                               -1, 1, 444,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1452: Array[Int]
+       private fun action_table_row1458: Array[Int]
        do
                return [
-                               -1, 1, 509
+                               -1, 1, 513
                        ]
        end
-       private fun action_table_row1453: Array[Int]
+       private fun action_table_row1459: Array[Int]
        do
                return [
                                -1, 1, 151
                        ]
        end
-       private fun action_table_row1454: Array[Int]
+       private fun action_table_row1460: Array[Int]
        do
                return [
-                               -1, 3, 1453,
+                               -1, 3, 1459,
                                12, 0, 138,
                                24, 0, 139,
                                32, 0, 140,
@@ -17394,10 +17446,10 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               49, 0, 144,
-                               51, 0, 44,
-                               53, 0, 45,
-                               65, 0, 145,
+                               48, 0, 144,
+                               50, 0, 44,
+                               52, 0, 45,
+                               64, 0, 145,
                                76, 0, 46,
                                77, 0, 170,
                                78, 0, 147,
@@ -17408,43 +17460,43 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1455: Array[Int]
+       private fun action_table_row1461: Array[Int]
        do
                return [
                                -1, 1, 160
                        ]
        end
-       private fun action_table_row1456: Array[Int]
+       private fun action_table_row1462: Array[Int]
        do
                return [
                                -1, 1, 168
                        ]
        end
-       private fun action_table_row1457: Array[Int]
+       private fun action_table_row1463: Array[Int]
        do
                return [
                                -1, 1, 166
                        ]
        end
-       private fun action_table_row1458: Array[Int]
+       private fun action_table_row1464: Array[Int]
        do
                return [
                                -1, 1, 237,
-                               26, 1, 512
+                               26, 1, 516
                        ]
        end
-       private fun action_table_row1459: Array[Int]
+       private fun action_table_row1465: Array[Int]
        do
                return [
-                               -1, 1, 343,
-                               26, 1, 601
+                               -1, 1, 345,
+                               26, 1, 605
                        ]
        end
-       private fun action_table_row1460: Array[Int]
+       private fun action_table_row1466: Array[Int]
        do
                return [
-                               -1, 3, 1459,
-                               9, 0, 1464,
+                               -1, 3, 1465,
+                               9, 0, 1471,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -17462,8 +17514,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -17474,46 +17526,53 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1461: Array[Int]
+       private fun action_table_row1467: Array[Int]
        do
                return [
-                               -1, 3, 1460,
+                               -1, 3, 1466,
                                0, 0, 1,
                                1, 0, 2
                        ]
        end
-       private fun action_table_row1462: Array[Int]
+       private fun action_table_row1468: Array[Int]
        do
                return [
-                               -1, 1, 460
+                               -1, 1, 284,
+                               26, 1, 561
                        ]
        end
-       private fun action_table_row1463: Array[Int]
+       private fun action_table_row1469: Array[Int]
        do
                return [
-                               -1, 3, 1462,
-                               52, 0, 1466
+                               -1, 1, 464
                        ]
        end
-       private fun action_table_row1464: Array[Int]
+       private fun action_table_row1470: Array[Int]
+       do
+               return [
+                               -1, 3, 1469,
+                               51, 0, 1473
+                       ]
+       end
+       private fun action_table_row1471: Array[Int]
        do
                return [
                                -1, 1, 169
                        ]
        end
-       private fun action_table_row1465: Array[Int]
+       private fun action_table_row1472: Array[Int]
        do
                return [
-                               -1, 1, 337,
-                               26, 1, 595,
-                               50, 0, 159
+                               -1, 1, 339,
+                               26, 1, 599,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1466: Array[Int]
+       private fun action_table_row1473: Array[Int]
        do
                return [
-                               -1, 3, 1465,
-                               9, 0, 1468,
+                               -1, 3, 1472,
+                               9, 0, 1475,
                                12, 0, 23,
                                15, 0, 25,
                                18, 0, 26,
@@ -17531,8 +17590,8 @@ abstract class ParserTable
                                43, 0, 41,
                                44, 0, 42,
                                45, 0, 43,
-                               51, 0, 44,
-                               53, 0, 45,
+                               50, 0, 44,
+                               52, 0, 45,
                                76, 0, 46,
                                77, 0, 47,
                                78, 0, 48,
@@ -17543,32 +17602,32 @@ abstract class ParserTable
                                83, 0, 53
                        ]
        end
-       private fun action_table_row1467: Array[Int]
+       private fun action_table_row1474: Array[Int]
        do
                return [
-                               -1, 1, 510
+                               -1, 1, 514
                        ]
        end
-       private fun action_table_row1468: Array[Int]
+       private fun action_table_row1475: Array[Int]
        do
                return [
-                               -1, 1, 341,
-                               26, 1, 599
+                               -1, 1, 343,
+                               26, 1, 603
                        ]
        end
-       private fun action_table_row1469: Array[Int]
+       private fun action_table_row1476: Array[Int]
        do
                return [
-                               -1, 1, 338,
-                               26, 1, 596,
-                               50, 0, 159
+                               -1, 1, 340,
+                               26, 1, 600,
+                               49, 0, 159
                        ]
        end
-       private fun action_table_row1470: Array[Int]
+       private fun action_table_row1477: Array[Int]
        do
                return [
-                               -1, 1, 342,
-                               26, 1, 600
+                               -1, 1, 344,
+                               26, 1, 604
                        ]
        end
 
@@ -17610,8 +17669,8 @@ abstract class ParserTable
                                360, 465,
                                361, 466,
                                363, 468,
-                               463, 572,
-                               467, 573
+                               463, 573,
+                               467, 574
                        ],
                        [
                                -1, 7
@@ -17628,45 +17687,45 @@ abstract class ParserTable
                                127, 257
                        ],
                        [
-                               -1, 558,
-                               498, 585
+                               -1, 559,
+                               498, 586
                        ],
                        [
-                               -1, 916,
-                               918, 1037
+                               -1, 920,
+                               922, 1041
                        ],
                        [
-                               -1, 786,
-                               1035, 1141
+                               -1, 789,
+                               1039, 1143
                        ],
                        [
-                               -1, 559,
-                               562, 668,
-                               588, 668,
+                               -1, 560,
+                               563, 668,
+                               589, 668,
                                660, 668,
                                687, 668
                        ],
                        [
-                               -1, 791,
-                               794, 925,
-                               824, 925,
-                               920, 925,
-                               950, 925,
-                               957, 925,
-                               963, 925,
-                               1042, 925,
-                               1080, 925
+                               -1, 794,
+                               797, 929,
+                               827, 929,
+                               924, 929,
+                               954, 929,
+                               961, 929,
+                               967, 929,
+                               1046, 929,
+                               1084, 929
                        ],
                        [
-                               -1, 792,
-                               450, 560,
-                               498, 586,
-                               558, 658,
-                               562, 669,
-                               585, 685,
-                               588, 690,
-                               660, 789,
-                               687, 821
+                               -1, 795,
+                               450, 561,
+                               498, 587,
+                               559, 658,
+                               563, 669,
+                               586, 685,
+                               589, 690,
+                               660, 792,
+                               687, 824
                        ],
                        [
                                -1, 667,
@@ -17676,58 +17735,58 @@ abstract class ParserTable
                                82, 216,
                                209, 349,
                                348, 460,
-                               664, 798,
-                               665, 801,
-                               666, 803,
-                               796, 930,
-                               797, 932,
-                               799, 938,
-                               800, 940,
+                               664, 801,
+                               665, 804,
+                               666, 806,
+                               799, 934,
+                               800, 936,
                                802, 942,
-                               928, 1045,
-                               929, 1047,
-                               931, 1049,
-                               937, 1057,
-                               939, 1059,
-                               1044, 1147,
-                               1046, 1149,
-                               1056, 1160,
-                               1146, 1221
+                               803, 944,
+                               805, 946,
+                               932, 1049,
+                               933, 1051,
+                               935, 1053,
+                               941, 1061,
+                               943, 1063,
+                               1048, 1149,
+                               1050, 1151,
+                               1060, 1162,
+                               1148, 1222
                        ],
                        [
                                -1, 333,
                                256, 393,
-                               804, 944,
-                               806, 946,
-                               933, 1051,
-                               935, 1053
+                               807, 948,
+                               809, 950,
+                               937, 1055,
+                               939, 1057
                        ],
                        [
                                -1, 445,
                                393, 497,
-                               806, 947,
-                               935, 1054,
-                               944, 1064,
-                               946, 1066,
-                               1051, 1154,
-                               1053, 1156
+                               809, 951,
+                               939, 1058,
+                               948, 1068,
+                               950, 1070,
+                               1055, 1156,
+                               1057, 1158
                        ],
                        [
-                               -1, 911,
-                               910, 1031
+                               -1, 785,
+                               784, 914
                        ],
                        [
                                -1, 446,
-                               784, 912,
-                               910, 912
+                               655, 786,
+                               784, 786
                        ],
                        [
-                               -1, 776,
-                               778, 906
+                               -1, 777,
+                               779, 910
                        ],
                        [
                                -1, 646,
-                               904, 1027
+                               908, 1032
                        ],
                        [
                                -1, 447,
@@ -17736,11 +17795,11 @@ abstract class ParserTable
                                550, 652
                        ],
                        [
-                               -1, 555,
-                               556, 656
+                               -1, 556,
+                               557, 656
                        ],
                        [
-                               -1, 629,
+                               -1, 630,
                                167, 301,
                                229, 368,
                                269, 406,
@@ -17748,81 +17807,81 @@ abstract class ParserTable
                                379, 480,
                                398, 501,
                                414, 513,
-                               795, 927,
-                               810, 952,
-                               816, 955,
-                               862, 992,
-                               1344, 1391
+                               798, 931,
+                               813, 956,
+                               819, 959,
+                               865, 995,
+                               1346, 1394
                        ],
                        [
-                               -1, 630,
-                               628, 730
+                               -1, 631,
+                               629, 730
                        ],
                        [
                                -1, 732,
-                               733, 863
+                               733, 866
                        ],
                        [
                                -1, 448,
                                131, 263,
                                446, 550,
-                               645, 774,
-                               697, 831,
-                               784, 913,
-                               785, 914,
-                               910, 913,
-                               912, 1034,
-                               945, 1065,
-                               948, 1069,
-                               1052, 1155,
-                               1055, 1159,
-                               1061, 1166,
-                               1063, 1169,
-                               1151, 1227,
-                               1153, 1230,
-                               1162, 1240,
-                               1164, 1243,
-                               1167, 1247,
-                               1223, 1288,
-                               1225, 1291,
-                               1228, 1295,
-                               1238, 1308,
-                               1241, 1312,
-                               1286, 1347,
-                               1289, 1351,
-                               1306, 1365,
-                               1345, 1393
+                               645, 775,
+                               655, 787,
+                               697, 834,
+                               784, 787,
+                               786, 917,
+                               788, 918,
+                               949, 1069,
+                               952, 1073,
+                               1056, 1157,
+                               1059, 1161,
+                               1065, 1168,
+                               1067, 1171,
+                               1153, 1228,
+                               1155, 1231,
+                               1164, 1241,
+                               1166, 1244,
+                               1169, 1248,
+                               1224, 1289,
+                               1226, 1292,
+                               1229, 1296,
+                               1239, 1309,
+                               1242, 1313,
+                               1287, 1349,
+                               1290, 1353,
+                               1307, 1367,
+                               1347, 1396
                        ],
                        [
-                               -1, 855,
+                               -1, 858,
                                548, 649,
-                               584, 684,
-                               597, 699,
-                               1032, 1140,
-                               1067, 1173,
-                               1138, 1218,
-                               1157, 1234,
-                               1171, 1253,
-                               1172, 1254,
-                               1232, 1301,
-                               1233, 1302
+                               585, 684,
+                               598, 699,
+                               915, 1038,
+                               1036, 1141,
+                               1071, 1175,
+                               1159, 1235,
+                               1173, 1254,
+                               1174, 1255,
+                               1233, 1302,
+                               1234, 1303
                        ],
                        [
                                -1, 189,
                                192, 336,
                                397, 336,
-                               769, 336,
-                               854, 336,
-                               858, 336,
-                               901, 336,
-                               909, 336,
-                               966, 336,
-                               1271, 336,
-                               1279, 336,
-                               1333, 336,
-                               1339, 336,
-                               1416, 336,
-                               1460, 336
+                               857, 336,
+                               861, 336,
+                               902, 336,
+                               913, 336,
+                               970, 336,
+                               1030, 336,
+                               1280, 336,
+                               1334, 336,
+                               1338, 336,
+                               1389, 336,
+                               1419, 336,
+                               1466, 336
                        ],
                        [
                                -1, 335,
@@ -17832,113 +17891,117 @@ abstract class ParserTable
                                82, 55,
                                130, 260,
                                209, 55,
-                               436, 539,
-                               504, 608,
-                               505, 622,
-                               540, 639,
-                               541, 641,
+                               504, 609,
+                               505, 623,
+                               538, 639,
                                548, 650,
-                               584, 650,
-                               594, 129,
-                               597, 650,
-                               612, 721,
-                               623, 726,
+                               585, 650,
+                               595, 129,
+                               598, 650,
+                               613, 721,
+                               624, 726,
+                               640, 769,
                                642, 772,
-                               651, 782,
-                               695, 829,
+                               651, 783,
+                               695, 832,
                                723, 650,
-                               977, 539,
-                               989, 1105,
-                               1032, 650,
-                               1067, 650,
-                               1088, 608,
-                               1089, 622,
-                               1093, 1197,
-                               1095, 641,
-                               1106, 1209,
-                               1138, 650,
-                               1157, 650,
-                               1171, 650,
-                               1172, 650,
-                               1191, 1266,
-                               1199, 1274,
-                               1232, 650,
+                               773, 905,
+                               915, 650,
+                               992, 1107,
+                               1036, 650,
+                               1071, 650,
+                               1092, 609,
+                               1093, 623,
+                               1096, 639,
+                               1108, 1209,
+                               1159, 650,
+                               1173, 650,
+                               1174, 650,
+                               1193, 1267,
+                               1198, 1272,
+                               1200, 772,
                                1233, 650,
-                               1263, 650,
-                               1328, 1379,
-                               1382, 1105,
-                               1420, 1447
+                               1234, 650,
+                               1264, 650,
+                               1274, 1341,
+                               1329, 1381,
+                               1384, 1107,
+                               1423, 1451
                        ],
                        [
                                -1, 160,
                                35, 162,
                                128, 258,
                                259, 395,
-                               499, 589,
-                               538, 637,
-                               590, 692,
-                               601, 706,
-                               602, 708,
-                               621, 724,
+                               499, 590,
+                               591, 692,
+                               602, 706,
+                               603, 708,
+                               622, 724,
                                638, 767,
-                               640, 770,
-                               694, 827,
-                               725, 856,
-                               771, 899,
-                               828, 964,
-                               897, 1023,
-                               987, 1102,
-                               1024, 1134,
-                               1025, 1135,
-                               1084, 1186,
-                               1092, 1195,
-                               1103, 1206,
-                               1104, 1207,
-                               1136, 1217,
-                               1187, 1262,
-                               1190, 1264,
-                               1196, 1269,
-                               1198, 1272,
-                               1208, 1277,
-                               1265, 1331,
-                               1273, 1337,
-                               1335, 1383,
+                               694, 830,
+                               725, 859,
+                               768, 900,
+                               771, 903,
+                               831, 968,
+                               904, 1028,
+                               990, 1104,
+                               1026, 1136,
+                               1088, 1188,
+                               1105, 1206,
+                               1106, 1207,
+                               1137, 1217,
+                               1138, 1218,
+                               1189, 1263,
+                               1192, 1265,
+                               1197, 1270,
+                               1208, 1278,
+                               1219, 1285,
+                               1266, 1332,
+                               1271, 1336,
+                               1273, 1339,
                                1340, 1387,
-                               1380, 1417,
-                               1384, 1422,
-                               1385, 1423,
-                               1388, 1425,
-                               1418, 1444,
-                               1419, 1445,
-                               1424, 1448,
-                               1446, 1458,
-                               1464, 1467,
-                               1468, 1469
+                               1342, 1390,
+                               1382, 1420,
+                               1385, 1425,
+                               1391, 1429,
+                               1421, 1448,
+                               1422, 1449,
+                               1426, 1452,
+                               1427, 1453,
+                               1450, 1464,
+                               1454, 1467,
+                               1471, 1474,
+                               1475, 1476
                        ],
                        [
                                -1, 312,
                                274, 410,
                                292, 428,
                                314, 439,
-                               568, 674,
-                               627, 729,
-                               835, 410,
-                               837, 428,
-                               844, 439,
-                               1098, 674,
-                               1194, 729
+                               569, 674,
+                               628, 729,
+                               838, 410,
+                               840, 428,
+                               847, 439,
+                               1100, 674,
+                               1196, 729
                        ],
                        [
                                -1, 313
                        ],
                        [
                                -1, 314,
-                               715, 844,
-                               835, 844,
-                               837, 844,
-                               844, 844,
-                               1098, 844,
-                               1194, 844
+                               715, 847,
+                               838, 847,
+                               840, 847,
+                               847, 847,
+                               1100, 847,
+                               1196, 847
+                       ],
+                       [
+                               -1, 438,
+                               846, 981
                        ],
                        [
                                -1, 56
@@ -17950,13 +18013,13 @@ abstract class ParserTable
                                -1, 181,
                                176, 310,
                                195, 341,
-                               455, 570,
-                               567, 673,
-                               607, 717,
-                               714, 842,
-                               719, 851,
-                               982, 1100,
-                               1097, 1202
+                               455, 571,
+                               568, 673,
+                               608, 717,
+                               714, 845,
+                               719, 854,
+                               985, 1102,
+                               1099, 1202
                        ],
                        [
                                -1, 58
@@ -17965,10 +18028,10 @@ abstract class ParserTable
                                -1, 59
                        ],
                        [
-                               -1, 609,
-                               612, 722,
-                               853, 985,
-                               986, 1101
+                               -1, 610,
+                               613, 722,
+                               856, 988,
+                               989, 1103
                        ],
                        [
                                -1, 60
@@ -17981,7 +18044,7 @@ abstract class ParserTable
                        ],
                        [
                                -1, 165,
-                               604, 711
+                               605, 711
                        ],
                        [
                                -1, 148,
@@ -17998,29 +18061,29 @@ abstract class ParserTable
                                340, 456,
                                341, 457,
                                399, 502,
-                               503, 591,
-                               569, 675,
-                               570, 676,
-                               601, 161,
-                               602, 163,
-                               604, 166,
-                               672, 811,
-                               673, 812,
+                               503, 592,
+                               570, 675,
+                               571, 676,
+                               602, 161,
+                               603, 163,
+                               605, 166,
+                               672, 814,
+                               673, 815,
                                706, 295,
                                708, 296,
                                711, 298,
                                716, 315,
                                717, 316,
-                               841, 434,
-                               842, 435,
-                               850, 456,
-                               851, 457,
-                               967, 502,
-                               1087, 591,
-                               1099, 675,
-                               1100, 676,
-                               1201, 811,
-                               1202, 812
+                               844, 434,
+                               845, 435,
+                               853, 456,
+                               854, 457,
+                               971, 502,
+                               1091, 592,
+                               1101, 675,
+                               1102, 676,
+                               1201, 814,
+                               1202, 815
                        ],
                        [
                                -1, 149,
@@ -18035,72 +18098,72 @@ abstract class ParserTable
                                338, 451,
                                342, 458,
                                365, 470,
-                               600, 703,
                                601, 703,
                                602, 703,
-                               604, 703,
-                               624, 727,
-                               633, 736,
-                               679, 814,
-                               698, 832,
-                               700, 833,
+                               603, 703,
+                               605, 703,
+                               625, 727,
+                               634, 736,
+                               679, 817,
+                               698, 835,
+                               700, 836,
                                706, 703,
                                708, 703,
                                711, 703,
                                716, 703,
                                717, 703,
-                               728, 860,
-                               748, 875,
-                               841, 703,
-                               842, 703,
-                               850, 703,
-                               851, 703,
-                               867, 993,
-                               967, 703,
-                               1087, 703,
-                               1099, 703,
-                               1100, 703,
-                               1174, 1256,
-                               1193, 1267,
+                               728, 863,
+                               748, 878,
+                               844, 703,
+                               845, 703,
+                               853, 703,
+                               854, 703,
+                               870, 996,
+                               971, 703,
+                               1091, 703,
+                               1101, 703,
+                               1102, 703,
+                               1176, 1257,
+                               1195, 1268,
                                1201, 703,
                                1202, 703,
-                               1210, 1280,
-                               1235, 1304,
-                               1244, 1315,
-                               1248, 1319,
-                               1257, 1324,
-                               1281, 1342,
-                               1292, 1354,
-                               1296, 1358,
-                               1305, 1363,
-                               1309, 1368,
-                               1313, 1372,
-                               1316, 1374,
-                               1317, 1375,
-                               1320, 1377,
-                               1348, 1396,
-                               1352, 1400,
-                               1355, 1402,
-                               1356, 1403,
-                               1359, 1405,
-                               1366, 1408,
-                               1369, 1410,
-                               1370, 1411,
-                               1373, 1413,
-                               1376, 1414,
-                               1394, 1431,
-                               1397, 1433,
-                               1398, 1434,
-                               1401, 1436,
-                               1404, 1437,
-                               1406, 1438,
-                               1409, 1440,
-                               1412, 1441,
-                               1429, 1452,
-                               1432, 1454,
-                               1435, 1455,
-                               1439, 1456,
-                               1453, 1463
+                               1210, 1281,
+                               1236, 1305,
+                               1245, 1316,
+                               1249, 1320,
+                               1258, 1325,
+                               1282, 1344,
+                               1293, 1356,
+                               1297, 1360,
+                               1306, 1365,
+                               1310, 1370,
+                               1314, 1374,
+                               1317, 1376,
+                               1318, 1377,
+                               1321, 1379,
+                               1350, 1399,
+                               1354, 1403,
+                               1357, 1405,
+                               1358, 1406,
+                               1361, 1408,
+                               1368, 1411,
+                               1371, 1413,
+                               1372, 1414,
+                               1375, 1416,
+                               1378, 1417,
+                               1397, 1435,
+                               1400, 1437,
+                               1401, 1438,
+                               1404, 1440,
+                               1407, 1441,
+                               1409, 1442,
+                               1412, 1444,
+                               1415, 1445,
+                               1433, 1458,
+                               1436, 1460,
+                               1439, 1461,
+                               1443, 1462,
+                               1459, 1470
                        ],
                        [
                                -1, 150
@@ -18166,25 +18229,24 @@ abstract class ParserTable
                                341, 157,
                                396, 63,
                                399, 157,
-                               436, 63,
                                500, 63,
                                503, 157,
-                               504, 610,
+                               504, 611,
                                505, 63,
-                               540, 63,
-                               541, 63,
+                               538, 63,
                                548, 63,
-                               569, 157,
                                570, 157,
-                               584, 63,
-                               594, 610,
-                               597, 63,
-                               600, 704,
+                               571, 157,
+                               585, 63,
+                               595, 611,
+                               598, 63,
                                601, 704,
                                602, 704,
-                               604, 704,
-                               612, 63,
-                               623, 63,
+                               603, 704,
+                               605, 704,
+                               613, 63,
+                               624, 63,
+                               640, 63,
                                642, 63,
                                651, 63,
                                672, 157,
@@ -18196,61 +18258,62 @@ abstract class ParserTable
                                716, 704,
                                717, 704,
                                723, 63,
-                               768, 63,
-                               841, 704,
-                               842, 704,
-                               850, 704,
-                               851, 704,
-                               853, 63,
-                               857, 63,
-                               898, 63,
-                               900, 63,
-                               908, 63,
-                               965, 63,
-                               967, 704,
-                               977, 610,
-                               986, 63,
-                               988, 63,
+                               773, 63,
+                               844, 704,
+                               845, 704,
+                               853, 704,
+                               854, 704,
+                               856, 63,
+                               860, 63,
+                               901, 63,
+                               912, 63,
+                               915, 63,
+                               969, 63,
+                               971, 704,
                                989, 63,
-                               1026, 63,
-                               1030, 63,
-                               1032, 63,
-                               1067, 63,
-                               1085, 63,
-                               1087, 704,
-                               1088, 610,
-                               1089, 610,
-                               1093, 63,
-                               1095, 610,
-                               1099, 704,
-                               1100, 704,
-                               1106, 63,
-                               1138, 63,
-                               1157, 63,
-                               1171, 63,
-                               1172, 63,
-                               1191, 63,
-                               1199, 63,
+                               991, 63,
+                               992, 63,
+                               1027, 63,
+                               1029, 63,
+                               1035, 63,
+                               1036, 63,
+                               1071, 63,
+                               1089, 63,
+                               1091, 704,
+                               1092, 611,
+                               1093, 611,
+                               1096, 611,
+                               1101, 704,
+                               1102, 704,
+                               1108, 63,
+                               1139, 63,
+                               1159, 63,
+                               1173, 63,
+                               1174, 63,
+                               1193, 63,
+                               1198, 63,
+                               1200, 611,
                                1201, 704,
                                1202, 704,
-                               1232, 63,
                                1233, 63,
-                               1263, 610,
-                               1270, 63,
-                               1278, 63,
-                               1328, 63,
-                               1332, 63,
-                               1336, 63,
-                               1338, 63,
-                               1341, 63,
-                               1381, 63,
-                               1382, 610,
+                               1234, 63,
+                               1264, 611,
+                               1274, 63,
+                               1279, 63,
+                               1329, 63,
+                               1333, 63,
+                               1337, 63,
+                               1343, 63,
+                               1383, 63,
+                               1384, 611,
                                1386, 63,
-                               1415, 63,
-                               1420, 63,
-                               1443, 63,
-                               1459, 63,
-                               1465, 63
+                               1388, 63,
+                               1418, 63,
+                               1423, 63,
+                               1428, 63,
+                               1447, 63,
+                               1465, 63,
+                               1472, 63
                        ],
                        [
                                -1, 64,
@@ -18279,23 +18342,20 @@ abstract class ParserTable
                                391, 114,
                                452, 114,
                                454, 114,
-                               593, 114,
-                               605, 114,
+                               594, 114,
                                606, 114,
-                               634, 756,
+                               607, 114,
+                               635, 756,
                                720, 114,
                                747, 756,
-                               868, 756,
-                               870, 756,
-                               876, 756,
-                               980, 114,
-                               981, 114,
-                               1006, 756,
-                               1007, 756,
-                               1008, 756,
+                               871, 756,
+                               873, 756,
+                               879, 756,
+                               983, 114,
+                               984, 114,
+                               1009, 756,
                                1010, 756,
                                1011, 756,
-                               1012, 756,
                                1013, 756,
                                1014, 756,
                                1015, 756,
@@ -18305,8 +18365,11 @@ abstract class ParserTable
                                1019, 756,
                                1020, 756,
                                1021, 756,
-                               1179, 114,
-                               1449, 756
+                               1022, 756,
+                               1023, 756,
+                               1024, 756,
+                               1181, 114,
+                               1455, 756
                        ],
                        [
                                -1, 65
@@ -18341,45 +18404,45 @@ abstract class ParserTable
                                293, 346,
                                368, 473,
                                406, 508,
-                               452, 564,
-                               454, 567,
-                               493, 580,
-                               495, 582,
-                               526, 564,
-                               527, 627,
-                               532, 632,
-                               605, 168,
-                               606, 714,
-                               631, 735,
-                               680, 815,
-                               702, 835,
-                               710, 835,
+                               452, 565,
+                               454, 568,
+                               493, 581,
+                               495, 583,
+                               526, 565,
+                               527, 628,
+                               532, 633,
+                               606, 168,
+                               607, 714,
+                               632, 735,
+                               680, 818,
+                               702, 838,
+                               710, 838,
                                720, 346,
-                               737, 866,
-                               742, 871,
-                               750, 877,
-                               878, 1003,
-                               980, 564,
-                               981, 1097,
-                               997, 1111,
-                               1091, 1194,
-                               1130, 1214,
-                               1132, 1216,
-                               1282, 1343
+                               737, 869,
+                               742, 874,
+                               750, 880,
+                               881, 1006,
+                               983, 565,
+                               984, 1099,
+                               1000, 1113,
+                               1095, 1196,
+                               1132, 1214,
+                               1134, 1216,
+                               1283, 1345
                        ],
                        [
                                -1, 116,
                                39, 169,
                                47, 177,
                                203, 347,
-                               452, 565,
-                               454, 568,
-                               593, 693,
-                               605, 713,
-                               606, 715,
-                               720, 852,
-                               980, 1096,
-                               981, 1098
+                               452, 566,
+                               454, 569,
+                               594, 693,
+                               606, 713,
+                               607, 715,
+                               720, 855,
+                               983, 1098,
+                               984, 1100
                        ],
                        [
                                -1, 67,
@@ -18387,18 +18450,22 @@ abstract class ParserTable
                                157, 292,
                                172, 305,
                                272, 305,
-                               610, 719,
-                               704, 837
+                               611, 719,
+                               704, 840
                        ],
                        [
                                -1, 536,
-                               537, 636,
-                               579, 636,
-                               678, 636
+                               537, 637,
+                               580, 637,
+                               678, 637
                        ],
                        [
-                               -1, 438,
-                               843, 978
+                               -1, 541,
+                               981, 1097
+                       ],
+                       [
+                               -1, 542,
+                               539, 641
                        ],
                        [
                                -1, 158,
@@ -18433,52 +18500,47 @@ abstract class ParserTable
                                390, 117,
                                391, 117,
                                396, 68,
-                               436, 68,
                                452, 117,
                                454, 117,
                                500, 68,
-                               504, 611,
+                               504, 612,
                                505, 68,
-                               540, 68,
-                               541, 68,
+                               538, 68,
                                548, 68,
-                               584, 68,
-                               593, 117,
-                               594, 611,
-                               597, 68,
-                               605, 117,
+                               585, 68,
+                               594, 117,
+                               595, 612,
+                               598, 68,
                                606, 117,
-                               612, 68,
-                               623, 68,
-                               634, 757,
+                               607, 117,
+                               613, 68,
+                               624, 68,
+                               635, 757,
+                               640, 68,
                                642, 68,
                                651, 68,
                                695, 68,
                                720, 117,
                                723, 68,
                                747, 757,
-                               768, 68,
-                               853, 68,
-                               857, 68,
-                               868, 757,
-                               870, 757,
-                               876, 757,
-                               898, 68,
-                               900, 68,
-                               908, 68,
-                               965, 68,
-                               977, 611,
-                               980, 117,
-                               981, 117,
-                               986, 68,
-                               988, 68,
+                               773, 68,
+                               856, 68,
+                               860, 68,
+                               871, 757,
+                               873, 757,
+                               879, 757,
+                               901, 68,
+                               912, 68,
+                               915, 68,
+                               969, 68,
+                               983, 117,
+                               984, 117,
                                989, 68,
-                               1006, 757,
-                               1007, 757,
-                               1008, 757,
+                               991, 68,
+                               992, 68,
+                               1009, 757,
                                1010, 757,
                                1011, 757,
-                               1012, 757,
                                1013, 757,
                                1014, 757,
                                1015, 757,
@@ -18488,42 +18550,47 @@ abstract class ParserTable
                                1019, 757,
                                1020, 757,
                                1021, 757,
-                               1026, 68,
-                               1030, 68,
-                               1032, 68,
-                               1067, 68,
-                               1085, 68,
-                               1088, 611,
-                               1089, 611,
-                               1093, 68,
-                               1095, 611,
-                               1106, 68,
-                               1138, 68,
-                               1157, 68,
-                               1171, 68,
-                               1172, 68,
-                               1179, 117,
-                               1191, 68,
-                               1199, 68,
-                               1232, 68,
+                               1022, 757,
+                               1023, 757,
+                               1024, 757,
+                               1027, 68,
+                               1029, 68,
+                               1035, 68,
+                               1036, 68,
+                               1071, 68,
+                               1089, 68,
+                               1092, 612,
+                               1093, 612,
+                               1096, 612,
+                               1108, 68,
+                               1139, 68,
+                               1159, 68,
+                               1173, 68,
+                               1174, 68,
+                               1181, 117,
+                               1193, 68,
+                               1198, 68,
+                               1200, 612,
                                1233, 68,
-                               1263, 611,
-                               1270, 68,
-                               1278, 68,
-                               1328, 68,
-                               1332, 68,
-                               1336, 68,
-                               1338, 68,
-                               1341, 68,
-                               1381, 68,
-                               1382, 611,
+                               1234, 68,
+                               1264, 612,
+                               1274, 68,
+                               1279, 68,
+                               1329, 68,
+                               1333, 68,
+                               1337, 68,
+                               1343, 68,
+                               1383, 68,
+                               1384, 612,
                                1386, 68,
-                               1415, 68,
-                               1420, 68,
-                               1443, 68,
-                               1449, 757,
-                               1459, 68,
-                               1465, 68
+                               1388, 68,
+                               1418, 68,
+                               1423, 68,
+                               1428, 68,
+                               1447, 68,
+                               1455, 757,
+                               1465, 68,
+                               1472, 68
                        ],
                        [
                                -1, 69,
@@ -18546,15 +18613,15 @@ abstract class ParserTable
                                224, 364,
                                440, 543,
                                441, 544,
-                               560, 661,
-                               586, 688,
-                               658, 787,
-                               669, 808,
-                               685, 819,
-                               690, 825,
-                               789, 921,
-                               792, 923,
-                               821, 958
+                               561, 661,
+                               587, 688,
+                               658, 790,
+                               669, 811,
+                               685, 822,
+                               690, 828,
+                               792, 925,
+                               795, 927,
+                               824, 962
                        ],
                        [
                                -1, 93,
@@ -18585,60 +18652,60 @@ abstract class ParserTable
                                361, 9,
                                363, 9,
                                397, 500,
-                               436, 540,
                                463, 9,
                                467, 9,
-                               504, 612,
-                               505, 623,
-                               541, 642,
+                               504, 613,
+                               505, 624,
+                               538, 640,
                                548, 651,
-                               584, 651,
-                               594, 695,
-                               597, 651,
-                               639, 768,
-                               721, 853,
+                               585, 651,
+                               595, 695,
+                               598, 651,
+                               642, 773,
+                               721, 856,
                                723, 651,
-                               726, 857,
-                               769, 898,
-                               772, 900,
-                               782, 908,
-                               829, 965,
-                               854, 986,
-                               858, 988,
-                               901, 1026,
-                               909, 1030,
-                               911, 1033,
-                               966, 1085,
-                               977, 1093,
-                               989, 1106,
-                               1031, 1139,
-                               1032, 651,
-                               1067, 651,
-                               1088, 612,
-                               1089, 1191,
-                               1095, 1199,
-                               1138, 651,
-                               1140, 1219,
-                               1157, 651,
-                               1171, 651,
-                               1172, 651,
-                               1197, 1270,
-                               1209, 1278,
-                               1218, 1284,
-                               1232, 651,
+                               726, 860,
+                               769, 901,
+                               783, 912,
+                               785, 916,
+                               832, 969,
+                               857, 989,
+                               861, 991,
+                               902, 1027,
+                               905, 1029,
+                               913, 1035,
+                               914, 1037,
+                               915, 651,
+                               970, 1089,
+                               992, 1108,
+                               1030, 1139,
+                               1036, 651,
+                               1038, 1142,
+                               1071, 651,
+                               1092, 613,
+                               1093, 1193,
+                               1096, 1198,
+                               1141, 1220,
+                               1159, 651,
+                               1173, 651,
+                               1174, 651,
+                               1200, 1274,
+                               1209, 1279,
                                1233, 651,
-                               1263, 1328,
-                               1266, 1332,
-                               1271, 1336,
-                               1274, 1338,
-                               1279, 1341,
-                               1333, 1381,
-                               1339, 1386,
-                               1379, 1415,
-                               1382, 1420,
-                               1416, 1443,
-                               1447, 1459,
-                               1460, 1465
+                               1234, 651,
+                               1264, 1329,
+                               1267, 1333,
+                               1272, 1337,
+                               1280, 1343,
+                               1334, 1383,
+                               1338, 1386,
+                               1341, 1388,
+                               1381, 1418,
+                               1384, 1423,
+                               1389, 1428,
+                               1419, 1447,
+                               1451, 1465,
+                               1466, 1472
                        ],
                        [
                                -1, 209,
@@ -18735,77 +18802,73 @@ abstract class ParserTable
                                408, 509,
                                430, 530,
                                431, 531,
-                               438, 542,
                                444, 546,
                                446, 551,
                                448, 553,
-                               450, 561,
-                               451, 563,
-                               453, 566,
-                               458, 571,
-                               470, 574,
-                               472, 576,
-                               494, 581,
-                               498, 587,
-                               506, 624,
-                               529, 628,
-                               534, 633,
-                               535, 634,
+                               450, 562,
+                               451, 564,
+                               453, 567,
+                               458, 572,
+                               470, 575,
+                               472, 577,
+                               494, 582,
+                               498, 588,
+                               506, 625,
+                               529, 629,
+                               534, 634,
+                               535, 635,
+                               542, 643,
                                550, 653,
-                               554, 655,
-                               557, 657,
-                               558, 659,
-                               562, 670,
-                               575, 679,
-                               585, 686,
-                               588, 691,
-                               596, 698,
-                               598, 700,
-                               599, 701,
-                               625, 728,
-                               630, 734,
-                               643, 773,
-                               646, 777,
-                               654, 783,
-                               660, 790,
-                               661, 793,
-                               662, 795,
-                               671, 810,
-                               682, 816,
-                               687, 822,
-                               688, 823,
-                               718, 849,
-                               727, 859,
-                               730, 861,
-                               731, 862,
-                               736, 865,
-                               738, 867,
-                               739, 868,
-                               740, 869,
-                               741, 870,
-                               749, 876,
-                               758, 879,
-                               775, 904,
-                               778, 907,
-                               786, 917,
-                               787, 919,
-                               794, 926,
-                               806, 449,
-                               808, 949,
-                               814, 953,
-                               819, 956,
-                               824, 961,
-                               825, 962,
-                               830, 967,
-                               832, 969,
-                               833, 970,
-                               834, 971,
-                               836, 973,
-                               860, 990,
-                               872, 999,
-                               880, 1006,
-                               881, 1007,
-                               882, 1008,
+                               558, 657,
+                               559, 659,
+                               563, 670,
+                               576, 679,
+                               586, 686,
+                               589, 691,
+                               597, 698,
+                               599, 700,
+                               600, 701,
+                               626, 728,
+                               631, 734,
+                               641, 643,
+                               646, 778,
+                               660, 793,
+                               661, 796,
+                               662, 798,
+                               671, 813,
+                               682, 819,
+                               687, 825,
+                               688, 826,
+                               718, 852,
+                               727, 862,
+                               730, 864,
+                               731, 865,
+                               736, 868,
+                               738, 870,
+                               739, 871,
+                               740, 872,
+                               741, 873,
+                               749, 879,
+                               758, 882,
+                               774, 906,
+                               776, 908,
+                               779, 911,
+                               789, 921,
+                               790, 923,
+                               797, 930,
+                               809, 449,
+                               811, 953,
+                               817, 957,
+                               822, 960,
+                               827, 965,
+                               828, 966,
+                               833, 971,
+                               835, 973,
+                               836, 974,
+                               837, 975,
+                               839, 977,
+                               863, 993,
+                               875, 1002,
                                883, 1009,
                                884, 1010,
                                885, 1011,
@@ -18820,80 +18883,82 @@ abstract class ParserTable
                                894, 1020,
                                895, 1021,
                                896, 1022,
-                               915, 1035,
-                               918, 1038,
-                               920, 1040,
-                               921, 1041,
-                               935, 449,
-                               944, 449,
-                               946, 449,
-                               950, 1071,
-                               951, 1072,
-                               952, 1073,
+                               897, 1023,
+                               898, 1024,
+                               899, 1025,
+                               919, 1039,
+                               922, 1042,
+                               924, 1044,
+                               925, 1045,
+                               939, 449,
+                               948, 449,
+                               950, 449,
                                954, 1075,
                                955, 1076,
-                               957, 1078,
+                               956, 1077,
                                958, 1079,
-                               963, 1083,
-                               968, 1087,
-                               978, 542,
-                               993, 1108,
-                               1000, 1113,
-                               1042, 1145,
-                               1051, 449,
-                               1053, 449,
-                               1068, 1174,
-                               1074, 1179,
-                               1080, 1184,
-                               1090, 1193,
-                               1107, 1210,
-                               1110, 1212,
-                               1131, 1215,
-                               1158, 1235,
-                               1165, 1244,
-                               1168, 1248,
-                               1175, 1257,
+                               959, 1080,
+                               961, 1082,
+                               962, 1083,
+                               967, 1087,
+                               972, 1091,
+                               996, 1110,
+                               1003, 1115,
+                               1046, 1147,
+                               1055, 449,
+                               1057, 449,
+                               1072, 1176,
+                               1078, 1181,
+                               1084, 1186,
+                               1094, 1195,
+                               1109, 1210,
+                               1112, 1212,
+                               1133, 1215,
+                               1160, 1236,
+                               1167, 1245,
+                               1170, 1249,
                                1177, 1258,
-                               1180, 1260,
-                               1211, 1281,
-                               1226, 1292,
-                               1229, 1296,
-                               1236, 1305,
-                               1239, 1309,
-                               1242, 1313,
-                               1245, 1316,
+                               1179, 1259,
+                               1182, 1261,
+                               1211, 1282,
+                               1227, 1293,
+                               1230, 1297,
+                               1237, 1306,
+                               1240, 1310,
+                               1243, 1314,
                                1246, 1317,
-                               1249, 1320,
-                               1267, 1334,
-                               1283, 1344,
-                               1287, 1348,
-                               1290, 1352,
-                               1293, 1355,
-                               1294, 1356,
-                               1297, 1359,
-                               1307, 1366,
-                               1310, 1369,
-                               1311, 1370,
-                               1314, 1373,
-                               1318, 1376,
-                               1342, 1389,
-                               1346, 1394,
-                               1349, 1397,
-                               1350, 1398,
-                               1353, 1401,
-                               1357, 1404,
-                               1364, 1406,
-                               1367, 1409,
-                               1371, 1412,
-                               1390, 1427,
-                               1391, 1428,
-                               1392, 1429,
-                               1395, 1432,
-                               1399, 1435,
-                               1407, 1439,
-                               1426, 1449,
-                               1430, 1453,
-                               1450, 1462
+                               1247, 1318,
+                               1250, 1321,
+                               1268, 1335,
+                               1284, 1346,
+                               1288, 1350,
+                               1291, 1354,
+                               1294, 1357,
+                               1295, 1358,
+                               1298, 1361,
+                               1308, 1368,
+                               1311, 1371,
+                               1312, 1372,
+                               1315, 1375,
+                               1319, 1378,
+                               1344, 1392,
+                               1348, 1397,
+                               1351, 1400,
+                               1352, 1401,
+                               1355, 1404,
+                               1359, 1407,
+                               1366, 1409,
+                               1369, 1412,
+                               1373, 1415,
+                               1393, 1431,
+                               1394, 1432,
+                               1395, 1433,
+                               1398, 1436,
+                               1402, 1439,
+                               1410, 1443,
+                               1430, 1455,
+                               1434, 1459,
+                               1456, 1469
                        ],
                        [
                                -1, 11
@@ -18921,86 +18986,83 @@ abstract class ParserTable
                                90, 222
                        ],
                        [
-                               -1, 997,
-                               999, 1112,
-                               1009, 1117
+                               -1, 1000,
+                               1002, 1114,
+                               1012, 1119
                        ],
                        [
                                -1, -1
                        ],
                        [
                                -1, 758,
-                               1449, 1461
+                               1455, 1468
                        ],
                        [
                                -1, 759
                        ],
                        [
                                -1, 760,
-                               868, 994,
-                               1006, 1114,
-                               1007, 1115
+                               871, 997,
+                               1009, 1116,
+                               1010, 1117
                        ],
                        [
                                -1, 761
                        ],
                        [
                                -1, 762,
-                               1008, 1116,
-                               1012, 1120,
-                               1013, 1121,
-                               1014, 1122,
-                               1015, 1123,
-                               1016, 1124,
-                               1017, 1125,
-                               1018, 1126
+                               1011, 1118,
+                               1015, 1122,
+                               1016, 1123,
+                               1017, 1124,
+                               1018, 1125,
+                               1019, 1126,
+                               1020, 1127,
+                               1021, 1128
                        ],
                        [
                                -1, 763,
-                               1010, 1118,
-                               1011, 1119
+                               1013, 1120,
+                               1014, 1121
                        ],
                        [
                                -1, 764,
-                               870, 998,
-                               876, 1002,
-                               1019, 1127,
-                               1020, 1128,
-                               1021, 1129
+                               873, 1001,
+                               879, 1005,
+                               1022, 1129,
+                               1023, 1130,
+                               1024, 1131
                        ],
                        [
                                -1, 765
                        ],
                        [
                                -1, 766,
-                               747, 874
-                       ],
-                       [
-                               -1, 1329
+                               747, 877
                        ],
                        [
-                               -1, 613,
-                               594, 696,
-                               977, 1094,
-                               1088, 1189,
-                               1089, 1192,
-                               1095, 1200,
-                               1263, 1330,
-                               1382, 1421
+                               -1, 1330
                        ],
                        [
-                               -1, 845,
-                               835, 972,
-                               837, 974,
-                               844, 979,
-                               1098, 1203,
-                               1194, 1268
+                               -1, 614,
+                               595, 696,
+                               1092, 1191,
+                               1093, 1194,
+                               1096, 1199,
+                               1200, 1275,
+                               1264, 1331,
+                               1384, 1424
                        ],
                        [
-                               -1, 846
+                               -1, 848,
+                               838, 976,
+                               840, 978,
+                               847, 982,
+                               1100, 1203,
+                               1196, 1269
                        ],
                        [
-                               -1, 614
+                               -1, 849
                        ],
                        [
                                -1, 615
@@ -19021,25 +19083,28 @@ abstract class ParserTable
                                -1, 620
                        ],
                        [
+                               -1, 621
+                       ],
+                       [
                                -1, 705,
-                               601, 707,
-                               602, 709,
-                               604, 712,
-                               706, 838,
-                               708, 839,
-                               711, 840,
-                               716, 847,
-                               717, 848,
-                               841, 975,
-                               842, 976,
-                               850, 983,
-                               851, 984,
-                               967, 1086,
-                               1087, 1188,
-                               1099, 1204,
-                               1100, 1205,
-                               1201, 1275,
-                               1202, 1276
+                               602, 707,
+                               603, 709,
+                               605, 712,
+                               706, 841,
+                               708, 842,
+                               711, 843,
+                               716, 850,
+                               717, 851,
+                               844, 979,
+                               845, 980,
+                               853, 986,
+                               854, 987,
+                               971, 1090,
+                               1091, 1190,
+                               1101, 1204,
+                               1102, 1205,
+                               1201, 1276,
+                               1202, 1277
                        ],
                        [
                                -1, -1
@@ -19049,7 +19114,7 @@ abstract class ParserTable
                        ],
                        [
                                -1, 118,
-                               1179, 1259
+                               1181, 1260
                        ],
                        [
                                -1, 119
@@ -19144,29 +19209,29 @@ abstract class ParserTable
                                20, 90
                        ],
                        [
-                               -1, 562,
-                               498, 588,
-                               558, 660,
-                               585, 687
+                               -1, 563,
+                               498, 589,
+                               559, 660,
+                               586, 687
                        ],
                        [
-                               -1, 918
+                               -1, 922
                        ],
                        [
-                               -1, 794,
-                               688, 824,
-                               787, 920,
-                               808, 950,
-                               819, 957,
-                               825, 963,
-                               921, 1042,
-                               958, 1080
+                               -1, 797,
+                               688, 827,
+                               790, 924,
+                               811, 954,
+                               822, 961,
+                               828, 967,
+                               925, 1046,
+                               962, 1084
                        ],
                        [
-                               -1, 778
+                               -1, 779
                        ],
                        [
-                               -1, 556
+                               -1, 557
                        ],
                        [
                                -1, 733
@@ -19174,26 +19239,26 @@ abstract class ParserTable
                        [
                                -1, 192,
                                260, 397,
-                               639, 769,
-                               721, 854,
-                               726, 858,
-                               772, 901,
-                               782, 909,
-                               829, 966,
-                               1197, 1271,
-                               1209, 1279,
-                               1266, 1333,
-                               1274, 1339,
-                               1379, 1416,
-                               1447, 1460
+                               721, 857,
+                               726, 861,
+                               769, 902,
+                               783, 913,
+                               832, 970,
+                               905, 1030,
+                               1209, 1280,
+                               1267, 1334,
+                               1272, 1338,
+                               1341, 1389,
+                               1381, 1419,
+                               1451, 1466
                        ],
                        [
                                -1, 201
                        ],
                        [
                                -1, 537,
-                               476, 579,
-                               574, 678
+                               476, 580,
+                               575, 678
                        ],
                        [
                                -1, 71
index 9a807e6..8d69a52 100644 (file)
@@ -1578,8 +1578,8 @@ redef class AClosureDef
                _escapable = esc
 
                var sig = esc.closure.signature
-               if sig.arity != n_id.length then
-                       v.error(self, "Error: {sig.arity} automatic variable names expected, {n_id.length} found.")
+               if sig.arity != n_ids.length then
+                       v.error(self, "Error: {sig.arity} automatic variable names expected, {n_ids.length} found.")
                        return
                end
 
@@ -1590,8 +1590,8 @@ redef class AClosureDef
                v.base_variable_ctx = v.variable_ctx
                v.variable_ctx = v.variable_ctx.sub(self)
                variables = new Array[AutoVariable]
-               for i in [0..n_id.length[ do
-                       var va = new AutoVariable(n_id[i].to_symbol, self)
+               for i in [0..n_ids.length[ do
+                       var va = new AutoVariable(n_ids[i].to_symbol, self)
                        variables.add(va)
                        va.stype = sig[i]
                        v.variable_ctx.add(va)
index 27d0f88..a790261 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar
+               !bar
        do
                1.output
                bar #!alt1#
@@ -31,8 +31,8 @@ end
 fun work
 do
        var a = new A
-       a.foo with do #!alt11#
-       #alt11#a.foo with x do
+       a.foo !bar do #!alt11#
+       #alt11#a.foo !bar x do
                2.output
                #alt4#break
                #alt5#break 'x'
@@ -43,6 +43,7 @@ do
                3.output
        end
        #alt10# a.foo
+       #alt12# a.foo !baz do (-1).output
        5.output
 end
 
index dd12216..5517fa1 100644 (file)
@@ -16,7 +16,7 @@
 
 import kernel
 
-fun foo with k
+fun foo !k
 do
        ' '.output
        '<'.output
@@ -33,7 +33,7 @@ do
        0.output
        var i = 0
        while i < 3 do
-               foo with do
+               foo !k do
                        ' '.output
                        ' '.output
                        '<'.output
index 46f3d0f..028fbc7 100644 (file)
 import kernel
 
 fun foo
-       with x
+       !x
 do
        'F'.output
        0.output
-       bar with do
+       bar !y do
                'F'.output
                1.output
                x
@@ -33,7 +33,7 @@ do
 end
 
 fun bar
-       with y
+       !y
 do
        'B'.output
        0.output
@@ -44,10 +44,10 @@ end
 
 'M'.output
 0.output
-foo with do
+foo !x do
        'M'.output
        1.output
-       foo with do
+       foo !x do
                'M'.output
                2.output
                #alt1#break
index 567606b..2de769a 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar(i: Int)
+               !bar(i: Int)
        do
                1.output
                bar(2) #!alt1#
@@ -32,8 +32,8 @@ end
 fun work
 do
        var a = new A
-       a.foo with x do #!alt11#
-       #alt11#a.foo with do
+       a.foo !bar x do #!alt11#
+       #alt11#a.foo !bar do
                x.output
                #alt4#break
                #alt5#break 'x'
index bd731a7..80982b3 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo(i, j: Int)
-               with bar(k, l: Int, a: A)
+               !bar(k, l: Int, a: A)
        do
                i.output
                bar(i+1, j-1, self)
@@ -29,10 +29,10 @@ end
 
 var a = new A
 0.output
-a.foo(1,8) with x, y, b do #!alt2#
-#alt2#a.foo(1,8) with x, y do
+a.foo(1,8) !bar x, y, b do #!alt2#
+#alt2#a.foo(1,8) !bar x, y do
        x.output
-       b.foo(x+1, y-1) with z, t, c do
+       b.foo(x+1, y-1) !bar z, t, c do
                z.output
                #alt4#break
                #alt5#break 'x'
index 4d13fe8..2db8de7 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar: Int
+               !bar: Int
        do
                1.output
                bar.output #!alt1#
@@ -31,8 +31,8 @@ end
 fun work
 do
        var a = new A
-       a.foo with do #!alt11#
-       #alt11#a.foo with x do
+       a.foo !bar do #!alt11#
+       #alt11#a.foo !bar x do
                2.output
                #alt4#break
                #alt5#break 'x'
index 1cce7b4..7e4edaf 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo: Int
-               with bar: Int
+               !bar: Int
        do
                1.output
                var r = bar
@@ -30,7 +30,7 @@ end
 fun work: Int
 do
        var a = new A
-       var i = a.foo with do
+       var i = a.foo !bar do
                2.output
                #alt1#break
                #alt2#break 'x'
index 660971d..b7b6a7a 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo: U
-               with bar
+               !bar
        do
                return new U
        end
@@ -49,18 +49,18 @@ var w: W = new W
 
 var y: Object
 #alt1#var y: U
-y = a.foo with do 0.output
-y = a.foo with do break t
-y = a.foo with do break u
-y = a.foo with do break v
-y = a.foo with do break w
-y = a.foo with do
+y = a.foo !bar do 0.output
+y = a.foo !bar do break t
+y = a.foo !bar do break u
+y = a.foo !bar do break v
+y = a.foo !bar do break w
+y = a.foo !bar do
        break t
        break u
        break v
        break w
 end
-y = a.foo with do
+y = a.foo !bar do
        break u
        break v
        break w
index fde6f08..8718d19 100644 (file)
@@ -17,7 +17,7 @@
 import kernel
 
 fun repeat(x: Int)
-       with each(i: Int)
+       !each(i: Int)
 do
        var c = 0
        while c < x do
@@ -28,9 +28,9 @@ end
 
 fun work
 do
-       repeat(4) with i do
+       repeat(4) !each i do
                i.output
-               repeat(4) with j do
+               repeat(4) !each j do
                        if i == 1 and j == 1 then continue
                        if i == 2 and j == 2 then break
                        if i == 3 and j == 3 then return
index 9895978..83441b0 100644 (file)
@@ -18,14 +18,15 @@ import kernel
 
 class A
        fun foo(i: Int)
-               with bar
+               !bar
        do
                '['.output
                i.output
-               bar with do
+               bar !break do
                        '!'.output
                        i.output
                end
+               #alt4#bar !baz do abort
                ']'.output
                i.output
        end
@@ -35,9 +36,9 @@ fun start
 do
        var a = new A
        0.output
-       a.foo(1) with do 
+       a.foo(1) !bar do
                2.output
-               a.foo(3) with do
+               a.foo(3) !bar do
                        4.output
                        #alt1#break
                        #alt2#continue
index a013790..5b34790 100644 (file)
@@ -31,7 +31,7 @@ class A
        end
 
        fun foo(i: Int, j: Char)
-               with bar
+               !bar
        do
                if i >= 3 then
                        indent(i, j, '{')
@@ -41,9 +41,9 @@ class A
                end
 
                indent(i, j, '[')
-               foo(i+1, 'a') with do
-                       foo(i+1, 'b') with do
-                               foo(i+1, 'c') with do
+               foo(i+1, 'a') !bar do
+                       foo(i+1, 'b') !bar do
+                               foo(i+1, 'c') !bar do
                                        indent(i, j, '<')
                                        bar
                                        indent(i, j, '>')
@@ -58,9 +58,9 @@ fun start
 do
        var a = new A
        0.output
-       a.foo(0, 'A') with do 
-               a.foo(0, 'B') with do 
-                       a.foo(0, 'C') with do 
+       a.foo(0, 'A') !bar do
+               a.foo(0, 'B') !bar do
+                       a.foo(0, 'C') !bar do
                                1.output
                                #alt1# break
                                #alt2# return
index 6c0297a..ebcb0d7 100644 (file)
@@ -18,8 +18,8 @@ import kernel
 
 class A
        fun foo
-               with break bar #!alt12#
-               #alt12#with break bar: Int
+               break !bar #!alt12#
+               #alt12#break !bar: Int
        do
                1.output
                bar #!alt1#
@@ -32,8 +32,8 @@ end
 fun work
 do
        var a = new A
-       a.foo with do #!alt11#
-       #alt11#a.foo with x do
+       a.foo !bar do #!alt11#
+       #alt11#a.foo !bar x do
                2.output
                #alt4#break
                #alt5#break 'x'
index 0b34ab2..dc5bbbb 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar do
+               !bar do
                        #alt1# return
                        #alt2# return 1
                        #alt3# abort
@@ -35,7 +35,7 @@ end
 
 var a = new A
 0.output
-a.foo with do 2.output
+a.foo !bar do 2.output
 0.output
 a.foo
 0.output
index e420327..ce6f476 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar(i: Int) do
+               !bar(i: Int) do
                        #alt1# return
                        #alt2# return 1
                        #alt3# abort
@@ -36,7 +36,7 @@ end
 
 var a = new A
 0.output
-a.foo with j do j.output
+a.foo !bar j do j.output
 0.output
 a.foo
 0.output
index d45c397..9b413bc 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar: Int do
+               !bar: Int do
                        #alt1# return
                        #alt2# return 1
                        #alt3# abort
@@ -34,7 +34,7 @@ end
 
 var a = new A
 0.output
-a.foo with do continue 2
+a.foo !bar do continue 2
 0.output
 a.foo
 0.output
index 8f12ae9..0cb3d77 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class A
        fun foo
-               with bar(i: Int): Int do
+               !bar(i: Int): Int do
                        #alt1# return
                        #alt2# return -1
                        #alt3# abort
@@ -34,7 +34,7 @@ end
 
 var a = new A
 0.output
-a.foo with j do continue j
+a.foo !bar j do continue j
 0.output
 a.foo
 0.output
index 66750d4..fa2a8bd 100644 (file)
@@ -18,7 +18,7 @@ import kernel
 
 class Array[E]
        fun sort
-               with cmp(a, b: E): Int
+               !cmp(a, b: E): Int
        do
                var e1 = _e1
                var e2 = _e2
@@ -29,7 +29,7 @@ class Array[E]
        end
 
        fun iterate
-               with each(e: E)
+               !each(e: E)
        do
                each(_e1)
                each(_e2)
@@ -57,11 +57,11 @@ end
 
 class Map[K, V]
        fun get(k: K): V
-               with def: V do abort
+               !def: V do abort
        do
                if _k == k then return _v
                var n = _next
-               if n != null then return n.get(k) with do continue def
+               if n != null then return n.get(k) !def do continue def
                var v = def
                _next = new Map[K, V](k, v)
                return v
@@ -73,7 +73,7 @@ class Map[K, V]
                if n != null then return n.has_key(k) else return false
        end
        fun iterate
-               with each2(k: K, v: V)
+               !each2(k: K, v: V)
        do
                var n: nullable Map[K, V] = self
                while n != null do
@@ -128,12 +128,12 @@ class File
 end
 
 fun file_open(i: Int)
-       with work(f: File)
-       with break error(i: Int) do abort
+       !work(f: File)
+       break !error(i: Int) do abort
 do
        var f = new File(i)
        if not f.is_open then error(404)
-       work(f) with do f.close
+       work(f) !break do f.close
        f.close
 end
 
@@ -143,11 +143,11 @@ fun test_sort
 do
        var a = new Array[Char]('2', '1')
        a.output
-       a.sort with x, y do continue x <=> y
+       a.sort !cmp(x, y) do continue x <=> y
        a.output
-       a.sort with x, y do continue y <=> x
+       a.sort !cmp(x, y) do continue y <=> x
        a.output
-       a.iterate with i do i.output
+       a.iterate !each i do i.output
        '\n'.output
 end
 
@@ -169,7 +169,7 @@ do
        if m.has_key('V') then (-2).output
        'V'.output
        '='.output
-       i = m.get('V') with do continue '5'
+       i = m.get('V') !def do continue '5'
        i.output
        '\n'.output
 
@@ -178,7 +178,7 @@ do
        if not m.has_key('V') then (-3).output
        'V'.output
        '='.output
-       i = m.get('V') with do continue '6'
+       i = m.get('V') !def do continue '6'
        i.output
        '\n'.output
 
@@ -187,7 +187,7 @@ do
        if m.has_key('X') then (-4).output
        'X'.output
        '='.output
-       i = m.get('X') with do break '0'
+       i = m.get('X') !def do break '0'
        i.output
        '\n'.output
 
@@ -195,7 +195,7 @@ do
 
        if m.has_key('X') then (-5).output
 
-       m.iterate with k, v do
+       m.iterate !each2(k,v) do
                k.output
                '='.output
                v.output
@@ -207,12 +207,12 @@ end
 fun test_file(i: Int)
 do
        var f_escape: nullable File = null
-       file_open(i) with f do
+       file_open(i) !work(f) do
                'O'.output
                '?'.output
                f.is_open.output
                f_escape = f
-       with e do
+       !error(e) do
                'E'.output
                e.output
                break
index c0994db..f533838 100644 (file)
@@ -17,9 +17,9 @@
 import kernel
 
 fun a
-       with a1
-       with a2 #!alt1#
-#alt2# with a3
+       !a1
+       !a2 #!alt1#
+#alt2# !a3
 do
        a1
        a2 #!alt1#
@@ -27,23 +27,23 @@ do
 end
 
 fun b
-       with b1
-       with b2
+       !b1
+       !b2
 do
        b1
        b2
 end
 
 fun c
-       with c1
+       !c1
 do
        c1
 end
 
 fun d
-       with d1
-       with d2
-       with d3
+       !d1
+       !d2
+       !d3
 do
        d1
        d2
@@ -51,23 +51,26 @@ do
 end
 
 0.output
-a with do
-       b with do
+a !a1 do
+       b !b1 do
                1.output
-       with do #!alt3#
+       !b2 do #!alt3#
                2.output #!alt3#
-#alt4# with do
+#alt4# !b3 do
 #alt4#         20.output
        end
-with do
+!a2 do
        3.output
 end
 4.output
-c with do
-       d with do
+c !c1 do
+       d !d1 do
                5.output
-       with do
+       !d2 do
                6.output
-       with do 7.output
+       !d3 do 7.output
 end
+#alt5#a !a2 do
+#alt5#!a1 do
+#alt5#end
 8.output
index 64a513c..6be3ce3 100644 (file)
@@ -19,10 +19,10 @@ import base_closure2
 class B
 special A
        redef fun foo
-               with bar(i: Int) #!alt13# #!alt14# #!alt15#
-               #alt13# with bar
-               #alt14# with bar(b: Bool)
-               #alt15# with bar(i: Int): Int
+               !bar(i: Int) #!alt13# #!alt14# #!alt15#
+               #alt13# !bar
+               #alt14# !bar(b: Bool)
+               #alt15# !bar(i: Int): Int
        do
                10.output
                bar(20) #!alt1#
@@ -36,8 +36,8 @@ end
 fun work2
 do
        var a: A = new B
-       a.foo with x do #!alt11#
-       #alt11#a.foo with do
+       a.foo !bar x do #!alt11#
+       #alt11#a.foo !bar do
                x.output
                #alt4#break
                #alt5#break 'x'
index 20bc3f9..d21b309 100644 (file)
 import kernel
 
 fun foo
-       with bar
+       !bar
 do
-       bar with do 'X'.output
+       bar !break do 'X'.output
 end
 
 1.output
-foo with do
+foo !bar do
        2.output
-       foo with do
+       foo !bar do
                3.output
-               foo with do end label l3
+               foo !bar do end label l3
                #alt1#break label l2
                #alt2#break label l3
                #alt3#break label l4
@@ -41,4 +41,4 @@ foo with do
 end label l1
 6.output
 
-#alt7#foo with do end label l1
+#alt7#foo !bar do end label l1
index 75f09b3..de5d350 100644 (file)
 import kernel
 
 fun foo: Int
-       with bar: Int
+       !bar: Int
 do
-       var i = bar with do 'X'.output
+       var i = bar !break do 'X'.output
        return i * 10
 end
 
 1.output
-var i = foo with do
+var i = foo !bar do
        2.output
-       var j = foo with do
+       var j = foo !bar do
                3.output
-               foo with do
+               foo !bar do
                        continue 0
                end label l3
                #alt1#break label l2 10
@@ -47,6 +47,6 @@ end label l1
 i.output
 6.output
 
-#alt7#foo with do
+#alt7#foo !bar do
 #alt7# continue 0
 #alt7#end label l1
index faafed4..f7d244b 100644 (file)
 import kernel
 
 fun foo
-       with bar do end
-       with baz do end
+       !bar do end
+       !baz do end
 do
        bar
        baz
 end
 
 1.output
-foo with do
+foo !bar do
        2.output
-       foo with do
+       foo !bar do
                3.output
-               foo with do end label l3
+               foo !bar do end label l3
                #alt1#break label l2
                #alt2#break label l3
                #alt3#break label l4
@@ -37,14 +37,14 @@ foo with do
                #alt5#continue label l1
                break label l1
                4.output
-       with do
+       !baz do
                40.output
        end label l2#!alt6#
        #alt6#end label l1
        5.output
-with do
+!baz do
        50.output
 end label l1
 6.output
 
-#alt7#foo with do end label l1
+#alt7#foo !bar do end label l1
index 29ad676..8f06236 100644 (file)
@@ -17,7 +17,7 @@
 
 redef class Range[K]
        fun for_each(x: Int)
-               with each(i: K)
+               !each(i: K)
        do
                var c = first
                var s = after
@@ -34,9 +34,9 @@ if not args.is_empty then nb = args.first.to_i
 
 var cpt = 0
 var r = [0..nb[
-r.for_each(0) with ii1 do
-       r.for_each(1) with ii2 do
-               r.for_each(2) with ii3 do
+r.for_each(0) !each ii1 do
+       r.for_each(1) !each ii2 do
+               r.for_each(2) !each ii3 do
                        if ii1 == ii2 and ii2 == ii3 then cpt += 1
                end
        end
diff --git a/tests/sav/base_closure1_alt12.fail b/tests/sav/base_closure1_alt12.fail
new file mode 100644 (file)
index 0000000..d4bc414
--- /dev/null
@@ -0,0 +1,10 @@
+0
+1
+2
+3
+4
+1
+-1
+4
+5
+6
diff --git a/tests/sav/base_closure8_alt4.fail b/tests/sav/base_closure8_alt4.fail
new file mode 100644 (file)
index 0000000..6948f2d
--- /dev/null
@@ -0,0 +1,21 @@
+0
+[1
+2
+[3
+4
+5
+4
+5
+]3
+6
+2
+[3
+4
+5
+4
+5
+]3
+6
+]1
+7
+8
index 4f4a7c1..c489d55 100644 (file)
@@ -1 +1 @@
-alt/base_closure_break_alt12.nit:21,3--21: Syntax Error: A break block cannot have a return value.
+alt/base_closure_break_alt12.nit:21,3--17: Syntax Error: A break block cannot have a return value.
index 4d24d24..293e7a5 100644 (file)
@@ -1 +1 @@
-alt/base_closure_default3_alt5.nit:21,3--15: Control error: Reached end of block (a 'continue' with a value was expected).
+alt/base_closure_default3_alt5.nit:21,3--11: Control error: Reached end of block (a 'continue' with a value was expected).
index 45d92c2..75f8387 100644 (file)
@@ -1 +1 @@
-alt/base_closure_default4_alt5.nit:21,3--23: Control error: Reached end of block (a 'continue' with a value was expected).
+alt/base_closure_default4_alt5.nit:21,3--19: Control error: Reached end of block (a 'continue' with a value was expected).
diff --git a/tests/sav/base_closure_multi_alt5.fail b/tests/sav/base_closure_multi_alt5.fail
new file mode 100644 (file)
index 0000000..1000f90
--- /dev/null
@@ -0,0 +1,9 @@
+0
+1
+2
+3
+4
+5
+6
+7
+8
index f992dd7..3a7f3d6 100644 (file)
@@ -1,4 +1,4 @@
-fun foo with k
+fun foo !k
 do
        ' '.output
        '<'.output
@@ -16,7 +16,7 @@ do
        0.output
        var i = 0
        while i < 3 do
-               foo with do
+               foo !each do
                        ' '.output
                        ' '.output
                        '<'.output
index e374d5e..bc8371d 100644 (file)
 
 redef class Map[K, V]
        fun get(k: K): V
-               with default: V do abort
+               !def: V do abort
        do
                if has_key(k) then return self[k]
-               var d = default
+               var d = def
                self[k] = d
                return d
        end
@@ -31,7 +31,7 @@ h["bleu"] = "blue"
 print "B:"
 
 print h.has_key("bleu")
-var v = h.get("bleu") with do
+var v = h.get("bleu") !def do
        print "Error"
        abort
 end
@@ -40,7 +40,7 @@ print v
 print "R:"
 
 print h.has_key("rouge")
-v = h.get("rouge") with do continue "red"
+v = h.get("rouge") !def do continue "red"
 print v
 print h.has_key("rouge")
 v = h.get("rouge")
@@ -49,7 +49,7 @@ print v
 print "N:"
 
 print h.has_key("noir")
-v = h.get("noir") with do break "black"
+v = h.get("noir") !def do break "black"
 print v
 print h.has_key("noir")