parser: Add 'fun' and 'var'-as-attr keyword
[nit.git] / src / parser / lexer.nit
index bc2de48..3fea0b2 100644 (file)
@@ -173,9 +173,9 @@ redef class TKwmeth
        return 10
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(text: String, fname: String, line: Int, pos: Int)
     do
-        _text = once "meth"
+        _text = text
        _filename = fname
         _line = line
         _pos = pos
@@ -1536,7 +1536,8 @@ class Lexer
                                                return token
                                        end
                                        if accept_token == 11 then
-                                               var token = new TKwmeth.init_tk(_filename, start_line + 1, start_pos + 1)
+                                               var token_text = _text.substring(0, accept_length)
+                                               var token = new TKwmeth.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
                                                push_back(accept_length)
                                                _pos = accept_pos
                                                _line = accept_line
@@ -2301,7 +2302,9 @@ class Lexer
                                        [97, 97, 86] ,
                                        [98, 110, 74] ,
                                        [111, 111, 87] ,
-                                       [112, 122, 74] 
+                                       [112, 116, 74] ,
+                                       [117, 117, 88] ,
+                                       [118, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
@@ -2310,96 +2313,96 @@ class Lexer
                                [
                                        [48, 95, -29] ,
                                        [97, 101, 74] ,
-                                       [102, 102, 88] ,
+                                       [102, 102, 89] ,
                                        [103, 108, 74] ,
-                                       [109, 109, 89] ,
-                                       [110, 110, 90] ,
+                                       [109, 109, 90] ,
+                                       [110, 110, 91] ,
                                        [111, 114, 74] ,
-                                       [115, 115, 91] ,
+                                       [115, 115, 92] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 100, 74] ,
-                                       [101, 101, 92] ,
+                                       [101, 101, 93] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 93] ,
+                                       [101, 101, 94] ,
                                        [102, 110, 74] ,
-                                       [111, 111, 94] ,
+                                       [111, 111, 95] ,
                                        [112, 116, 74] ,
-                                       [117, 117, 95] ,
+                                       [117, 117, 96] ,
                                        [118, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 109, 74] ,
-                                       [110, 110, 96] ,
+                                       [110, 110, 97] ,
                                        [111, 113, 74] ,
-                                       [114, 114, 97] ,
+                                       [114, 114, 98] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 98] ,
+                                       [97, 97, 99] ,
                                        [98, 113, 74] ,
-                                       [114, 114, 99] ,
+                                       [114, 114, 100] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 100] ,
+                                       [101, 101, 101] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 101] ,
+                                       [101, 101, 102] ,
                                        [102, 111, 74] ,
-                                       [112, 112, 102] ,
+                                       [112, 112, 103] ,
                                        [113, 116, 74] ,
-                                       [117, 117, 103] ,
+                                       [117, 117, 104] ,
                                        [118, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 103, 74] ,
-                                       [104, 104, 104] ,
+                                       [104, 104, 105] ,
                                        [105, 113, 74] ,
-                                       [114, 114, 105] ,
+                                       [114, 114, 106] ,
                                        [115, 120, 74] ,
-                                       [121, 121, 106] ,
+                                       [121, 121, 107] ,
                                        [122, 122, 74] 
                                ] ,
                                [
                                        [48, 109, -39] ,
-                                       [110, 110, 107] ,
+                                       [110, 110, 108] ,
                                        [111, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 108] ,
+                                       [97, 97, 109] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 103, -43] ,
-                                       [104, 104, 109] ,
-                                       [105, 105, 110] ,
+                                       [104, 104, 110] ,
+                                       [105, 105, 111] ,
                                        [106, 113, 74] ,
-                                       [114, 114, 111] ,
+                                       [114, 114, 112] ,
                                        [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, 113] ,
+                                       [11, 12, 113] ,
+                                       [14, 33, 113] ,
+                                       [34, 34, 114] ,
+                                       [35, 91, 113] ,
+                                       [92, 92, 115] ,
+                                       [93, 122, 113] ,
+                                       [123, 123, 116] ,
+                                       [124, 255, 113] 
                                ] ,
                                nil_array ,
                                nil_array ,
@@ -2408,9 +2411,9 @@ class Lexer
                                ] ,
                                nil_array ,
                                [
-                                       [0, 9, 116] ,
-                                       [11, 12, 116] ,
-                                       [14, 255, 116] 
+                                       [0, 9, 117] ,
+                                       [11, 12, 117] ,
+                                       [14, 255, 117] 
                                ] ,
                                nil_array ,
                                [
@@ -2418,7 +2421,7 @@ class Lexer
                                ] ,
                                nil_array ,
                                [
-                                       [10, 10, 117] 
+                                       [10, 10, 118] 
                                ] ,
                                [
                                        [0, 255, -11] 
@@ -2427,7 +2430,7 @@ class Lexer
                                nil_array ,
                                nil_array ,
                                [
-                                       [46, 46, 118] 
+                                       [46, 46, 119] 
                                ] ,
                                [
                                        [48, 57, 60] 
@@ -2437,7 +2440,7 @@ class Lexer
                                ] ,
                                nil_array ,
                                [
-                                       [62, 62, 119] 
+                                       [62, 62, 120] 
                                ] ,
                                nil_array ,
                                nil_array ,
@@ -2454,10 +2457,10 @@ class Lexer
                                        [48, 122, -25] 
                                ] ,
                                [
-                                       [48, 57, 120] ,
-                                       [65, 90, 121] ,
-                                       [95, 95, 122] ,
-                                       [97, 122, 123] 
+                                       [48, 57, 121] ,
+                                       [65, 90, 122] ,
+                                       [95, 95, 123] ,
+                                       [97, 122, 124] 
                                ] ,
                                [
                                        [48, 122, -35] 
@@ -2473,42 +2476,42 @@ class Lexer
                                ] ,
                                [
                                        [48, 110, -32] ,
-                                       [111, 111, 124] ,
+                                       [111, 111, 125] ,
                                        [112, 114, 74] ,
-                                       [115, 115, 125] ,
+                                       [115, 115, 126] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 99, 74] ,
-                                       [100, 100, 126] ,
+                                       [100, 100, 127] ,
                                        [101, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 114, 74] ,
-                                       [115, 115, 127] ,
+                                       [115, 115, 128] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 115, 74] ,
-                                       [116, 116, 128] ,
+                                       [116, 116, 129] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 129] ,
+                                       [101, 101, 130] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 130] ,
+                                       [97, 97, 131] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 109, -39] ,
-                                       [110, 110, 131] ,
+                                       [110, 110, 132] ,
                                        [111, 122, 74] 
                                ] ,
                                [
@@ -2516,156 +2519,161 @@ class Lexer
                                ] ,
                                [
                                        [48, 114, -79] ,
-                                       [115, 115, 132] ,
+                                       [115, 115, 133] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 99, -78] ,
-                                       [100, 100, 133] ,
+                                       [100, 100, 134] ,
                                        [101, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 134] ,
+                                       [116, 116, 135] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 135] ,
+                                       [108, 108, 136] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 136] ,
+                                       [114, 114, 137] ,
                                        [115, 122, 74] 
                                ] ,
                                [
+                                       [48, 109, -39] ,
+                                       [110, 110, 138] ,
+                                       [111, 122, 74] 
+                               ] ,
+                               [
                                        [48, 122, -35] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 111, 74] ,
-                                       [112, 112, 137] ,
+                                       [112, 112, 139] ,
                                        [113, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 104, 74] ,
-                                       [105, 105, 138] ,
+                                       [105, 105, 140] ,
                                        [106, 115, 74] ,
-                                       [116, 116, 139] ,
+                                       [116, 116, 141] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 140] ,
+                                       [97, 97, 142] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 141] ,
+                                       [116, 116, 143] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 118, 74] ,
-                                       [119, 119, 142] ,
+                                       [119, 119, 144] ,
                                        [120, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 143] ,
+                                       [116, 116, 145] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 144] ,
+                                       [108, 108, 146] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 98, 74] ,
-                                       [99, 99, 145] ,
+                                       [99, 99, 147] ,
                                        [100, 122, 74] 
                                ] ,
                                [
                                        [48, 122, -35] 
                                ] ,
                                [
-                                       [48, 98, -98] ,
-                                       [99, 99, 146] ,
+                                       [48, 98, -99] ,
+                                       [99, 99, 148] ,
                                        [100, 122, 74] 
                                ] ,
                                [
-                                       [48, 104, -92] ,
-                                       [105, 105, 147] ,
+                                       [48, 104, -93] ,
+                                       [105, 105, 149] ,
                                        [106, 110, 74] ,
-                                       [111, 111, 148] ,
+                                       [111, 111, 150] ,
                                        [112, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 149] ,
+                                       [97, 97, 151] ,
                                        [98, 99, 74] ,
-                                       [100, 100, 150] ,
+                                       [100, 100, 152] ,
                                        [101, 115, 74] ,
-                                       [116, 116, 151] ,
+                                       [116, 116, 153] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 152] ,
+                                       [108, 108, 154] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 153] ,
+                                       [101, 101, 155] ,
                                        [102, 122, 74] 
                                ] ,
                                [
-                                       [48, 111, -91] ,
-                                       [112, 112, 154] ,
+                                       [48, 111, -92] ,
+                                       [112, 112, 156] ,
                                        [113, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 155] ,
+                                       [101, 101, 157] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 116, 74] ,
-                                       [117, 117, 156] ,
+                                       [117, 117, 158] ,
                                        [118, 122, 74] 
                                ] ,
                                [
-                                       [48, 111, -91] ,
-                                       [112, 112, 157] ,
+                                       [48, 111, -92] ,
+                                       [112, 112, 159] ,
                                        [113, 122, 74] 
                                ] ,
                                [
-                                       [48, 104, -92] ,
-                                       [105, 105, 158] ,
+                                       [48, 104, -93] ,
+                                       [105, 105, 160] ,
                                        [106, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 159] ,
+                                       [114, 114, 161] ,
                                        [115, 122, 74] 
                                ] ,
                                [
-                                       [48, 104, -92] ,
-                                       [105, 105, 160] ,
+                                       [48, 104, -93] ,
+                                       [105, 105, 162] ,
                                        [106, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 161] ,
+                                       [116, 116, 163] ,
                                        [117, 122, 74] 
                                ] ,
                                [
-                                       [48, 104, -92] ,
-                                       [105, 105, 162] ,
+                                       [48, 104, -93] ,
+                                       [105, 105, 164] ,
                                        [106, 122, 74] 
                                ] ,
                                [
@@ -2673,9 +2681,9 @@ class Lexer
                                ] ,
                                nil_array ,
                                [
-                                       [0, 9, 163] ,
-                                       [11, 12, 163] ,
-                                       [14, 255, 163] 
+                                       [0, 9, 165] ,
+                                       [11, 12, 165] ,
+                                       [14, 255, 165] 
                                ] ,
                                nil_array ,
                                [
@@ -2698,12 +2706,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 164] ,
+                                       [114, 114, 166] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 165] ,
+                                       [116, 116, 167] ,
                                        [117, 122, 74] 
                                ] ,
                                [
@@ -2711,32 +2719,32 @@ class Lexer
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 166] ,
+                                       [101, 101, 168] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 167] ,
+                                       [114, 114, 169] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 168] ,
+                                       [97, 97, 170] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 114, -79] ,
-                                       [115, 115, 169] ,
+                                       [115, 115, 171] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 170] ,
+                                       [116, 116, 172] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 171] ,
+                                       [101, 101, 173] ,
                                        [102, 122, 74] 
                                ] ,
                                [
@@ -2744,32 +2752,35 @@ class Lexer
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 172] ,
+                                       [101, 101, 174] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 114, -79] ,
-                                       [115, 115, 173] ,
+                                       [115, 115, 175] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 122, -35] 
                                ] ,
                                [
+                                       [48, 122, -35] 
+                               ] ,
+                               [
                                        [48, 110, -32] ,
-                                       [111, 111, 174] ,
+                                       [111, 111, 176] ,
                                        [112, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 175] ,
+                                       [116, 116, 177] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 176] ,
+                                       [101, 101, 178] ,
                                        [102, 113, 74] ,
-                                       [114, 114, 177] ,
+                                       [114, 114, 179] ,
                                        [115, 122, 74] 
                                ] ,
                                [
@@ -2777,7 +2788,7 @@ class Lexer
                                ] ,
                                [
                                        [48, 103, -43] ,
-                                       [104, 104, 178] ,
+                                       [104, 104, 180] ,
                                        [105, 122, 74] 
                                ] ,
                                [
@@ -2788,79 +2799,79 @@ class Lexer
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 179] ,
+                                       [108, 108, 181] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 180] ,
+                                       [101, 101, 182] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 106, 74] ,
-                                       [107, 107, 181] ,
+                                       [107, 107, 183] ,
                                        [108, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 117, 74] ,
-                                       [118, 118, 182] ,
+                                       [118, 118, 184] ,
                                        [119, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 183] ,
+                                       [116, 116, 185] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 99, -78] ,
-                                       [100, 100, 184] ,
+                                       [100, 100, 186] ,
                                        [101, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 185] ,
+                                       [101, 101, 187] ,
                                        [102, 122, 74] 
                                ] ,
                                [
-                                       [48, 116, -107] ,
-                                       [117, 117, 186] ,
+                                       [48, 116, -108] ,
+                                       [117, 117, 188] ,
                                        [118, 122, 74] 
                                ] ,
                                [
                                        [48, 101, -36] ,
-                                       [102, 102, 187] ,
+                                       [102, 102, 189] ,
                                        [103, 122, 74] 
                                ] ,
                                [
-                                       [48, 98, -98] ,
-                                       [99, 99, 188] ,
+                                       [48, 98, -99] ,
+                                       [99, 99, 190] ,
                                        [100, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 189] ,
+                                       [101, 101, 191] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 109, -39] ,
-                                       [110, 110, 190] ,
+                                       [110, 110, 192] ,
                                        [111, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 191] ,
+                                       [101, 101, 193] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 192] ,
+                                       [101, 101, 194] ,
                                        [102, 122, 74] 
                                ] ,
                                [
-                                       [48, 117, -149] ,
-                                       [118, 118, 193] ,
+                                       [48, 117, -151] ,
+                                       [118, 118, 195] ,
                                        [119, 122, 74] 
                                ] ,
                                [
@@ -2868,17 +2879,17 @@ class Lexer
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 194] ,
+                                       [108, 108, 196] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 103, -43] ,
-                                       [104, 104, 195] ,
+                                       [104, 104, 197] ,
                                        [105, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 196] ,
+                                       [116, 116, 198] ,
                                        [117, 122, 74] 
                                ] ,
                                [
@@ -2886,35 +2897,35 @@ class Lexer
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 197] ,
+                                       [116, 116, 199] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 198] ,
+                                       [114, 114, 200] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 199] ,
+                                       [114, 114, 201] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 122, -35] 
                                ] ,
                                [
-                                       [48, 106, -148] ,
-                                       [107, 107, 200] ,
+                                       [48, 106, -150] ,
+                                       [107, 107, 202] ,
                                        [108, 122, 74] 
                                ] ,
                                [
                                        [48, 114, -79] ,
-                                       [115, 115, 201] ,
+                                       [115, 115, 203] ,
                                        [116, 122, 74] 
                                ] ,
                                [
-                                       [48, 104, -92] ,
-                                       [105, 105, 202] ,
+                                       [48, 104, -93] ,
+                                       [105, 105, 204] ,
                                        [106, 122, 74] 
                                ] ,
                                [
@@ -2922,17 +2933,17 @@ class Lexer
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 203] ,
+                                       [114, 114, 205] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 204] ,
+                                       [101, 101, 206] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 205] ,
+                                       [114, 114, 207] ,
                                        [115, 122, 74] 
                                ] ,
                                [
@@ -2940,12 +2951,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 206] ,
+                                       [114, 114, 208] ,
                                        [115, 122, 74] 
                                ] ,
                                [
-                                       [48, 116, -107] ,
-                                       [117, 117, 207] ,
+                                       [48, 116, -108] ,
+                                       [117, 117, 209] ,
                                        [118, 122, 74] 
                                ] ,
                                [
@@ -2959,45 +2970,45 @@ class Lexer
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 208] ,
+                                       [97, 97, 210] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 209] ,
+                                       [97, 97, 211] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 210] ,
+                                       [101, 101, 212] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 211] ,
+                                       [97, 97, 213] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 101, -36] ,
-                                       [102, 102, 212] ,
+                                       [102, 102, 214] ,
                                        [103, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 213] ,
+                                       [114, 114, 215] ,
                                        [115, 122, 74] 
                                ] ,
                                [
                                        [48, 122, -35] 
                                ] ,
                                [
-                                       [48, 104, -92] ,
-                                       [105, 105, 214] ,
+                                       [48, 104, -93] ,
+                                       [105, 105, 216] ,
                                        [106, 122, 74] 
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 215] ,
+                                       [114, 114, 217] ,
                                        [115, 122, 74] 
                                ] ,
                                [
@@ -3011,12 +3022,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 216] ,
+                                       [101, 101, 218] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 217] ,
+                                       [101, 101, 219] ,
                                        [102, 122, 74] 
                                ] ,
                                [
@@ -3024,7 +3035,7 @@ class Lexer
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 218] ,
+                                       [97, 97, 220] ,
                                        [98, 122, 74] 
                                ] ,
                                [
@@ -3032,12 +3043,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 219] ,
+                                       [97, 97, 221] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 220] ,
+                                       [116, 116, 222] ,
                                        [117, 122, 74] 
                                ] ,
                                [
@@ -3048,12 +3059,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 109, -39] ,
-                                       [110, 110, 221] ,
+                                       [110, 110, 223] ,
                                        [111, 122, 74] 
                                ] ,
                                [
                                        [48, 109, -39] ,
-                                       [110, 110, 222] ,
+                                       [110, 110, 224] ,
                                        [111, 122, 74] 
                                ] ,
                                [
@@ -3061,40 +3072,40 @@ class Lexer
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 223] ,
+                                       [116, 116, 225] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 101, -36] ,
-                                       [102, 102, 224] ,
+                                       [102, 102, 226] ,
                                        [103, 109, 74] ,
-                                       [110, 110, 225] ,
+                                       [110, 110, 227] ,
                                        [111, 122, 74] 
                                ] ,
                                [
                                        [48, 99, -78] ,
-                                       [100, 100, 226] ,
+                                       [100, 100, 228] ,
                                        [101, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
                                        [97, 102, 74] ,
-                                       [103, 103, 227] ,
+                                       [103, 103, 229] ,
                                        [104, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 228] ,
+                                       [116, 116, 230] ,
                                        [117, 122, 74] 
                                ] ,
                                [
-                                       [48, 98, -98] ,
-                                       [99, 99, 229] ,
+                                       [48, 98, -99] ,
+                                       [99, 99, 231] ,
                                        [100, 122, 74] 
                                ] ,
                                [
                                        [48, 97, -29] ,
-                                       [98, 98, 230] ,
+                                       [98, 98, 232] ,
                                        [99, 122, 74] 
                                ] ,
                                [
@@ -3102,12 +3113,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 109, -39] ,
-                                       [110, 110, 231] ,
+                                       [110, 110, 233] ,
                                        [111, 122, 74] 
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 232] ,
+                                       [97, 97, 234] ,
                                        [98, 122, 74] 
                                ] ,
                                [
@@ -3115,7 +3126,7 @@ class Lexer
                                ] ,
                                [
                                        [48, 113, -30] ,
-                                       [114, 114, 233] ,
+                                       [114, 114, 235] ,
                                        [115, 122, 74] 
                                ] ,
                                [
@@ -3123,20 +3134,20 @@ class Lexer
                                ] ,
                                [
                                        [48, 97, -29] ,
-                                       [98, 98, 234] ,
+                                       [98, 98, 236] ,
                                        [99, 122, 74] 
                                ] ,
                                [
-                                       [48, 98, -98] ,
-                                       [99, 99, 235] ,
+                                       [48, 98, -99] ,
+                                       [99, 99, 237] ,
                                        [100, 122, 74] 
                                ] ,
                                [
                                        [48, 122, -35] 
                                ] ,
                                [
-                                       [48, 116, -107] ,
-                                       [117, 117, 236] ,
+                                       [48, 116, -108] ,
+                                       [117, 117, 238] ,
                                        [118, 122, 74] 
                                ] ,
                                [
@@ -3147,7 +3158,7 @@ class Lexer
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 237] ,
+                                       [97, 97, 239] ,
                                        [98, 122, 74] 
                                ] ,
                                [
@@ -3155,27 +3166,27 @@ class Lexer
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 238] ,
+                                       [101, 101, 240] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 239] ,
+                                       [101, 101, 241] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 240] ,
+                                       [101, 101, 242] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 241] ,
+                                       [116, 116, 243] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 242] ,
+                                       [108, 108, 244] ,
                                        [109, 122, 74] 
                                ] ,
                                [
@@ -3183,32 +3194,32 @@ class Lexer
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 243] ,
+                                       [108, 108, 245] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 114, -79] ,
-                                       [115, 115, 244] ,
+                                       [115, 115, 246] ,
                                        [116, 122, 74] 
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 245] ,
+                                       [108, 108, 247] ,
                                        [109, 122, 74] 
                                ] ,
                                [
                                        [48, 115, -80] ,
-                                       [116, 116, 246] ,
+                                       [116, 116, 248] ,
                                        [117, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 247] ,
+                                       [101, 101, 249] ,
                                        [102, 122, 74] 
                                ] ,
                                [
-                                       [48, 98, -98] ,
-                                       [99, 99, 248] ,
+                                       [48, 98, -99] ,
+                                       [99, 99, 250] ,
                                        [100, 122, 74] 
                                ] ,
                                [
@@ -3222,12 +3233,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 249] ,
+                                       [101, 101, 251] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 250] ,
+                                       [101, 101, 252] ,
                                        [102, 122, 74] 
                                ] ,
                                [
@@ -3235,12 +3246,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 95, -29] ,
-                                       [97, 97, 251] ,
+                                       [97, 97, 253] ,
                                        [98, 122, 74] 
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 252] ,
+                                       [101, 101, 254] ,
                                        [102, 122, 74] 
                                ] ,
                                [
@@ -3251,12 +3262,12 @@ class Lexer
                                ] ,
                                [
                                        [48, 100, -37] ,
-                                       [101, 101, 253] ,
+                                       [101, 101, 255] ,
                                        [102, 122, 74] 
                                ] ,
                                [
                                        [48, 99, -78] ,
-                                       [100, 100, 254] ,
+                                       [100, 100, 256] ,
                                        [101, 122, 74] 
                                ] ,
                                [
@@ -3264,7 +3275,7 @@ class Lexer
                                ] ,
                                [
                                        [48, 107, -31] ,
-                                       [108, 108, 255] ,
+                                       [108, 108, 257] ,
                                        [109, 122, 74] 
                                ] ,
                                [
@@ -3292,7 +3303,7 @@ class Lexer
        private meth build_accept_table do
                _accept_table = once [
                        [
-                               -1 , 0 , 1 , 1 , 0 , -1 , -1 , -1 , 67 , -1 , 50 , 51 , 65 , 63 , 54 , 64 , 62 , 66 , 78 , 55 , 70 , 57 , 72 , 75 , 52 , 53 , -1 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , -1 , 1 , 69 , -1 , 81 , -1 , 82 , -1 , 2 , 2 , -1 , 80 , 58 , 59 , 61 , 79 , -1 , 56 , 71 , 68 , 73 , 75 , 75 , 75 , 75 , 77 , 76 , 76 , 76 , 76 , 76 , 76 , 48 , 76 , 76 , 76 , 76 , 17 , 76 , 76 , 76 , 76 , 76 , 26 , 76 , 31 , 16 , 76 , 76 , 76 , 76 , 76 , 33 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , -1 , 84 , -1 , 83 , -1 , 2 , 60 , 74 , 77 , 77 , 77 , 77 , 76 , 76 , 32 , 76 , 76 , 76 , 76 , 76 , 76 , 10 , 76 , 76 , 30 , 76 , 76 , 76 , 41 , 76 , 40 , 34 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 20 , 76 , 76 , 76 , -1 , 76 , 76 , 76 , 13 , 76 , 76 , 76 , 28 , 76 , 76 , 76 , 14 , 76 , 76 , 11 , 47 , 42 , 76 , 76 , 76 , 76 , 76 , 76 , 44 , 76 , 76 , 27 , 45 , 12 , 76 , 76 , 49 , 76 , 38 , 76 , 76 , 37 , 5 , 76 , 76 , 46 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 15 , 76 , 76 , 43 , 76 , 29 , 76 , 76 , 39 , 76 , 22 , 4 , 76 , 21 , 76 , 76 , 76 , 76 , 76 , 35 , 76 , 76 , 76 , 76 , 76 , 76 , 25 , 3 , 24 , 76 , 76 , 9 , 76 , 76 , 6 , 36 , 76 , 76 , 18 , 76 , 19 , 7 , 23 , 8  
+                               -1 , 0 , 1 , 1 , 0 , -1 , -1 , -1 , 67 , -1 , 50 , 51 , 65 , 63 , 54 , 64 , 62 , 66 , 78 , 55 , 70 , 57 , 72 , 75 , 52 , 53 , -1 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , -1 , 1 , 69 , -1 , 81 , -1 , 82 , -1 , 2 , 2 , -1 , 80 , 58 , 59 , 61 , 79 , -1 , 56 , 71 , 68 , 73 , 75 , 75 , 75 , 75 , 77 , 76 , 76 , 76 , 76 , 76 , 76 , 48 , 76 , 76 , 76 , 76 , 17 , 76 , 76 , 76 , 76 , 76 , 76 , 26 , 76 , 31 , 16 , 76 , 76 , 76 , 76 , 76 , 33 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , -1 , 84 , -1 , 83 , -1 , 2 , 60 , 74 , 77 , 77 , 77 , 77 , 76 , 76 , 32 , 76 , 76 , 76 , 76 , 76 , 76 , 10 , 76 , 76 , 30 , 11 , 76 , 76 , 76 , 41 , 76 , 40 , 34 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 20 , 76 , 76 , 76 , -1 , 76 , 76 , 76 , 13 , 76 , 76 , 76 , 28 , 76 , 76 , 76 , 14 , 76 , 76 , 11 , 47 , 42 , 76 , 76 , 76 , 76 , 76 , 76 , 44 , 76 , 76 , 27 , 45 , 12 , 76 , 76 , 49 , 76 , 38 , 76 , 76 , 37 , 5 , 76 , 76 , 46 , 76 , 76 , 76 , 76 , 76 , 76 , 76 , 15 , 76 , 76 , 43 , 76 , 29 , 76 , 76 , 39 , 76 , 22 , 4 , 76 , 21 , 76 , 76 , 76 , 76 , 76 , 35 , 76 , 76 , 76 , 76 , 76 , 76 , 25 , 3 , 24 , 76 , 76 , 9 , 76 , 76 , 6 , 36 , 76 , 76 , 18 , 76 , 19 , 7 , 23 , 8  
 
                        ] 
                ]