X-Git-Url: http://nitlanguage.org diff --git a/src/parser/lexer.nit b/src/parser/lexer.nit index d226006..1805e58 100644 --- a/src/parser/lexer.nit +++ b/src/parser/lexer.nit @@ -1,25 +1,11 @@ # Lexer and its tokens. # This file was generated by SableCC (http://www.sablecc.org/). -package 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 - - fun parser_index: Int is abstract -end - redef class TEol redef fun parser_index: Int do @@ -44,7 +30,7 @@ redef class TComment end end -redef class TKwmodule +redef class TKwpackage redef fun parser_index: Int do return 2 @@ -56,7 +42,7 @@ redef class TKwmodule end end -redef class TKwimport +redef class TKwmodule redef fun parser_index: Int do return 3 @@ -68,7 +54,7 @@ redef class TKwimport end end -redef class TKwclass +redef class TKwimport redef fun parser_index: Int do return 4 @@ -80,7 +66,7 @@ redef class TKwclass end end -redef class TKwabstract +redef class TKwclass redef fun parser_index: Int do return 5 @@ -92,7 +78,7 @@ redef class TKwabstract end end -redef class TKwinterface +redef class TKwabstract redef fun parser_index: Int do return 6 @@ -104,7 +90,7 @@ redef class TKwinterface end end -redef class TKwenum +redef class TKwinterface redef fun parser_index: Int do return 7 @@ -116,7 +102,7 @@ redef class TKwenum end end -redef class TKwspecial +redef class TKwenum redef fun parser_index: Int do return 8 @@ -212,7 +198,7 @@ redef class TKwdo end end -redef class TKwreadable +redef class TKwvar redef fun parser_index: Int do return 16 @@ -224,7 +210,7 @@ redef class TKwreadable end end -redef class TKwwritable +redef class TKwextern redef fun parser_index: Int do return 17 @@ -236,7 +222,7 @@ redef class TKwwritable end end -redef class TKwvar +redef class TKwpublic redef fun parser_index: Int do return 18 @@ -248,7 +234,7 @@ redef class TKwvar end end -redef class TKwintern +redef class TKwprotected redef fun parser_index: Int do return 19 @@ -260,7 +246,7 @@ redef class TKwintern end end -redef class TKwextern +redef class TKwprivate redef fun parser_index: Int do return 20 @@ -272,7 +258,7 @@ redef class TKwextern end end -redef class TKwprotected +redef class TKwintrude redef fun parser_index: Int do return 21 @@ -284,7 +270,7 @@ redef class TKwprotected end end -redef class TKwprivate +redef class TKwif redef fun parser_index: Int do return 22 @@ -296,7 +282,7 @@ redef class TKwprivate end end -redef class TKwintrude +redef class TKwthen redef fun parser_index: Int do return 23 @@ -308,7 +294,7 @@ redef class TKwintrude end end -redef class TKwif +redef class TKwelse redef fun parser_index: Int do return 24 @@ -320,7 +306,7 @@ redef class TKwif end end -redef class TKwthen +redef class TKwwhile redef fun parser_index: Int do return 25 @@ -332,7 +318,7 @@ redef class TKwthen end end -redef class TKwelse +redef class TKwloop redef fun parser_index: Int do return 26 @@ -344,7 +330,7 @@ redef class TKwelse end end -redef class TKwwhile +redef class TKwfor redef fun parser_index: Int do return 27 @@ -356,7 +342,7 @@ redef class TKwwhile end end -redef class TKwloop +redef class TKwin redef fun parser_index: Int do return 28 @@ -368,7 +354,7 @@ redef class TKwloop end end -redef class TKwfor +redef class TKwand redef fun parser_index: Int do return 29 @@ -380,7 +366,7 @@ redef class TKwfor end end -redef class TKwin +redef class TKwor redef fun parser_index: Int do return 30 @@ -392,7 +378,7 @@ redef class TKwin end end -redef class TKwand +redef class TKwnot redef fun parser_index: Int do return 31 @@ -404,7 +390,7 @@ redef class TKwand end end -redef class TKwor +redef class TKwimplies redef fun parser_index: Int do return 32 @@ -416,7 +402,7 @@ redef class TKwor end end -redef class TKwnot +redef class TKwreturn redef fun parser_index: Int do return 33 @@ -428,7 +414,7 @@ redef class TKwnot end end -redef class TKwreturn +redef class TKwcontinue redef fun parser_index: Int do return 34 @@ -440,7 +426,7 @@ redef class TKwreturn end end -redef class TKwcontinue +redef class TKwbreak redef fun parser_index: Int do return 35 @@ -452,7 +438,7 @@ redef class TKwcontinue end end -redef class TKwbreak +redef class TKwabort redef fun parser_index: Int do return 36 @@ -464,7 +450,7 @@ redef class TKwbreak end end -redef class TKwabort +redef class TKwassert redef fun parser_index: Int do return 37 @@ -476,7 +462,7 @@ redef class TKwabort end end -redef class TKwassert +redef class TKwnew redef fun parser_index: Int do return 38 @@ -488,7 +474,7 @@ redef class TKwassert end end -redef class TKwnew +redef class TKwisa redef fun parser_index: Int do return 39 @@ -500,7 +486,7 @@ redef class TKwnew end end -redef class TKwisa +redef class TKwonce redef fun parser_index: Int do return 40 @@ -512,7 +498,7 @@ redef class TKwisa end end -redef class TKwonce +redef class TKwsuper redef fun parser_index: Int do return 41 @@ -524,7 +510,7 @@ redef class TKwonce end end -redef class TKwsuper +redef class TKwself redef fun parser_index: Int do return 42 @@ -536,7 +522,7 @@ redef class TKwsuper end end -redef class TKwself +redef class TKwtrue redef fun parser_index: Int do return 43 @@ -548,7 +534,7 @@ redef class TKwself end end -redef class TKwtrue +redef class TKwfalse redef fun parser_index: Int do return 44 @@ -560,7 +546,7 @@ redef class TKwtrue end end -redef class TKwfalse +redef class TKwnull redef fun parser_index: Int do return 45 @@ -572,7 +558,7 @@ redef class TKwfalse end end -redef class TKwnull +redef class TKwas redef fun parser_index: Int do return 46 @@ -584,7 +570,7 @@ redef class TKwnull end end -redef class TKwas +redef class TKwnullable redef fun parser_index: Int do return 47 @@ -596,7 +582,7 @@ redef class TKwas end end -redef class TKwnullable +redef class TKwisset redef fun parser_index: Int do return 48 @@ -608,7 +594,7 @@ redef class TKwnullable end end -redef class TKwisset +redef class TKwlabel redef fun parser_index: Int do return 49 @@ -620,7 +606,7 @@ redef class TKwisset end end -redef class TKwlabel +redef class TKwwith redef fun parser_index: Int do return 50 @@ -836,7 +822,7 @@ redef class TStar end end -redef class TSlash +redef class TStarstar redef fun parser_index: Int do return 68 @@ -848,7 +834,7 @@ redef class TSlash end end -redef class TPercent +redef class TSlash redef fun parser_index: Int do return 69 @@ -860,7 +846,7 @@ redef class TPercent end end -redef class TEq +redef class TPercent redef fun parser_index: Int do return 70 @@ -872,7 +858,7 @@ redef class TEq end end -redef class TNe +redef class TEq redef fun parser_index: Int do return 71 @@ -884,7 +870,7 @@ redef class TNe end end -redef class TLt +redef class TNe redef fun parser_index: Int do return 72 @@ -896,7 +882,7 @@ redef class TLt end end -redef class TLe +redef class TLt redef fun parser_index: Int do return 73 @@ -908,7 +894,7 @@ redef class TLe end end -redef class TLl +redef class TLe redef fun parser_index: Int do return 74 @@ -920,7 +906,7 @@ redef class TLl end end -redef class TGt +redef class TLl redef fun parser_index: Int do return 75 @@ -932,7 +918,7 @@ redef class TGt end end -redef class TGe +redef class TGt redef fun parser_index: Int do return 76 @@ -944,7 +930,7 @@ redef class TGe end end -redef class TGg +redef class TGe redef fun parser_index: Int do return 77 @@ -956,7 +942,7 @@ redef class TGg end end -redef class TStarship +redef class TGg redef fun parser_index: Int do return 78 @@ -968,7 +954,7 @@ redef class TStarship end end -redef class TBang +redef class TStarship redef fun parser_index: Int do return 79 @@ -980,7 +966,7 @@ redef class TBang end end -redef class TClassid +redef class TBang redef fun parser_index: Int do return 80 @@ -992,7 +978,7 @@ redef class TClassid end end -redef class TId +redef class TAt redef fun parser_index: Int do return 81 @@ -1004,7 +990,7 @@ redef class TId end end -redef class TAttrid +redef class TClassid redef fun parser_index: Int do return 82 @@ -1016,7 +1002,7 @@ redef class TAttrid end end -redef class TNumber +redef class TId redef fun parser_index: Int do return 83 @@ -1028,7 +1014,7 @@ redef class TNumber end end -redef class TFloat +redef class TAttrid redef fun parser_index: Int do return 84 @@ -1040,7 +1026,7 @@ redef class TFloat end end -redef class TChar +redef class TNumber redef fun parser_index: Int do return 85 @@ -1052,7 +1038,7 @@ redef class TChar end end -redef class TString +redef class THexNumber redef fun parser_index: Int do return 86 @@ -1064,7 +1050,7 @@ redef class TString end end -redef class TStartString +redef class TFloat redef fun parser_index: Int do return 87 @@ -1076,7 +1062,7 @@ redef class TStartString end end -redef class TMidString +redef class TString redef fun parser_index: Int do return 88 @@ -1088,7 +1074,7 @@ redef class TMidString end end -redef class TEndString +redef class TStartString redef fun parser_index: Int do return 89 @@ -1100,7 +1086,7 @@ redef class TEndString end end -redef class TBadChar +redef class TMidString redef fun parser_index: Int do return 90 @@ -1112,7 +1098,7 @@ redef class TBadChar end end -redef class TBadString +redef class TEndString redef fun parser_index: Int do return 91 @@ -1124,474 +1110,354 @@ redef class TBadString end end - -redef class EOF +redef class TChar redef fun parser_index: Int do return 92 end - init(loc: Location) + init init_tk(loc: Location) do - _text = "" _location = loc end end -redef class AError - readable var _message: String +redef class TBadString + redef fun parser_index: Int + do + return 93 + end - init init_error(message: String, loc: Location) + init init_tk(loc: Location) do - init(loc) - _message = message + _location = loc end end +redef class TBadChar + redef fun parser_index: Int + do + return 94 + 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 + init init_tk(loc: Location) + do + _location = loc + end +end - # Current column in the input stream - var _pos: Int = 0 +redef class TExternCodeSegment + redef fun parser_index: Int + do + return 95 + end - # Was the last character a cariage-return? - var _cr: Bool = false + init init_tk(loc: Location) + do + _location = loc + end +end - # 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 +redef class EOF + redef fun parser_index: Int + do + return 96 + end +end - # Give the next token (but do not consume it) - fun peek: Token +redef class Lexer + redef fun make_token(accept_token, location) do - while _token == null do - _token = get_token + if accept_token == 1 then + return new TEol.init_tk(location) end - return _token.as(not null) - end - - # Give and consume the next token - fun next: Token - do - var result = _token - while result == null do - result = get_token + if accept_token == 2 then + return new TComment.init_tk(location) end - _token = null - return result - end - - # Get a token, or null if it is discarded - private 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 TKwspecial.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 TKwreadable.init_tk(location) - end - if accept_token == 18 then - return new TKwwritable.init_tk(location) - end - if accept_token == 19 then - return new TKwvar.init_tk(location) - end - if accept_token == 20 then - return new TKwintern.init_tk(location) - end - if accept_token == 21 then - return new TKwextern.init_tk(location) - end - if accept_token == 22 then - return new TKwprotected.init_tk(location) - end - if accept_token == 23 then - return new TKwprivate.init_tk(location) - end - if accept_token == 24 then - return new TKwintrude.init_tk(location) - end - if accept_token == 25 then - return new TKwif.init_tk(location) - end - if accept_token == 26 then - return new TKwthen.init_tk(location) - end - if accept_token == 27 then - return new TKwelse.init_tk(location) - end - if accept_token == 28 then - return new TKwwhile.init_tk(location) - end - if accept_token == 29 then - return new TKwloop.init_tk(location) - end - if accept_token == 30 then - return new TKwfor.init_tk(location) - end - if accept_token == 31 then - return new TKwin.init_tk(location) - end - if accept_token == 32 then - return new TKwand.init_tk(location) - end - if accept_token == 33 then - return new TKwor.init_tk(location) - end - if accept_token == 34 then - return new TKwnot.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 TClassid.init_tk(location) - end - if accept_token == 82 then - return new TId.init_tk(location) - end - if accept_token == 83 then - return new TAttrid.init_tk(location) - end - if accept_token == 84 then - return new TNumber.init_tk(location) - end - if accept_token == 85 then - return new TFloat.init_tk(location) - end - if accept_token == 86 then - return new TChar.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 TBadChar.init_tk(location) - end - if accept_token == 92 then - return new TBadString.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 AError.init_error("Syntax error: unknown token {text}.", location) - return token - else - var token = new EOF(location) - return token - end - end - 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