X-Git-Url: http://nitlanguage.org diff --git a/src/parser/lexer.nit b/src/parser/lexer.nit index c8e64bf..1805e58 100644 --- a/src/parser/lexer.nit +++ b/src/parser/lexer.nit @@ -1,30 +1,11 @@ # Lexer and its tokens. # This file was generated by SableCC (http://www.sablecc.org/). -module lexer +module lexer is no_warning("missing-doc") intrude import parser_nodes +intrude import lexer_work private import tables -redef class Token - var _text: nullable String - - redef fun text - do - var res = _text - if res != null then return res - res = location.text - _text = res - return res - end - - redef fun text=(text) - do - _text = text - end - - fun parser_index: Int is abstract -end - redef class TEol redef fun parser_index: Int do @@ -49,7 +30,7 @@ redef class TComment end end -redef class TKwmodule +redef class TKwpackage redef fun parser_index: Int do return 2 @@ -61,7 +42,7 @@ redef class TKwmodule end end -redef class TKwimport +redef class TKwmodule redef fun parser_index: Int do return 3 @@ -73,7 +54,7 @@ redef class TKwimport end end -redef class TKwclass +redef class TKwimport redef fun parser_index: Int do return 4 @@ -85,7 +66,7 @@ redef class TKwclass end end -redef class TKwabstract +redef class TKwclass redef fun parser_index: Int do return 5 @@ -97,7 +78,7 @@ redef class TKwabstract end end -redef class TKwinterface +redef class TKwabstract redef fun parser_index: Int do return 6 @@ -109,7 +90,7 @@ redef class TKwinterface end end -redef class TKwenum +redef class TKwinterface redef fun parser_index: Int do return 7 @@ -121,7 +102,7 @@ redef class TKwenum end end -redef class TKwend +redef class TKwenum redef fun parser_index: Int do return 8 @@ -133,7 +114,7 @@ redef class TKwend end end -redef class TKwmeth +redef class TKwend redef fun parser_index: Int do return 9 @@ -145,7 +126,7 @@ redef class TKwmeth end end -redef class TKwtype +redef class TKwmeth redef fun parser_index: Int do return 10 @@ -157,7 +138,7 @@ redef class TKwtype end end -redef class TKwinit +redef class TKwtype redef fun parser_index: Int do return 11 @@ -169,7 +150,7 @@ redef class TKwinit end end -redef class TKwredef +redef class TKwinit redef fun parser_index: Int do return 12 @@ -181,7 +162,7 @@ redef class TKwredef end end -redef class TKwis +redef class TKwredef redef fun parser_index: Int do return 13 @@ -193,7 +174,7 @@ redef class TKwis end end -redef class TKwdo +redef class TKwis redef fun parser_index: Int do return 14 @@ -205,7 +186,7 @@ redef class TKwdo end end -redef class TKwreadable +redef class TKwdo redef fun parser_index: Int do return 15 @@ -217,7 +198,7 @@ redef class TKwreadable end end -redef class TKwwritable +redef class TKwvar redef fun parser_index: Int do return 16 @@ -229,7 +210,7 @@ redef class TKwwritable end end -redef class TKwvar +redef class TKwextern redef fun parser_index: Int do return 17 @@ -241,7 +222,7 @@ redef class TKwvar end end -redef class TKwintern +redef class TKwpublic redef fun parser_index: Int do return 18 @@ -253,7 +234,7 @@ redef class TKwintern end end -redef class TKwextern +redef class TKwprotected redef fun parser_index: Int do return 19 @@ -265,7 +246,7 @@ redef class TKwextern end end -redef class TKwprotected +redef class TKwprivate redef fun parser_index: Int do return 20 @@ -277,7 +258,7 @@ redef class TKwprotected end end -redef class TKwprivate +redef class TKwintrude redef fun parser_index: Int do return 21 @@ -289,7 +270,7 @@ redef class TKwprivate end end -redef class TKwintrude +redef class TKwif redef fun parser_index: Int do return 22 @@ -301,7 +282,7 @@ redef class TKwintrude end end -redef class TKwif +redef class TKwthen redef fun parser_index: Int do return 23 @@ -313,7 +294,7 @@ redef class TKwif end end -redef class TKwthen +redef class TKwelse redef fun parser_index: Int do return 24 @@ -325,7 +306,7 @@ redef class TKwthen end end -redef class TKwelse +redef class TKwwhile redef fun parser_index: Int do return 25 @@ -337,7 +318,7 @@ redef class TKwelse end end -redef class TKwwhile +redef class TKwloop redef fun parser_index: Int do return 26 @@ -349,7 +330,7 @@ redef class TKwwhile end end -redef class TKwloop +redef class TKwfor redef fun parser_index: Int do return 27 @@ -361,7 +342,7 @@ redef class TKwloop end end -redef class TKwfor +redef class TKwin redef fun parser_index: Int do return 28 @@ -373,7 +354,7 @@ redef class TKwfor end end -redef class TKwin +redef class TKwand redef fun parser_index: Int do return 29 @@ -385,7 +366,7 @@ redef class TKwin end end -redef class TKwand +redef class TKwor redef fun parser_index: Int do return 30 @@ -397,7 +378,7 @@ redef class TKwand end end -redef class TKwor +redef class TKwnot redef fun parser_index: Int do return 31 @@ -409,7 +390,7 @@ redef class TKwor end end -redef class TKwnot +redef class TKwimplies redef fun parser_index: Int do return 32 @@ -421,7 +402,7 @@ redef class TKwnot end end -redef class TKwimplies +redef class TKwreturn redef fun parser_index: Int do return 33 @@ -433,7 +414,7 @@ redef class TKwimplies end end -redef class TKwreturn +redef class TKwcontinue redef fun parser_index: Int do return 34 @@ -445,7 +426,7 @@ redef class TKwreturn end end -redef class TKwcontinue +redef class TKwbreak redef fun parser_index: Int do return 35 @@ -457,7 +438,7 @@ redef class TKwcontinue end end -redef class TKwbreak +redef class TKwabort redef fun parser_index: Int do return 36 @@ -469,7 +450,7 @@ redef class TKwbreak end end -redef class TKwabort +redef class TKwassert redef fun parser_index: Int do return 37 @@ -481,7 +462,7 @@ redef class TKwabort end end -redef class TKwassert +redef class TKwnew redef fun parser_index: Int do return 38 @@ -493,7 +474,7 @@ redef class TKwassert end end -redef class TKwnew +redef class TKwisa redef fun parser_index: Int do return 39 @@ -505,7 +486,7 @@ redef class TKwnew end end -redef class TKwisa +redef class TKwonce redef fun parser_index: Int do return 40 @@ -517,7 +498,7 @@ redef class TKwisa end end -redef class TKwonce +redef class TKwsuper redef fun parser_index: Int do return 41 @@ -529,7 +510,7 @@ redef class TKwonce end end -redef class TKwsuper +redef class TKwself redef fun parser_index: Int do return 42 @@ -541,7 +522,7 @@ redef class TKwsuper end end -redef class TKwself +redef class TKwtrue redef fun parser_index: Int do return 43 @@ -553,7 +534,7 @@ redef class TKwself end end -redef class TKwtrue +redef class TKwfalse redef fun parser_index: Int do return 44 @@ -565,7 +546,7 @@ redef class TKwtrue end end -redef class TKwfalse +redef class TKwnull redef fun parser_index: Int do return 45 @@ -577,7 +558,7 @@ redef class TKwfalse end end -redef class TKwnull +redef class TKwas redef fun parser_index: Int do return 46 @@ -589,7 +570,7 @@ redef class TKwnull end end -redef class TKwas +redef class TKwnullable redef fun parser_index: Int do return 47 @@ -601,7 +582,7 @@ redef class TKwas end end -redef class TKwnullable +redef class TKwisset redef fun parser_index: Int do return 48 @@ -613,7 +594,7 @@ redef class TKwnullable end end -redef class TKwisset +redef class TKwlabel redef fun parser_index: Int do return 49 @@ -625,7 +606,7 @@ redef class TKwisset end end -redef class TKwlabel +redef class TKwwith redef fun parser_index: Int do return 50 @@ -841,7 +822,7 @@ redef class TStar end end -redef class TSlash +redef class TStarstar redef fun parser_index: Int do return 68 @@ -853,7 +834,7 @@ redef class TSlash end end -redef class TPercent +redef class TSlash redef fun parser_index: Int do return 69 @@ -865,7 +846,7 @@ redef class TPercent end end -redef class TEq +redef class TPercent redef fun parser_index: Int do return 70 @@ -877,7 +858,7 @@ redef class TEq end end -redef class TNe +redef class TEq redef fun parser_index: Int do return 71 @@ -889,7 +870,7 @@ redef class TNe end end -redef class TLt +redef class TNe redef fun parser_index: Int do return 72 @@ -901,7 +882,7 @@ redef class TLt end end -redef class TLe +redef class TLt redef fun parser_index: Int do return 73 @@ -913,7 +894,7 @@ redef class TLe end end -redef class TLl +redef class TLe redef fun parser_index: Int do return 74 @@ -925,7 +906,7 @@ redef class TLl end end -redef class TGt +redef class TLl redef fun parser_index: Int do return 75 @@ -937,7 +918,7 @@ redef class TGt end end -redef class TGe +redef class TGt redef fun parser_index: Int do return 76 @@ -949,7 +930,7 @@ redef class TGe end end -redef class TGg +redef class TGe redef fun parser_index: Int do return 77 @@ -961,7 +942,7 @@ redef class TGg end end -redef class TStarship +redef class TGg redef fun parser_index: Int do return 78 @@ -973,7 +954,7 @@ redef class TStarship end end -redef class TBang +redef class TStarship redef fun parser_index: Int do return 79 @@ -985,7 +966,7 @@ redef class TBang end end -redef class TAt +redef class TBang redef fun parser_index: Int do return 80 @@ -997,7 +978,7 @@ redef class TAt end end -redef class TClassid +redef class TAt redef fun parser_index: Int do return 81 @@ -1009,7 +990,7 @@ redef class TClassid end end -redef class TId +redef class TClassid redef fun parser_index: Int do return 82 @@ -1021,7 +1002,7 @@ redef class TId end end -redef class TAttrid +redef class TId redef fun parser_index: Int do return 83 @@ -1033,7 +1014,7 @@ redef class TAttrid end end -redef class TNumber +redef class TAttrid redef fun parser_index: Int do return 84 @@ -1045,7 +1026,7 @@ redef class TNumber end end -redef class TFloat +redef class TNumber redef fun parser_index: Int do return 85 @@ -1057,7 +1038,7 @@ redef class TFloat end end -redef class TString +redef class THexNumber redef fun parser_index: Int do return 86 @@ -1069,7 +1050,7 @@ redef class TString end end -redef class TStartString +redef class TFloat redef fun parser_index: Int do return 87 @@ -1081,7 +1062,7 @@ redef class TStartString end end -redef class TMidString +redef class TString redef fun parser_index: Int do return 88 @@ -1093,7 +1074,7 @@ redef class TMidString end end -redef class TEndString +redef class TStartString redef fun parser_index: Int do return 89 @@ -1105,7 +1086,7 @@ redef class TEndString end end -redef class TChar +redef class TMidString redef fun parser_index: Int do return 90 @@ -1117,7 +1098,7 @@ redef class TChar end end -redef class TBadString +redef class TEndString redef fun parser_index: Int do return 91 @@ -1129,7 +1110,7 @@ redef class TBadString end end -redef class TBadChar +redef class TChar redef fun parser_index: Int do return 92 @@ -1141,7 +1122,7 @@ redef class TBadChar end end -redef class TExternCodeSegment +redef class TBadString redef fun parser_index: Int do return 93 @@ -1153,8 +1134,7 @@ redef class TExternCodeSegment end end - -redef class EOF +redef class TBadChar redef fun parser_index: Int do return 94 @@ -1162,502 +1142,322 @@ redef class EOF init init_tk(loc: Location) do - _text = "" _location = loc end end -redef class AError - readable var _message: String - - init init_error(message: String, loc: Location) +redef class TExternCodeSegment + redef fun parser_index: Int do - init_tk(loc) - _message = message + return 95 end -end - -redef class ALexerError - readable var _string: String - init init_lexer_error(message: String, loc: Location, string: String) + init init_tk(loc: Location) do - init_error(message, loc) - _string = string + _location = loc end end -redef class AParserError - readable var _token: Token - init init_parser_error(message: String, loc: Location, token: Token) +redef class EOF + redef fun parser_index: Int do - init_error(message, loc) - _token = token + return 96 end end -# The lexer extract NIT tokens from an input stream. -# It is better user with the Parser -class Lexer - super TablesCapable - # Last peeked token - var _token: nullable Token - - # Lexer current state - var _state: Int = 0 - - # The source file - readable var _file: SourceFile - - # Current character in the stream - var _stream_pos: Int = 0 - - # Current line number in the input stream - var _line: Int = 0 - - # Current column in the input stream - var _pos: Int = 0 - - # Was the last character a cariage-return? - var _cr: Bool = false - - # Constante state values - private fun state_initial: Int do return 0 end - - # Create a new lexer for a stream (and a name) - init(file: SourceFile) - do - _file = file - end - - # The last peeked token to chain them - private var last_token: nullable Token = null - - # Give the next token (but do not consume it) - fun peek: Token +redef class Lexer + redef fun make_token(accept_token, location) do - var t = _token - if t != null then return t - - t = get_token - while t == null do t = get_token - - var l = last_token - if l != null then - l.next_token = t - t.prev_token = l + if accept_token == 1 then + return new TEol.init_tk(location) end - - last_token = t - _token = t - return t - end - - # Give and consume the next token - fun next: Token - do - var result = peek - _token = null - return result - end - - # Primitive method to return a token, or return null if it is discarded - # Is used to implement `peek` and `next` - protected fun get_token: nullable Token - do - var dfa_state = 0 - - var sp = _stream_pos - var start_stream_pos = sp - var start_pos = _pos - var start_line = _line - var string = _file.string - var string_len = string.length - - var accept_state = -1 - var accept_token = -1 - var accept_length = -1 - var accept_pos = -1 - var accept_line = -1 - - loop - if sp >= string_len then - dfa_state = -1 - else - var c = string[sp].ascii - sp += 1 - - var cr = _cr - var line = _line - var pos = _pos - if c == 10 then - if cr then - cr = false - _file.line_starts[line] = sp - else - line = line + 1 - pos = 0 - _file.line_starts[line] = sp - end - else if c == 13 then - line = line + 1 - pos = 0 - cr = true - _file.line_starts[line] = sp - else - pos = pos + 1 - cr = false - end - - loop - var old_state = dfa_state - if dfa_state < -1 then - old_state = -2 - dfa_state - end - - dfa_state = -1 - - var low = 0 - var high = lexer_goto(old_state, 0) - 1 - - if high >= 0 then - while low <= high do - var middle = (low + high) / 2 - var offset = middle * 3 + 1 # +1 because length is at 0 - - if c < lexer_goto(old_state, offset) then - high = middle - 1 - else if c > lexer_goto(old_state, offset+1) then - low = middle + 1 - else - dfa_state = lexer_goto(old_state, offset+2) - break - end - end - end - if dfa_state > -2 then break - end - - _cr = cr - _line = line - _pos = pos - end - - if dfa_state >= 0 then - var tok = lexer_accept(dfa_state) - if tok != -1 then - accept_state = dfa_state - accept_token = tok - accept_length = sp - start_stream_pos - accept_pos = _pos - accept_line = _line - end - else - if accept_state != -1 then - var location = new Location(_file, start_line + 1, accept_line + 1, start_pos + 1, accept_pos) - _pos = accept_pos - _line = accept_line - _stream_pos = start_stream_pos + accept_length - if accept_token == 0 then - return null - end - if accept_token == 1 then - return new TEol.init_tk(location) - end - if accept_token == 2 then - return new TComment.init_tk(location) - end - if accept_token == 3 then - return new TKwmodule.init_tk(location) - end - if accept_token == 4 then - return new TKwimport.init_tk(location) - end - if accept_token == 5 then - return new TKwclass.init_tk(location) - end - if accept_token == 6 then - return new TKwabstract.init_tk(location) - end - if accept_token == 7 then - return new TKwinterface.init_tk(location) - end - if accept_token == 8 then - return new TKwenum.init_tk(location) - end - if accept_token == 9 then - return new TKwend.init_tk(location) - end - if accept_token == 10 then - return new TKwmeth.init_tk(location) - end - if accept_token == 11 then - return new TKwtype.init_tk(location) - end - if accept_token == 12 then - return new TKwinit.init_tk(location) - end - if accept_token == 13 then - return new TKwredef.init_tk(location) - end - if accept_token == 14 then - return new TKwis.init_tk(location) - end - if accept_token == 15 then - return new TKwdo.init_tk(location) - end - if accept_token == 16 then - return new TKwreadable.init_tk(location) - end - if accept_token == 17 then - return new TKwwritable.init_tk(location) - end - if accept_token == 18 then - return new TKwvar.init_tk(location) - end - if accept_token == 19 then - return new TKwintern.init_tk(location) - end - if accept_token == 20 then - return new TKwextern.init_tk(location) - end - if accept_token == 21 then - return new TKwprotected.init_tk(location) - end - if accept_token == 22 then - return new TKwprivate.init_tk(location) - end - if accept_token == 23 then - return new TKwintrude.init_tk(location) - end - if accept_token == 24 then - return new TKwif.init_tk(location) - end - if accept_token == 25 then - return new TKwthen.init_tk(location) - end - if accept_token == 26 then - return new TKwelse.init_tk(location) - end - if accept_token == 27 then - return new TKwwhile.init_tk(location) - end - if accept_token == 28 then - return new TKwloop.init_tk(location) - end - if accept_token == 29 then - return new TKwfor.init_tk(location) - end - if accept_token == 30 then - return new TKwin.init_tk(location) - end - if accept_token == 31 then - return new TKwand.init_tk(location) - end - if accept_token == 32 then - return new TKwor.init_tk(location) - end - if accept_token == 33 then - return new TKwnot.init_tk(location) - end - if accept_token == 34 then - return new TKwimplies.init_tk(location) - end - if accept_token == 35 then - return new TKwreturn.init_tk(location) - end - if accept_token == 36 then - return new TKwcontinue.init_tk(location) - end - if accept_token == 37 then - return new TKwbreak.init_tk(location) - end - if accept_token == 38 then - return new TKwabort.init_tk(location) - end - if accept_token == 39 then - return new TKwassert.init_tk(location) - end - if accept_token == 40 then - return new TKwnew.init_tk(location) - end - if accept_token == 41 then - return new TKwisa.init_tk(location) - end - if accept_token == 42 then - return new TKwonce.init_tk(location) - end - if accept_token == 43 then - return new TKwsuper.init_tk(location) - end - if accept_token == 44 then - return new TKwself.init_tk(location) - end - if accept_token == 45 then - return new TKwtrue.init_tk(location) - end - if accept_token == 46 then - return new TKwfalse.init_tk(location) - end - if accept_token == 47 then - return new TKwnull.init_tk(location) - end - if accept_token == 48 then - return new TKwas.init_tk(location) - end - if accept_token == 49 then - return new TKwnullable.init_tk(location) - end - if accept_token == 50 then - return new TKwisset.init_tk(location) - end - if accept_token == 51 then - return new TKwlabel.init_tk(location) - end - if accept_token == 52 then - return new TKwdebug.init_tk(location) - end - if accept_token == 53 then - return new TOpar.init_tk(location) - end - if accept_token == 54 then - return new TCpar.init_tk(location) - end - if accept_token == 55 then - return new TObra.init_tk(location) - end - if accept_token == 56 then - return new TCbra.init_tk(location) - end - if accept_token == 57 then - return new TComma.init_tk(location) - end - if accept_token == 58 then - return new TColumn.init_tk(location) - end - if accept_token == 59 then - return new TQuad.init_tk(location) - end - if accept_token == 60 then - return new TAssign.init_tk(location) - end - if accept_token == 61 then - return new TPluseq.init_tk(location) - end - if accept_token == 62 then - return new TMinuseq.init_tk(location) - end - if accept_token == 63 then - return new TDotdotdot.init_tk(location) - end - if accept_token == 64 then - return new TDotdot.init_tk(location) - end - if accept_token == 65 then - return new TDot.init_tk(location) - end - if accept_token == 66 then - return new TPlus.init_tk(location) - end - if accept_token == 67 then - return new TMinus.init_tk(location) - end - if accept_token == 68 then - return new TStar.init_tk(location) - end - if accept_token == 69 then - return new TSlash.init_tk(location) - end - if accept_token == 70 then - return new TPercent.init_tk(location) - end - if accept_token == 71 then - return new TEq.init_tk(location) - end - if accept_token == 72 then - return new TNe.init_tk(location) - end - if accept_token == 73 then - return new TLt.init_tk(location) - end - if accept_token == 74 then - return new TLe.init_tk(location) - end - if accept_token == 75 then - return new TLl.init_tk(location) - end - if accept_token == 76 then - return new TGt.init_tk(location) - end - if accept_token == 77 then - return new TGe.init_tk(location) - end - if accept_token == 78 then - return new TGg.init_tk(location) - end - if accept_token == 79 then - return new TStarship.init_tk(location) - end - if accept_token == 80 then - return new TBang.init_tk(location) - end - if accept_token == 81 then - return new TAt.init_tk(location) - end - if accept_token == 82 then - return new TClassid.init_tk(location) - end - if accept_token == 83 then - return new TId.init_tk(location) - end - if accept_token == 84 then - return new TAttrid.init_tk(location) - end - if accept_token == 85 then - return new TNumber.init_tk(location) - end - if accept_token == 86 then - return new TFloat.init_tk(location) - end - if accept_token == 87 then - return new TString.init_tk(location) - end - if accept_token == 88 then - return new TStartString.init_tk(location) - end - if accept_token == 89 then - return new TMidString.init_tk(location) - end - if accept_token == 90 then - return new TEndString.init_tk(location) - end - if accept_token == 91 then - return new TChar.init_tk(location) - end - if accept_token == 92 then - return new TBadString.init_tk(location) - end - if accept_token == 93 then - return new TBadChar.init_tk(location) - end - if accept_token == 94 then - return new TExternCodeSegment.init_tk(location) - end - else - _stream_pos = sp - var location = new Location(_file, start_line + 1, start_line + 1, start_pos + 1, start_pos + 1) - if sp > start_stream_pos then - var text = string.substring(start_stream_pos, sp-start_stream_pos) - var token = new ALexerError.init_lexer_error("Syntax error: unknown token {text}.", location, text) - return token - else - var token = new EOF.init_tk(location) - return token - end - end - end + if accept_token == 2 then + return new TComment.init_tk(location) + end + if accept_token == 3 then + return new TKwpackage.init_tk(location) + end + if accept_token == 4 then + return new TKwmodule.init_tk(location) + end + if accept_token == 5 then + return new TKwimport.init_tk(location) + end + if accept_token == 6 then + return new TKwclass.init_tk(location) + end + if accept_token == 7 then + return new TKwabstract.init_tk(location) + end + if accept_token == 8 then + return new TKwinterface.init_tk(location) + end + if accept_token == 9 then + return new TKwenum.init_tk(location) + end + if accept_token == 10 then + return new TKwend.init_tk(location) + end + if accept_token == 11 then + return new TKwmeth.init_tk(location) + end + if accept_token == 12 then + return new TKwtype.init_tk(location) + end + if accept_token == 13 then + return new TKwinit.init_tk(location) + end + if accept_token == 14 then + return new TKwredef.init_tk(location) + end + if accept_token == 15 then + return new TKwis.init_tk(location) + end + if accept_token == 16 then + return new TKwdo.init_tk(location) + end + if accept_token == 17 then + return new TKwvar.init_tk(location) + end + if accept_token == 18 then + return new TKwextern.init_tk(location) + end + if accept_token == 19 then + return new TKwpublic.init_tk(location) + end + if accept_token == 20 then + return new TKwprotected.init_tk(location) + end + if accept_token == 21 then + return new TKwprivate.init_tk(location) + end + if accept_token == 22 then + return new TKwintrude.init_tk(location) + end + if accept_token == 23 then + return new TKwif.init_tk(location) + end + if accept_token == 24 then + return new TKwthen.init_tk(location) + end + if accept_token == 25 then + return new TKwelse.init_tk(location) + end + if accept_token == 26 then + return new TKwwhile.init_tk(location) + end + if accept_token == 27 then + return new TKwloop.init_tk(location) + end + if accept_token == 28 then + return new TKwfor.init_tk(location) + end + if accept_token == 29 then + return new TKwin.init_tk(location) + end + if accept_token == 30 then + return new TKwand.init_tk(location) + end + if accept_token == 31 then + return new TKwor.init_tk(location) + end + if accept_token == 32 then + return new TKwnot.init_tk(location) + end + if accept_token == 33 then + return new TKwimplies.init_tk(location) + end + if accept_token == 34 then + return new TKwreturn.init_tk(location) + end + if accept_token == 35 then + return new TKwcontinue.init_tk(location) + end + if accept_token == 36 then + return new TKwbreak.init_tk(location) + end + if accept_token == 37 then + return new TKwabort.init_tk(location) + end + if accept_token == 38 then + return new TKwassert.init_tk(location) + end + if accept_token == 39 then + return new TKwnew.init_tk(location) + end + if accept_token == 40 then + return new TKwisa.init_tk(location) + end + if accept_token == 41 then + return new TKwonce.init_tk(location) + end + if accept_token == 42 then + return new TKwsuper.init_tk(location) + end + if accept_token == 43 then + return new TKwself.init_tk(location) + end + if accept_token == 44 then + return new TKwtrue.init_tk(location) + end + if accept_token == 45 then + return new TKwfalse.init_tk(location) + end + if accept_token == 46 then + return new TKwnull.init_tk(location) + end + if accept_token == 47 then + return new TKwas.init_tk(location) + end + if accept_token == 48 then + return new TKwnullable.init_tk(location) + end + if accept_token == 49 then + return new TKwisset.init_tk(location) + end + if accept_token == 50 then + return new TKwlabel.init_tk(location) + end + if accept_token == 51 then + return new TKwwith.init_tk(location) + end + if accept_token == 52 then + return new TKwdebug.init_tk(location) + end + if accept_token == 53 then + return new TOpar.init_tk(location) + end + if accept_token == 54 then + return new TCpar.init_tk(location) + end + if accept_token == 55 then + return new TObra.init_tk(location) + end + if accept_token == 56 then + return new TCbra.init_tk(location) + end + if accept_token == 57 then + return new TComma.init_tk(location) + end + if accept_token == 58 then + return new TColumn.init_tk(location) + end + if accept_token == 59 then + return new TQuad.init_tk(location) + end + if accept_token == 60 then + return new TAssign.init_tk(location) + end + if accept_token == 61 then + return new TPluseq.init_tk(location) + end + if accept_token == 62 then + return new TMinuseq.init_tk(location) + end + if accept_token == 63 then + return new TDotdotdot.init_tk(location) + end + if accept_token == 64 then + return new TDotdot.init_tk(location) + end + if accept_token == 65 then + return new TDot.init_tk(location) + end + if accept_token == 66 then + return new TPlus.init_tk(location) + end + if accept_token == 67 then + return new TMinus.init_tk(location) + end + if accept_token == 68 then + return new TStar.init_tk(location) + end + if accept_token == 69 then + return new TStarstar.init_tk(location) + end + if accept_token == 70 then + return new TSlash.init_tk(location) + end + if accept_token == 71 then + return new TPercent.init_tk(location) + end + if accept_token == 72 then + return new TEq.init_tk(location) + end + if accept_token == 73 then + return new TNe.init_tk(location) + end + if accept_token == 74 then + return new TLt.init_tk(location) + end + if accept_token == 75 then + return new TLe.init_tk(location) + end + if accept_token == 76 then + return new TLl.init_tk(location) + end + if accept_token == 77 then + return new TGt.init_tk(location) + end + if accept_token == 78 then + return new TGe.init_tk(location) + end + if accept_token == 79 then + return new TGg.init_tk(location) + end + if accept_token == 80 then + return new TStarship.init_tk(location) + end + if accept_token == 81 then + return new TBang.init_tk(location) + end + if accept_token == 82 then + return new TAt.init_tk(location) + end + if accept_token == 83 then + return new TClassid.init_tk(location) + end + if accept_token == 84 then + return new TId.init_tk(location) + end + if accept_token == 85 then + return new TAttrid.init_tk(location) + end + if accept_token == 86 then + return new TNumber.init_tk(location) + end + if accept_token == 87 then + return new THexNumber.init_tk(location) + end + if accept_token == 88 then + return new TFloat.init_tk(location) + end + if accept_token == 89 then + return new TString.init_tk(location) + end + if accept_token == 90 then + return new TStartString.init_tk(location) + end + if accept_token == 91 then + return new TMidString.init_tk(location) + end + if accept_token == 92 then + return new TEndString.init_tk(location) + end + if accept_token == 93 then + return new TChar.init_tk(location) + end + if accept_token == 94 then + return new TBadString.init_tk(location) + end + if accept_token == 95 then + return new TBadChar.init_tk(location) + end + if accept_token == 96 then + return new TExternCodeSegment.init_tk(location) end + abort # unknown token index `accept_token` end end