parser: regenerate with safe call `x?.foo`
[nit.git] / src / parser / lexer.nit
index c746092..efad425 100644 (file)
 # Lexer and its tokens.
 # This file was generated by SableCC (http://www.sablecc.org/).
-package lexer
+module lexer is generated, no_warning("missing-doc")
 
-import parser_nodes
+intrude import parser_nodes
+intrude import lexer_work
+private import tables
 
-redef class Token
-    readable writable attr _text: String 
-    readable attr _filename: String 
-    readable attr _line: Int 
-    readable attr _pos: Int 
-    
-    meth parser_index: Int is abstract
+redef class TEol
+    redef fun parser_index: Int
+    do
+       return 0
+    end
 
-    redef meth to_s: String do
-        return "'{_text}'"
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
-redef class TEol
-    redef meth parser_index: Int
+redef class TComment
+    redef fun parser_index: Int
     do
-       return 0
+       return 1
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TComment
-    redef meth parser_index: Int
+redef class TKwpackage
+    redef fun parser_index: Int
     do
-       return 1
+       return 2
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwpackage
-    redef meth parser_index: Int
+redef class TKwmodule
+    redef fun parser_index: Int
     do
-       return 2
+       return 3
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "package"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwimport
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 3
+       return 4
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "import"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwclass
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 4
+       return 5
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "class"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwabstract
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 5
+       return 6
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "abstract"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwinterface
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 6
+       return 7
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "interface"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwuniversal
-    redef meth parser_index: Int
+redef class TKwenum
+    redef fun parser_index: Int
     do
-       return 7
+       return 8
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "universal"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwspecial
-    redef meth parser_index: Int
+redef class TKwsubset
+    redef fun parser_index: Int
     do
-       return 8
+       return 9
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "special"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwend
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 9
+       return 10
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "end"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwmeth
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 10
+       return 11
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "meth"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwtype
-    redef meth parser_index: Int
-    do
-       return 11
-    end
-
-    init init_tk(fname: String, line: Int, pos: Int)
-    do
-        _text = once "type"
-       _filename = fname
-        _line = line
-        _pos = pos
-    end
-end
-
-redef class TKwattr
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 12
+       return 12
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "attr"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwinit
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 13
+       return 13
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "init"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwredef
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 14
+       return 14
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "redef"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwis
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 15
+       return 15
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "is"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwdo
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 16
+       return 16
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "do"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwreadable
-    redef meth parser_index: Int
+redef class TKwvar
+    redef fun parser_index: Int
     do
-       return 17
+       return 17
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "readable"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwwritable
-    redef meth parser_index: Int
+redef class TKwextern
+    redef fun parser_index: Int
     do
-       return 18
+       return 18
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "writable"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwvar
-    redef meth parser_index: Int
+redef class TKwpublic
+    redef fun parser_index: Int
     do
-       return 19
+       return 19
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "var"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwintern
-    redef meth parser_index: Int
+redef class TKwprotected
+    redef fun parser_index: Int
     do
-       return 20
+       return 20
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "intern"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwextern
-    redef meth parser_index: Int
+redef class TKwprivate
+    redef fun parser_index: Int
     do
-       return 21
+       return 21
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "extern"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwprotected
-    redef meth parser_index: Int
+redef class TKwintrude
+    redef fun parser_index: Int
     do
-       return 22
+       return 22
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "protected"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwprivate
-    redef meth parser_index: Int
+redef class TKwif
+    redef fun parser_index: Int
     do
-       return 23
+       return 23
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "private"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwintrude
-    redef meth parser_index: Int
+redef class TKwthen
+    redef fun parser_index: Int
     do
-       return 24
+       return 24
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "intrude"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwif
-    redef meth parser_index: Int
+redef class TKwelse
+    redef fun parser_index: Int
     do
-       return 25
+       return 25
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "if"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwthen
-    redef meth parser_index: Int
+redef class TKwwhile
+    redef fun parser_index: Int
     do
-       return 26
+       return 26
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "then"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwelse
-    redef meth parser_index: Int
+redef class TKwloop
+    redef fun parser_index: Int
     do
-       return 27
+       return 27
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "else"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwwhile
-    redef meth parser_index: Int
+redef class TKwfor
+    redef fun parser_index: Int
     do
-       return 28
+       return 28
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "while"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwfor
-    redef meth parser_index: Int
+redef class TKwin
+    redef fun parser_index: Int
     do
-       return 29
+       return 29
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "for"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwin
-    redef meth parser_index: Int
+redef class TKwand
+    redef fun parser_index: Int
     do
-       return 30
+       return 30
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "in"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwand
-    redef meth parser_index: Int
+redef class TKwor
+    redef fun parser_index: Int
     do
-       return 31
+       return 31
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "and"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwor
-    redef meth parser_index: Int
+redef class TKwnot
+    redef fun parser_index: Int
     do
-       return 32
+       return 32
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "or"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TKwnot
-    redef meth parser_index: Int
+redef class TKwimplies
+    redef fun parser_index: Int
     do
-       return 33
+       return 33
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "not"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwreturn
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 34
+       return 34
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "return"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwcontinue
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 35
+       return 35
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "continue"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwbreak
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 36
+       return 36
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "break"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwabort
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 37
+       return 37
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "abort"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwassert
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 38
+       return 38
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "assert"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwnew
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 39
+       return 39
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "new"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwisa
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 40
+       return 40
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "isa"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwonce
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 41
+       return 41
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "once"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwsuper
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 42
+       return 42
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "super"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwself
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 43
+       return 43
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "self"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwtrue
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 44
+       return 44
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "true"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwfalse
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 45
+       return 45
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "false"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwnull
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 46
+       return 46
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "null"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TKwas
-    redef meth parser_index: Int
+    redef fun parser_index: Int
+    do
+       return 47
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TKwnullable
+    redef fun parser_index: Int
     do
-       return 47
+       return 48
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "as"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
+    end
+end
+
+redef class TKwisset
+    redef fun parser_index: Int
+    do
+       return 49
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TKwlabel
+    redef fun parser_index: Int
+    do
+       return 50
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TKwwith
+    redef fun parser_index: Int
+    do
+       return 51
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TKwdebug
+    redef fun parser_index: Int
+    do
+       return 52
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TKwyield
+    redef fun parser_index: Int
+    do
+       return 53
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TKwcatch
+    redef fun parser_index: Int
+    do
+       return 54
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
 redef class TOpar
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 48
+       return 55
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "("
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TCpar
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 49
+       return 56
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once ")"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TObra
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 50
+       return 57
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "["
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TCbra
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 51
+       return 58
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "]"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TComma
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 52
+       return 59
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once ","
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TColumn
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 53
+       return 60
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once ":"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TQuad
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 54
+       return 61
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "::"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TAssign
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 55
+       return 62
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TPluseq
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 56
+       return 63
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "+="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TMinuseq
-    redef meth parser_index: Int
+    redef fun parser_index: Int
+    do
+       return 64
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TStareq
+    redef fun parser_index: Int
     do
-       return 57
+       return 65
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "-="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
+    end
+end
+
+redef class TSlasheq
+    redef fun parser_index: Int
+    do
+       return 66
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TPercenteq
+    redef fun parser_index: Int
+    do
+       return 67
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TStarstareq
+    redef fun parser_index: Int
+    do
+       return 68
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TPipeeq
+    redef fun parser_index: Int
+    do
+       return 69
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TCareteq
+    redef fun parser_index: Int
+    do
+       return 70
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TAmpeq
+    redef fun parser_index: Int
+    do
+       return 71
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TLleq
+    redef fun parser_index: Int
+    do
+       return 72
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TGgeq
+    redef fun parser_index: Int
+    do
+       return 73
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
 redef class TDotdotdot
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 58
+       return 74
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "..."
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TDotdot
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 59
+       return 75
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once ".."
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TDot
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 60
+       return 76
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "."
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TPlus
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 61
+       return 77
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "+"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TMinus
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 62
+       return 78
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "-"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TStar
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 63
+       return 79
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "*"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
+    end
+end
+
+redef class TStarstar
+    redef fun parser_index: Int
+    do
+       return 80
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
 redef class TSlash
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 64
+       return 81
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "/"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TPercent
-    redef meth parser_index: Int
+    redef fun parser_index: Int
+    do
+       return 82
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TPipe
+    redef fun parser_index: Int
+    do
+       return 83
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TCaret
+    redef fun parser_index: Int
     do
-       return 65
+       return 84
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "%"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
+    end
+end
+
+redef class TAmp
+    redef fun parser_index: Int
+    do
+       return 85
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TTilde
+    redef fun parser_index: Int
+    do
+       return 86
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
 redef class TEq
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 66
+       return 87
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "=="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TNe
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 67
+       return 88
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "!="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TLt
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 68
+       return 89
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "<"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TLe
-    redef meth parser_index: Int
+    redef fun parser_index: Int
+    do
+       return 90
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
+
+redef class TLl
+    redef fun parser_index: Int
     do
-       return 69
+       return 91
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "<="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TGt
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 70
+       return 92
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once ">"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
 redef class TGe
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 71
+       return 93
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once ">="
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
+    end
+end
+
+redef class TGg
+    redef fun parser_index: Int
+    do
+       return 94
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
 redef class TStarship
-    redef meth parser_index: Int
+    redef fun parser_index: Int
     do
-       return 72
+       return 95
     end
 
-    init init_tk(fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = once "<=>"
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TClassid
-    redef meth parser_index: Int
+redef class TBang
+    redef fun parser_index: Int
     do
-       return 73
+       return 96
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TId
-    redef meth parser_index: Int
+redef class TQuest
+    redef fun parser_index: Int
     do
-       return 74
+       return 97
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TAttrid
-    redef meth parser_index: Int
+redef class TAt
+    redef fun parser_index: Int
     do
-       return 75
+       return 98
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TNumber
-    redef meth parser_index: Int
+redef class TSemi
+    redef fun parser_index: Int
     do
-       return 76
+       return 99
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TFloat
-    redef meth parser_index: Int
+redef class TClassid
+    redef fun parser_index: Int
     do
-       return 77
+       return 100
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TChar
-    redef meth parser_index: Int
+redef class TId
+    redef fun parser_index: Int
     do
-       return 78
+       return 101
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TString
-    redef meth parser_index: Int
+redef class TAttrid
+    redef fun parser_index: Int
     do
-       return 79
+       return 102
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TStartString
-    redef meth parser_index: Int
+redef class TInteger
+    redef fun parser_index: Int
     do
-       return 80
+       return 103
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TMidString
-    redef meth parser_index: Int
+redef class TFloat
+    redef fun parser_index: Int
     do
-       return 81
+       return 104
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class TEndString
-    redef meth parser_index: Int
+redef class TString
+    redef fun parser_index: Int
     do
-       return 82
+       return 105
     end
 
-    init init_tk(text: String, fname: String, line: Int, pos: Int)
+    init init_tk(loc: Location)
     do
-        _text = text
-       _filename = fname
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
+redef class TStartString
+    redef fun parser_index: Int
+    do
+       return 106
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-redef class EOF 
-    redef meth parser_index: Int
+redef class TMidString
+    redef fun parser_index: Int
     do
-       return 83
+       return 107
     end
-    
-    init(fname: String, line: Int, pos: Int)
+
+    init init_tk(loc: Location)
     do
-       _filename = fname
-        _text = ""
-        _line = line
-        _pos = pos
+               _location = loc
     end
 end
 
-redef class PError
-    readable writable attr _message: String 
-    
-    init init_error(fname: String, line: Int, pos: Int, message: String)
+redef class TEndString
+    redef fun parser_index: Int
     do
-        init(fname, line, pos)
-       _message = message
+       return 108
+    end
+
+    init init_tk(loc: Location)
+    do
+               _location = loc
     end
 end
 
+redef class TChar
+    redef fun parser_index: Int
+    do
+       return 109
+    end
 
-# The lexer extract NIT tokens from an input stream.
-# It is better user with the Parser
-class Lexer
-       # Last peeked token
-       attr _token: Token
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-       # Lexer current state
-       attr _state: Int = 0
+redef class TBadString
+    redef fun parser_index: Int
+    do
+       return 110
+    end
 
-       # Name of the stream (as given to tokens)
-       readable attr _filename: String 
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-       # Input stream where character are read
-       attr _stream: IStream
+redef class TBadTString
+    redef fun parser_index: Int
+    do
+       return 111
+    end
 
-       # Pushback buffer to store unread character
-       attr _stream_buf: String
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-       # Number of character stored in the pushback buffer
-       attr _stream_pos: Int
+redef class TBadChar
+    redef fun parser_index: Int
+    do
+       return 112
+    end
 
-       # Current line number in the input stream
-       attr _line: Int = 0
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-       # Current column in the input stream
-       attr _pos: Int = 0
+redef class TExternCodeSegment
+    redef fun parser_index: Int
+    do
+       return 113
+    end
 
-       # Was the last character a cariage-return?
-       attr _cr: Bool = false
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-       # If the end of stream?
-       attr _eof: Bool = false
+redef class TBadExtern
+    redef fun parser_index: Int
+    do
+       return 114
+    end
 
-       # Current working text read from the input stream
-       attr _text: String
+    init init_tk(loc: Location)
+    do
+               _location = loc
+    end
+end
 
-       # Constante state values
-       private meth state_initial: Int do return 0 end
 
-       # Create a new lexer for a stream (and a name)
-       init(stream: IStream, fname: String)
-       do
-               _filename = fname
-               _text = new String
-               _stream = stream
-               _stream_pos = -1
-               _stream_buf = new String
-               build_goto_table
-               build_accept_table
-       end
+redef class EOF
+    redef fun parser_index: Int
+    do
+       return 115
+    end
+end
 
-       # Give the next token (but do not consume it)
-       meth peek: Token
+redef class Lexer
+       redef fun make_token(accept_token, location)
        do
-               while _token == null do
-                       _token = get_token
+               if accept_token == 1 then
+                       return new TEol.init_tk(location)
                end
-               return _token
-       end
-
-       # Give and consume the next token
-       meth next: Token
-       do
-               var result = _token
-               while result == null do
-                       result = get_token
+               if accept_token == 2 then
+                       return new TComment.init_tk(location)
                end
-               _token = null
-               return result
-       end
-
-       # Get a token, or null if it is discarded
-       private meth get_token: Token
-       do
-               var dfa_state = 0
-
-               var start_pos = _pos
-               var start_line = _line
-
-               var accept_state = -1
-               var accept_token = -1
-               var accept_length = -1
-               var accept_pos = -1
-               var accept_line = -1
-
-               var goto_table = _goto_table[_state]
-               var accept = _accept_table[_state]
-               _text.clear
-
-               while true do
-                       var c = get_char
-
-                       if c != -1 then
-                               if c == 10 then
-                                       if _cr then
-                                               _cr = false
-                                       else
-                                               _line = _line + 1
-                                               _pos = 0
-                                       end
-                               else if c == 13 then
-                                       _line = _line + 1
-                                       _pos = 0
-                                       _cr = true
-                               else
-                                       _pos = _pos + 1
-                                       _cr = false
-                               end
-
-                               _text.add(c.ascii)
-
-                               var first_loop = true # aka until
-                               while dfa_state < -1 or first_loop do
-                                       var old_state = dfa_state
-                                       if dfa_state < -1 then
-                                               old_state = -2 - dfa_state
-                                       end
-
-                                       dfa_state = -1
-
-                                       var tmp1 = goto_table[old_state]
-                                       var low = 0
-                                       var high = tmp1.length - 1
-
-                                       while low <= high do
-                                               var middle = (low + high) / 2
-                                               var tmp2 = tmp1[middle]
-
-                                               if c < tmp2[0] then
-                                                       high = middle - 1
-                                               else if c > tmp2[1] then
-                                                       low = middle + 1
-                                               else
-                                                       dfa_state = tmp2[2]
-                                                       low = high + 1 # aka break
-                                               end
-                                       end
-                                       first_loop = false # aka until
-                               end
-                       else
-                               dfa_state = -1
-                       end
-
-                       if dfa_state >= 0 then
-                               if accept[dfa_state] != -1 then
-                                       accept_state = dfa_state
-                                       accept_token = accept[dfa_state]
-                                       accept_length = _text.length
-                                       accept_pos = _pos
-                                       accept_line = _line
-                               end
-                       else
-                               if accept_state != -1 then
-                                       if accept_token == 0 then
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return null
-                                       end
-                                       if accept_token == 1 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TEol.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 2 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TComment.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 3 then
-                                               var token = new TKwpackage.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 4 then
-                                               var token = new TKwimport.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 5 then
-                                               var token = new TKwclass.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 6 then
-                                               var token = new TKwabstract.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 7 then
-                                               var token = new TKwinterface.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 8 then
-                                               var token = new TKwuniversal.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 9 then
-                                               var token = new TKwspecial.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 10 then
-                                               var token = new TKwend.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 11 then
-                                               var token = new TKwmeth.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 12 then
-                                               var token = new TKwtype.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 13 then
-                                               var token = new TKwattr.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 14 then
-                                               var token = new TKwinit.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 15 then
-                                               var token = new TKwredef.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 16 then
-                                               var token = new TKwis.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 17 then
-                                               var token = new TKwdo.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 18 then
-                                               var token = new TKwreadable.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 19 then
-                                               var token = new TKwwritable.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 20 then
-                                               var token = new TKwvar.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 21 then
-                                               var token = new TKwintern.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 22 then
-                                               var token = new TKwextern.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 23 then
-                                               var token = new TKwprotected.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 24 then
-                                               var token = new TKwprivate.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 25 then
-                                               var token = new TKwintrude.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 26 then
-                                               var token = new TKwif.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 27 then
-                                               var token = new TKwthen.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 28 then
-                                               var token = new TKwelse.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 29 then
-                                               var token = new TKwwhile.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 30 then
-                                               var token = new TKwfor.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 31 then
-                                               var token = new TKwin.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 32 then
-                                               var token = new TKwand.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 33 then
-                                               var token = new TKwor.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 34 then
-                                               var token = new TKwnot.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 35 then
-                                               var token = new TKwreturn.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 36 then
-                                               var token = new TKwcontinue.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 37 then
-                                               var token = new TKwbreak.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 38 then
-                                               var token = new TKwabort.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 39 then
-                                               var token = new TKwassert.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 40 then
-                                               var token = new TKwnew.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 41 then
-                                               var token = new TKwisa.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 42 then
-                                               var token = new TKwonce.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 43 then
-                                               var token = new TKwsuper.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 44 then
-                                               var token = new TKwself.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 45 then
-                                               var token = new TKwtrue.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 46 then
-                                               var token = new TKwfalse.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 47 then
-                                               var token = new TKwnull.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 48 then
-                                               var token = new TKwas.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 49 then
-                                               var token = new TOpar.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 50 then
-                                               var token = new TCpar.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 51 then
-                                               var token = new TObra.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 52 then
-                                               var token = new TCbra.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 53 then
-                                               var token = new TComma.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 54 then
-                                               var token = new TColumn.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 55 then
-                                               var token = new TQuad.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 56 then
-                                               var token = new TAssign.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 57 then
-                                               var token = new TPluseq.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 58 then
-                                               var token = new TMinuseq.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 59 then
-                                               var token = new TDotdotdot.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 60 then
-                                               var token = new TDotdot.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 61 then
-                                               var token = new TDot.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 62 then
-                                               var token = new TPlus.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 63 then
-                                               var token = new TMinus.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 64 then
-                                               var token = new TStar.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 65 then
-                                               var token = new TSlash.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 66 then
-                                               var token = new TPercent.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 67 then
-                                               var token = new TEq.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 68 then
-                                               var token = new TNe.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 69 then
-                                               var token = new TLt.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 70 then
-                                               var token = new TLe.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 71 then
-                                               var token = new TGt.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 72 then
-                                               var token = new TGe.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 73 then
-                                               var token = new TStarship.init_tk(_filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 74 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TClassid.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 75 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TId.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 76 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TAttrid.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 77 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TNumber.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 78 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TFloat.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 79 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TChar.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 80 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TString.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 81 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TStartString.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 82 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TMidString.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                                       if accept_token == 83 then
-                                               var token_text = _text.substring(0, accept_length)
-                                               var token = new TEndString.init_tk(token_text, _filename, start_line + 1, start_pos + 1)
-                                               push_back(accept_length)
-                                               _pos = accept_pos
-                                               _line = accept_line
-                                               return token
-                                       end
-                               else
-                                       if _text.length > 0 then
-                                               var token = new PError.init_error(_filename, start_line + 1, start_pos + 1, "Unknown token: {_text}")
-                                               return token
-                                       else
-                                               var token = new EOF(_filename, start_line + 1, start_pos + 1)
-                                               return token
-                                       end
-                               end
-                       end
-               end
-               return null
-       end
-
-       # Read the next character.
-       # The character is read from the stream of from the pushback buffer.
-       private meth get_char: Int
-       do
-               if _eof then
-                       return -1
+               if accept_token == 3 then
+                       return new TKwpackage.init_tk(location)
                end
-
-               var result: Int
-
-               var sp = _stream_pos
-               if sp >= 0 then
-                       var res = _stream_buf[_stream_pos]
-                       _stream_pos = sp - 1
-                       result = res.ascii
-               else
-                       result = _stream.read_char
+               if accept_token == 4 then
+                       return new TKwmodule.init_tk(location)
                end
-
-               if result == -1 then
-                       _eof = true
+               if accept_token == 5 then
+                       return new TKwimport.init_tk(location)
                end
-
-               return result
-       end
-
-       # Unread some characters.
-       # Unread characters are stored in the pushback buffer.
-       private meth push_back(accept_length: Int)
-       do
-               var length = _text.length
-               var i = length - 1
-               while i >= accept_length do
-                       _eof = false
-                       _stream_pos = _stream_pos + 1
-                       _stream_buf[_stream_pos] = _text[i]
-                       i = i - 1
+               if accept_token == 6 then
+                       return new TKwclass.init_tk(location)
                end
-       end
-
-       attr _goto_table: Array[Array[Array[Array[Int]]]]
-       private meth build_goto_table
-       do
-               _goto_table = once [
-                       [
-                               [
-                                       [9, 9, 1] ,
-                                       [10, 10, 2] ,
-                                       [13, 13, 3] ,
-                                       [32, 32, 4] ,
-                                       [33, 33, 5] ,
-                                       [34, 34, 6] ,
-                                       [35, 35, 7] ,
-                                       [37, 37, 8] ,
-                                       [39, 39, 9] ,
-                                       [40, 40, 10] ,
-                                       [41, 41, 11] ,
-                                       [42, 42, 12] ,
-                                       [43, 43, 13] ,
-                                       [44, 44, 14] ,
-                                       [45, 45, 15] ,
-                                       [46, 46, 16] ,
-                                       [47, 47, 17] ,
-                                       [48, 57, 18] ,
-                                       [58, 58, 19] ,
-                                       [60, 60, 20] ,
-                                       [61, 61, 21] ,
-                                       [62, 62, 22] ,
-                                       [65, 90, 23] ,
-                                       [91, 91, 24] ,
-                                       [93, 93, 25] ,
-                                       [95, 95, 26] ,
-                                       [97, 97, 27] ,
-                                       [98, 98, 28] ,
-                                       [99, 99, 29] ,
-                                       [100, 100, 30] ,
-                                       [101, 101, 31] ,
-                                       [102, 102, 32] ,
-                                       [103, 104, 33] ,
-                                       [105, 105, 34] ,
-                                       [106, 108, 33] ,
-                                       [109, 109, 35] ,
-                                       [110, 110, 36] ,
-                                       [111, 111, 37] ,
-                                       [112, 112, 38] ,
-                                       [113, 113, 33] ,
-                                       [114, 114, 39] ,
-                                       [115, 115, 40] ,
-                                       [116, 116, 41] ,
-                                       [117, 117, 42] ,
-                                       [118, 118, 43] ,
-                                       [119, 119, 44] ,
-                                       [120, 122, 33] ,
-                                       [125, 125, 45] 
-                               ] ,
-                               [
-                                       [9, 9, 1] ,
-                                       [32, 32, 4] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [10, 10, 46] 
-                               ] ,
-                               [
-                                       [9, 32, -3] 
-                               ] ,
-                               [
-                                       [61, 61, 47] 
-                               ] ,
-                               [
-                                       [0, 9, 48] ,
-                                       [11, 12, 48] ,
-                                       [14, 33, 48] ,
-                                       [34, 34, 49] ,
-                                       [35, 91, 48] ,
-                                       [92, 92, 50] ,
-                                       [93, 122, 48] ,
-                                       [123, 123, 51] ,
-                                       [124, 255, 48] 
-                               ] ,
-                               [
-                                       [0, 9, 52] ,
-                                       [10, 10, 53] ,
-                                       [11, 12, 52] ,
-                                       [13, 13, 54] ,
-                                       [14, 255, 52] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [0, 9, 55] ,
-                                       [11, 12, 55] ,
-                                       [14, 38, 55] ,
-                                       [39, 39, 56] ,
-                                       [40, 255, 55] 
-                               ] ,
-                               nil_array ,
-                               nil_array ,
-                               nil_array ,
-                               [
-                                       [61, 61, 57] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [61, 61, 58] 
-                               ] ,
-                               [
-                                       [46, 46, 59] ,
-                                       [48, 57, 60] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [46, 46, 61] ,
-                                       [48, 57, 18] 
-                               ] ,
-                               [
-                                       [58, 58, 62] 
-                               ] ,
-                               [
-                                       [61, 61, 63] 
-                               ] ,
-                               [
-                                       [61, 61, 64] 
-                               ] ,
-                               [
-                                       [61, 61, 65] 
-                               ] ,
-                               [
-                                       [48, 57, 66] ,
-                                       [65, 90, 67] ,
-                                       [95, 95, 68] ,
-                                       [97, 122, 69] 
-                               ] ,
-                               nil_array ,
-                               nil_array ,
-                               [
-                                       [97, 122, 70] 
-                               ] ,
-                               [
-                                       [48, 57, 71] ,
-                                       [65, 90, 72] ,
-                                       [95, 95, 73] ,
-                                       [97, 97, 74] ,
-                                       [98, 98, 75] ,
-                                       [99, 109, 74] ,
-                                       [110, 110, 76] ,
-                                       [111, 114, 74] ,
-                                       [115, 115, 77] ,
-                                       [116, 116, 78] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 113, 74] ,
-                                       [114, 114, 79] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 107, 74] ,
-                                       [108, 108, 80] ,
-                                       [109, 110, 74] ,
-                                       [111, 111, 81] ,
-                                       [112, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 110, 74] ,
-                                       [111, 111, 82] ,
-                                       [112, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 83] ,
-                                       [109, 109, 74] ,
-                                       [110, 110, 84] ,
-                                       [111, 119, 74] ,
-                                       [120, 120, 85] ,
-                                       [121, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 86] ,
-                                       [98, 110, 74] ,
-                                       [111, 111, 87] ,
-                                       [112, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 101, 74] ,
-                                       [102, 102, 88] ,
-                                       [103, 108, 74] ,
-                                       [109, 109, 89] ,
-                                       [110, 110, 90] ,
-                                       [111, 114, 74] ,
-                                       [115, 115, 91] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 100, 74] ,
-                                       [101, 101, 92] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 93] ,
-                                       [102, 110, 74] ,
-                                       [111, 111, 94] ,
-                                       [112, 116, 74] ,
-                                       [117, 117, 95] ,
-                                       [118, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 109, 74] ,
-                                       [110, 110, 96] ,
-                                       [111, 113, 74] ,
-                                       [114, 114, 97] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 98] ,
-                                       [98, 113, 74] ,
-                                       [114, 114, 99] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 100] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 101] ,
-                                       [102, 111, 74] ,
-                                       [112, 112, 102] ,
-                                       [113, 116, 74] ,
-                                       [117, 117, 103] ,
-                                       [118, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 103, 74] ,
-                                       [104, 104, 104] ,
-                                       [105, 113, 74] ,
-                                       [114, 114, 105] ,
-                                       [115, 120, 74] ,
-                                       [121, 121, 106] ,
-                                       [122, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 109, -39] ,
-                                       [110, 110, 107] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 108] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 103, -43] ,
-                                       [104, 104, 109] ,
-                                       [105, 113, 74] ,
-                                       [114, 114, 110] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [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 ,
-                               [
-                                       [0, 255, -8] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [0, 9, 115] ,
-                                       [11, 12, 115] ,
-                                       [14, 255, 115] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [0, 255, -9] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [10, 10, 116] 
-                               ] ,
-                               [
-                                       [0, 255, -11] 
-                               ] ,
-                               nil_array ,
-                               nil_array ,
-                               nil_array ,
-                               [
-                                       [46, 46, 117] 
-                               ] ,
-                               [
-                                       [48, 57, 60] 
-                               ] ,
-                               [
-                                       [48, 57, 60] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [62, 62, 118] 
-                               ] ,
-                               nil_array ,
-                               nil_array ,
-                               [
-                                       [48, 122, -25] 
-                               ] ,
-                               [
-                                       [48, 122, -25] 
-                               ] ,
-                               [
-                                       [48, 122, -25] 
-                               ] ,
-                               [
-                                       [48, 122, -25] 
-                               ] ,
-                               [
-                                       [48, 57, 119] ,
-                                       [65, 90, 120] ,
-                                       [95, 95, 121] ,
-                                       [97, 122, 122] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 110, -32] ,
-                                       [111, 111, 123] ,
-                                       [112, 114, 74] ,
-                                       [115, 115, 124] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 99, 74] ,
-                                       [100, 100, 125] ,
-                                       [101, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 114, 74] ,
-                                       [115, 115, 126] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 115, 74] ,
-                                       [116, 116, 127] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 128] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 129] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 109, -39] ,
-                                       [110, 110, 130] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 114, -79] ,
-                                       [115, 115, 131] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 99, -78] ,
-                                       [100, 100, 132] ,
-                                       [101, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 133] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 134] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 135] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 111, 74] ,
-                                       [112, 112, 136] ,
-                                       [113, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 104, 74] ,
-                                       [105, 105, 137] ,
-                                       [106, 115, 74] ,
-                                       [116, 116, 138] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 139] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 140] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 118, 74] ,
-                                       [119, 119, 141] ,
-                                       [120, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 142] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 143] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 98, 74] ,
-                                       [99, 99, 144] ,
-                                       [100, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 98, -98] ,
-                                       [99, 99, 145] ,
-                                       [100, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 104, -92] ,
-                                       [105, 105, 146] ,
-                                       [106, 110, 74] ,
-                                       [111, 111, 147] ,
-                                       [112, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 148] ,
-                                       [98, 99, 74] ,
-                                       [100, 100, 149] ,
-                                       [101, 115, 74] ,
-                                       [116, 116, 150] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 151] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 152] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 111, -91] ,
-                                       [112, 112, 153] ,
-                                       [113, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 154] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 116, 74] ,
-                                       [117, 117, 155] ,
-                                       [118, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 111, -91] ,
-                                       [112, 112, 156] ,
-                                       [113, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 104, -92] ,
-                                       [105, 105, 157] ,
-                                       [106, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 158] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 104, -92] ,
-                                       [105, 105, 159] ,
-                                       [106, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 104, -92] ,
-                                       [105, 105, 160] ,
-                                       [106, 122, 74] 
-                               ] ,
-                               [
-                                       [0, 255, -47] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [0, 9, 161] ,
-                                       [11, 12, 161] ,
-                                       [14, 255, 161] 
-                               ] ,
-                               nil_array ,
-                               [
-                                       [0, 255, -8] 
-                               ] ,
-                               nil_array ,
-                               nil_array ,
-                               nil_array ,
-                               [
-                                       [48, 122, -72] 
-                               ] ,
-                               [
-                                       [48, 122, -72] 
-                               ] ,
-                               [
-                                       [48, 122, -72] 
-                               ] ,
-                               [
-                                       [48, 122, -72] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 162] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 163] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 164] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 165] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 166] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 114, -79] ,
-                                       [115, 115, 167] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 168] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 169] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 170] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 114, -79] ,
-                                       [115, 115, 171] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 110, -32] ,
-                                       [111, 111, 172] ,
-                                       [112, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 173] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 174] ,
-                                       [102, 113, 74] ,
-                                       [114, 114, 175] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 103, -43] ,
-                                       [104, 104, 176] ,
-                                       [105, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 177] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 178] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 106, 74] ,
-                                       [107, 107, 179] ,
-                                       [108, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 117, 74] ,
-                                       [118, 118, 180] ,
-                                       [119, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 181] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 99, -78] ,
-                                       [100, 100, 182] ,
-                                       [101, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 183] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 116, -107] ,
-                                       [117, 117, 184] ,
-                                       [118, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 101, -36] ,
-                                       [102, 102, 185] ,
-                                       [103, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 98, -98] ,
-                                       [99, 99, 186] ,
-                                       [100, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 187] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 109, -39] ,
-                                       [110, 110, 188] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 189] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 190] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 117, -148] ,
-                                       [118, 118, 191] ,
-                                       [119, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 192] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 193] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [0, 255, -47] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 194] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 195] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 196] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 106, -147] ,
-                                       [107, 107, 197] ,
-                                       [108, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 114, -79] ,
-                                       [115, 115, 198] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 104, -92] ,
-                                       [105, 105, 199] ,
-                                       [106, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 200] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 201] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 202] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 203] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 116, -107] ,
-                                       [117, 117, 204] ,
-                                       [118, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 205] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 206] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 207] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 208] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 101, -36] ,
-                                       [102, 102, 209] ,
-                                       [103, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 210] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 104, -92] ,
-                                       [105, 105, 211] ,
-                                       [106, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 212] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 213] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 214] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 215] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 216] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 217] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 109, -39] ,
-                                       [110, 110, 218] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 109, -39] ,
-                                       [110, 110, 219] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 220] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 101, -36] ,
-                                       [102, 102, 221] ,
-                                       [103, 109, 74] ,
-                                       [110, 110, 222] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 99, -78] ,
-                                       [100, 100, 223] ,
-                                       [101, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 102, 74] ,
-                                       [103, 103, 224] ,
-                                       [104, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 225] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 98, -98] ,
-                                       [99, 99, 226] ,
-                                       [100, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 97, -29] ,
-                                       [98, 98, 227] ,
-                                       [99, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 109, -39] ,
-                                       [110, 110, 228] ,
-                                       [111, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 229] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 113, -30] ,
-                                       [114, 114, 230] ,
-                                       [115, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 97, -29] ,
-                                       [98, 98, 231] ,
-                                       [99, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 98, -98] ,
-                                       [99, 99, 232] ,
-                                       [100, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 116, -107] ,
-                                       [117, 117, 233] ,
-                                       [118, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 234] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 235] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 236] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 237] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 238] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 239] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 240] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 114, -79] ,
-                                       [115, 115, 241] ,
-                                       [116, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 242] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 115, -80] ,
-                                       [116, 116, 243] ,
-                                       [117, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 244] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 98, -98] ,
-                                       [99, 99, 245] ,
-                                       [100, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 246] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 247] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 95, -29] ,
-                                       [97, 97, 248] ,
-                                       [98, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 249] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 100, -37] ,
-                                       [101, 101, 250] ,
-                                       [102, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 99, -78] ,
-                                       [100, 100, 251] ,
-                                       [101, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 107, -31] ,
-                                       [108, 108, 252] ,
-                                       [109, 122, 74] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] ,
-                               [
-                                       [48, 122, -35] 
-                               ] 
-                       ] 
-               ]
-       end
-    
-       private meth nil_array: Array[Array[Int]]
-       do
-               return once new Array[Array[Int]]
-       end
-
-       attr _accept_table: Array[Array[Int]]
-       private meth build_accept_table do
-               _accept_table = once [
-                       [
-                               -1 , 0 , 1 , 1 , 0 , -1 , -1 , -1 , 66 , -1 , 49 , 50 , 64 , 62 , 53 , 63 , 61 , 65 , 77 , 54 , 69 , 56 , 71 , 74 , 51 , 52 , -1 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , -1 , 1 , 68 , -1 , 80 , -1 , 81 , -1 , 2 , 2 , -1 , 79 , 57 , 58 , 60 , 78 , -1 , 55 , 70 , 67 , 72 , 74 , 74 , 74 , 74 , 76 , 75 , 75 , 75 , 75 , 75 , 75 , 48 , 75 , 75 , 75 , 75 , 17 , 75 , 75 , 75 , 75 , 75 , 26 , 75 , 31 , 16 , 75 , 75 , 75 , 75 , 75 , 33 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , -1 , 83 , -1 , 82 , -1 , 2 , 59 , 73 , 76 , 76 , 76 , 76 , 75 , 75 , 32 , 75 , 75 , 75 , 75 , 75 , 75 , 10 , 75 , 75 , 30 , 75 , 75 , 75 , 41 , 75 , 40 , 34 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 20 , 75 , 75 , -1 , 75 , 75 , 75 , 13 , 75 , 75 , 75 , 28 , 75 , 75 , 75 , 14 , 75 , 75 , 11 , 47 , 42 , 75 , 75 , 75 , 75 , 75 , 75 , 44 , 75 , 75 , 27 , 45 , 12 , 75 , 75 , 75 , 38 , 75 , 75 , 37 , 5 , 75 , 75 , 46 , 75 , 75 , 75 , 75 , 75 , 75 , 75 , 15 , 75 , 75 , 43 , 75 , 29 , 75 , 75 , 39 , 75 , 22 , 4 , 75 , 21 , 75 , 75 , 75 , 75 , 75 , 35 , 75 , 75 , 75 , 75 , 75 , 75 , 25 , 3 , 24 , 75 , 75 , 9 , 75 , 75 , 6 , 36 , 75 , 75 , 18 , 75 , 19 , 7 , 23 , 8  
-
-                       ] 
-               ]
+               if accept_token == 7 then
+                       return new TKwabstract.init_tk(location)
+               end
+               if accept_token == 8 then
+                       return new TKwinterface.init_tk(location)
+               end
+               if accept_token == 9 then
+                       return new TKwenum.init_tk(location)
+               end
+               if accept_token == 10 then
+                       return new TKwsubset.init_tk(location)
+               end
+               if accept_token == 11 then
+                       return new TKwend.init_tk(location)
+               end
+               if accept_token == 12 then
+                       return new TKwmeth.init_tk(location)
+               end
+               if accept_token == 13 then
+                       return new TKwtype.init_tk(location)
+               end
+               if accept_token == 14 then
+                       return new TKwinit.init_tk(location)
+               end
+               if accept_token == 15 then
+                       return new TKwredef.init_tk(location)
+               end
+               if accept_token == 16 then
+                       return new TKwis.init_tk(location)
+               end
+               if accept_token == 17 then
+                       return new TKwdo.init_tk(location)
+               end
+               if accept_token == 18 then
+                       return new TKwvar.init_tk(location)
+               end
+               if accept_token == 19 then
+                       return new TKwextern.init_tk(location)
+               end
+               if accept_token == 20 then
+                       return new TKwpublic.init_tk(location)
+               end
+               if accept_token == 21 then
+                       return new TKwprotected.init_tk(location)
+               end
+               if accept_token == 22 then
+                       return new TKwprivate.init_tk(location)
+               end
+               if accept_token == 23 then
+                       return new TKwintrude.init_tk(location)
+               end
+               if accept_token == 24 then
+                       return new TKwif.init_tk(location)
+               end
+               if accept_token == 25 then
+                       return new TKwthen.init_tk(location)
+               end
+               if accept_token == 26 then
+                       return new TKwelse.init_tk(location)
+               end
+               if accept_token == 27 then
+                       return new TKwwhile.init_tk(location)
+               end
+               if accept_token == 28 then
+                       return new TKwloop.init_tk(location)
+               end
+               if accept_token == 29 then
+                       return new TKwfor.init_tk(location)
+               end
+               if accept_token == 30 then
+                       return new TKwin.init_tk(location)
+               end
+               if accept_token == 31 then
+                       return new TKwand.init_tk(location)
+               end
+               if accept_token == 32 then
+                       return new TKwor.init_tk(location)
+               end
+               if accept_token == 33 then
+                       return new TKwnot.init_tk(location)
+               end
+               if accept_token == 34 then
+                       return new TKwimplies.init_tk(location)
+               end
+               if accept_token == 35 then
+                       return new TKwreturn.init_tk(location)
+               end
+               if accept_token == 36 then
+                       return new TKwcontinue.init_tk(location)
+               end
+               if accept_token == 37 then
+                       return new TKwbreak.init_tk(location)
+               end
+               if accept_token == 38 then
+                       return new TKwabort.init_tk(location)
+               end
+               if accept_token == 39 then
+                       return new TKwassert.init_tk(location)
+               end
+               if accept_token == 40 then
+                       return new TKwnew.init_tk(location)
+               end
+               if accept_token == 41 then
+                       return new TKwisa.init_tk(location)
+               end
+               if accept_token == 42 then
+                       return new TKwonce.init_tk(location)
+               end
+               if accept_token == 43 then
+                       return new TKwsuper.init_tk(location)
+               end
+               if accept_token == 44 then
+                       return new TKwself.init_tk(location)
+               end
+               if accept_token == 45 then
+                       return new TKwtrue.init_tk(location)
+               end
+               if accept_token == 46 then
+                       return new TKwfalse.init_tk(location)
+               end
+               if accept_token == 47 then
+                       return new TKwnull.init_tk(location)
+               end
+               if accept_token == 48 then
+                       return new TKwas.init_tk(location)
+               end
+               if accept_token == 49 then
+                       return new TKwnullable.init_tk(location)
+               end
+               if accept_token == 50 then
+                       return new TKwisset.init_tk(location)
+               end
+               if accept_token == 51 then
+                       return new TKwlabel.init_tk(location)
+               end
+               if accept_token == 52 then
+                       return new TKwwith.init_tk(location)
+               end
+               if accept_token == 53 then
+                       return new TKwdebug.init_tk(location)
+               end
+               if accept_token == 54 then
+                       return new TKwyield.init_tk(location)
+               end
+               if accept_token == 55 then
+                       return new TKwcatch.init_tk(location)
+               end
+               if accept_token == 56 then
+                       return new TOpar.init_tk(location)
+               end
+               if accept_token == 57 then
+                       return new TCpar.init_tk(location)
+               end
+               if accept_token == 58 then
+                       return new TObra.init_tk(location)
+               end
+               if accept_token == 59 then
+                       return new TCbra.init_tk(location)
+               end
+               if accept_token == 60 then
+                       return new TComma.init_tk(location)
+               end
+               if accept_token == 61 then
+                       return new TColumn.init_tk(location)
+               end
+               if accept_token == 62 then
+                       return new TQuad.init_tk(location)
+               end
+               if accept_token == 63 then
+                       return new TAssign.init_tk(location)
+               end
+               if accept_token == 64 then
+                       return new TPluseq.init_tk(location)
+               end
+               if accept_token == 65 then
+                       return new TMinuseq.init_tk(location)
+               end
+               if accept_token == 66 then
+                       return new TStareq.init_tk(location)
+               end
+               if accept_token == 67 then
+                       return new TSlasheq.init_tk(location)
+               end
+               if accept_token == 68 then
+                       return new TPercenteq.init_tk(location)
+               end
+               if accept_token == 69 then
+                       return new TStarstareq.init_tk(location)
+               end
+               if accept_token == 70 then
+                       return new TPipeeq.init_tk(location)
+               end
+               if accept_token == 71 then
+                       return new TCareteq.init_tk(location)
+               end
+               if accept_token == 72 then
+                       return new TAmpeq.init_tk(location)
+               end
+               if accept_token == 73 then
+                       return new TLleq.init_tk(location)
+               end
+               if accept_token == 74 then
+                       return new TGgeq.init_tk(location)
+               end
+               if accept_token == 75 then
+                       return new TDotdotdot.init_tk(location)
+               end
+               if accept_token == 76 then
+                       return new TDotdot.init_tk(location)
+               end
+               if accept_token == 77 then
+                       return new TDot.init_tk(location)
+               end
+               if accept_token == 78 then
+                       return new TPlus.init_tk(location)
+               end
+               if accept_token == 79 then
+                       return new TMinus.init_tk(location)
+               end
+               if accept_token == 80 then
+                       return new TStar.init_tk(location)
+               end
+               if accept_token == 81 then
+                       return new TStarstar.init_tk(location)
+               end
+               if accept_token == 82 then
+                       return new TSlash.init_tk(location)
+               end
+               if accept_token == 83 then
+                       return new TPercent.init_tk(location)
+               end
+               if accept_token == 84 then
+                       return new TPipe.init_tk(location)
+               end
+               if accept_token == 85 then
+                       return new TCaret.init_tk(location)
+               end
+               if accept_token == 86 then
+                       return new TAmp.init_tk(location)
+               end
+               if accept_token == 87 then
+                       return new TTilde.init_tk(location)
+               end
+               if accept_token == 88 then
+                       return new TEq.init_tk(location)
+               end
+               if accept_token == 89 then
+                       return new TNe.init_tk(location)
+               end
+               if accept_token == 90 then
+                       return new TLt.init_tk(location)
+               end
+               if accept_token == 91 then
+                       return new TLe.init_tk(location)
+               end
+               if accept_token == 92 then
+                       return new TLl.init_tk(location)
+               end
+               if accept_token == 93 then
+                       return new TGt.init_tk(location)
+               end
+               if accept_token == 94 then
+                       return new TGe.init_tk(location)
+               end
+               if accept_token == 95 then
+                       return new TGg.init_tk(location)
+               end
+               if accept_token == 96 then
+                       return new TStarship.init_tk(location)
+               end
+               if accept_token == 97 then
+                       return new TBang.init_tk(location)
+               end
+               if accept_token == 98 then
+                       return new TQuest.init_tk(location)
+               end
+               if accept_token == 99 then
+                       return new TAt.init_tk(location)
+               end
+               if accept_token == 100 then
+                       return new TSemi.init_tk(location)
+               end
+               if accept_token == 101 then
+                       return new TClassid.init_tk(location)
+               end
+               if accept_token == 102 then
+                       return new TId.init_tk(location)
+               end
+               if accept_token == 103 then
+                       return new TAttrid.init_tk(location)
+               end
+               if accept_token == 104 then
+                       return new TInteger.init_tk(location)
+               end
+               if accept_token == 105 then
+                       return new TFloat.init_tk(location)
+               end
+               if accept_token == 106 then
+                       return new TString.init_tk(location)
+               end
+               if accept_token == 107 then
+                       return new TStartString.init_tk(location)
+               end
+               if accept_token == 108 then
+                       return new TMidString.init_tk(location)
+               end
+               if accept_token == 109 then
+                       return new TEndString.init_tk(location)
+               end
+               if accept_token == 110 then
+                       return new TChar.init_tk(location)
+               end
+               if accept_token == 111 then
+                       return new TBadString.init_tk(location)
+               end
+               if accept_token == 112 then
+                       return new TBadTString.init_tk(location)
+               end
+               if accept_token == 113 then
+                       return new TBadChar.init_tk(location)
+               end
+               if accept_token == 114 then
+                       return new TExternCodeSegment.init_tk(location)
+               end
+               if accept_token == 115 then
+                       return new TBadExtern.init_tk(location)
+               end
+               abort # unknown token index `accept_token`
        end
 end