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