X-Git-Url: http://nitlanguage.org diff --git a/src/parser/lexer.nit b/src/parser/lexer.nit index 158a76f..efad425 100644 --- a/src/parser/lexer.nit +++ b/src/parser/lexer.nit @@ -1,18 +1,10 @@ # Lexer and its tokens. # This file was generated by SableCC (http://www.sablecc.org/). -package lexer +module lexer is generated, no_warning("missing-doc") intrude import parser_nodes - -redef class Token - readable var _text: String - - fun parser_index: Int is abstract - - redef fun to_s: String do - return "'{_text}'" - end -end +intrude import lexer_work +private import tables redef class TEol redef fun parser_index: Int @@ -20,9 +12,8 @@ redef class TEol return 0 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end @@ -33,9 +24,8 @@ redef class TComment return 1 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end @@ -48,12 +38,11 @@ redef class TKwpackage init init_tk(loc: Location) do - _text = once "package" _location = loc end end -redef class TKwimport +redef class TKwmodule redef fun parser_index: Int do return 3 @@ -61,12 +50,11 @@ redef class TKwimport init init_tk(loc: Location) do - _text = once "import" _location = loc end end -redef class TKwclass +redef class TKwimport redef fun parser_index: Int do return 4 @@ -74,12 +62,11 @@ redef class TKwclass init init_tk(loc: Location) do - _text = once "class" _location = loc end end -redef class TKwabstract +redef class TKwclass redef fun parser_index: Int do return 5 @@ -87,12 +74,11 @@ redef class TKwabstract init init_tk(loc: Location) do - _text = once "abstract" _location = loc end end -redef class TKwinterface +redef class TKwabstract redef fun parser_index: Int do return 6 @@ -100,12 +86,11 @@ redef class TKwinterface init init_tk(loc: Location) do - _text = once "interface" _location = loc end end -redef class TKwuniversal +redef class TKwinterface redef fun parser_index: Int do return 7 @@ -113,12 +98,11 @@ redef class TKwuniversal init init_tk(loc: Location) do - _text = once "universal" _location = loc end end -redef class TKwspecial +redef class TKwenum redef fun parser_index: Int do return 8 @@ -126,12 +110,11 @@ redef class TKwspecial init init_tk(loc: Location) do - _text = once "special" _location = loc end end -redef class TKwend +redef class TKwsubset redef fun parser_index: Int do return 9 @@ -139,12 +122,11 @@ redef class TKwend init init_tk(loc: Location) do - _text = once "end" _location = loc end end -redef class TKwmeth +redef class TKwend redef fun parser_index: Int do return 10 @@ -152,12 +134,11 @@ redef class TKwmeth init init_tk(loc: Location) do - _text = once "fun" _location = loc end end -redef class TKwtype +redef class TKwmeth redef fun parser_index: Int do return 11 @@ -165,12 +146,11 @@ redef class TKwtype init init_tk(loc: Location) do - _text = once "type" _location = loc end end -redef class TKwinit +redef class TKwtype redef fun parser_index: Int do return 12 @@ -178,12 +158,11 @@ redef class TKwinit init init_tk(loc: Location) do - _text = once "init" _location = loc end end -redef class TKwredef +redef class TKwinit redef fun parser_index: Int do return 13 @@ -191,12 +170,11 @@ redef class TKwredef init init_tk(loc: Location) do - _text = once "redef" _location = loc end end -redef class TKwis +redef class TKwredef redef fun parser_index: Int do return 14 @@ -204,12 +182,11 @@ redef class TKwis init init_tk(loc: Location) do - _text = once "is" _location = loc end end -redef class TKwdo +redef class TKwis redef fun parser_index: Int do return 15 @@ -217,12 +194,11 @@ redef class TKwdo init init_tk(loc: Location) do - _text = once "do" _location = loc end end -redef class TKwreadable +redef class TKwdo redef fun parser_index: Int do return 16 @@ -230,12 +206,11 @@ redef class TKwreadable init init_tk(loc: Location) do - _text = once "readable" _location = loc end end -redef class TKwwritable +redef class TKwvar redef fun parser_index: Int do return 17 @@ -243,12 +218,11 @@ redef class TKwwritable init init_tk(loc: Location) do - _text = once "writable" _location = loc end end -redef class TKwvar +redef class TKwextern redef fun parser_index: Int do return 18 @@ -256,12 +230,11 @@ redef class TKwvar init init_tk(loc: Location) do - _text = once "var" _location = loc end end -redef class TKwintern +redef class TKwpublic redef fun parser_index: Int do return 19 @@ -269,12 +242,11 @@ redef class TKwintern init init_tk(loc: Location) do - _text = once "intern" _location = loc end end -redef class TKwextern +redef class TKwprotected redef fun parser_index: Int do return 20 @@ -282,12 +254,11 @@ redef class TKwextern init init_tk(loc: Location) do - _text = once "extern" _location = loc end end -redef class TKwprotected +redef class TKwprivate redef fun parser_index: Int do return 21 @@ -295,12 +266,11 @@ redef class TKwprotected init init_tk(loc: Location) do - _text = once "protected" _location = loc end end -redef class TKwprivate +redef class TKwintrude redef fun parser_index: Int do return 22 @@ -308,12 +278,11 @@ redef class TKwprivate init init_tk(loc: Location) do - _text = once "private" _location = loc end end -redef class TKwintrude +redef class TKwif redef fun parser_index: Int do return 23 @@ -321,12 +290,11 @@ redef class TKwintrude init init_tk(loc: Location) do - _text = once "intrude" _location = loc end end -redef class TKwif +redef class TKwthen redef fun parser_index: Int do return 24 @@ -334,12 +302,11 @@ redef class TKwif init init_tk(loc: Location) do - _text = once "if" _location = loc end end -redef class TKwthen +redef class TKwelse redef fun parser_index: Int do return 25 @@ -347,12 +314,11 @@ redef class TKwthen init init_tk(loc: Location) do - _text = once "then" _location = loc end end -redef class TKwelse +redef class TKwwhile redef fun parser_index: Int do return 26 @@ -360,12 +326,11 @@ redef class TKwelse init init_tk(loc: Location) do - _text = once "else" _location = loc end end -redef class TKwwhile +redef class TKwloop redef fun parser_index: Int do return 27 @@ -373,12 +338,11 @@ redef class TKwwhile init init_tk(loc: Location) do - _text = once "while" _location = loc end end -redef class TKwloop +redef class TKwfor redef fun parser_index: Int do return 28 @@ -386,12 +350,11 @@ redef class TKwloop init init_tk(loc: Location) do - _text = once "loop" _location = loc end end -redef class TKwfor +redef class TKwin redef fun parser_index: Int do return 29 @@ -399,12 +362,11 @@ redef class TKwfor init init_tk(loc: Location) do - _text = once "for" _location = loc end end -redef class TKwin +redef class TKwand redef fun parser_index: Int do return 30 @@ -412,12 +374,11 @@ redef class TKwin init init_tk(loc: Location) do - _text = once "in" _location = loc end end -redef class TKwand +redef class TKwor redef fun parser_index: Int do return 31 @@ -425,12 +386,11 @@ redef class TKwand init init_tk(loc: Location) do - _text = once "and" _location = loc end end -redef class TKwor +redef class TKwnot redef fun parser_index: Int do return 32 @@ -438,12 +398,11 @@ redef class TKwor init init_tk(loc: Location) do - _text = once "or" _location = loc end end -redef class TKwnot +redef class TKwimplies redef fun parser_index: Int do return 33 @@ -451,7 +410,6 @@ redef class TKwnot init init_tk(loc: Location) do - _text = once "not" _location = loc end end @@ -464,7 +422,6 @@ redef class TKwreturn init init_tk(loc: Location) do - _text = once "return" _location = loc end end @@ -477,7 +434,6 @@ redef class TKwcontinue init init_tk(loc: Location) do - _text = once "continue" _location = loc end end @@ -490,7 +446,6 @@ redef class TKwbreak init init_tk(loc: Location) do - _text = once "break" _location = loc end end @@ -503,7 +458,6 @@ redef class TKwabort init init_tk(loc: Location) do - _text = once "abort" _location = loc end end @@ -516,7 +470,6 @@ redef class TKwassert init init_tk(loc: Location) do - _text = once "assert" _location = loc end end @@ -529,7 +482,6 @@ redef class TKwnew init init_tk(loc: Location) do - _text = once "new" _location = loc end end @@ -542,7 +494,6 @@ redef class TKwisa init init_tk(loc: Location) do - _text = once "isa" _location = loc end end @@ -555,7 +506,6 @@ redef class TKwonce init init_tk(loc: Location) do - _text = once "once" _location = loc end end @@ -568,7 +518,6 @@ redef class TKwsuper init init_tk(loc: Location) do - _text = once "super" _location = loc end end @@ -581,7 +530,6 @@ redef class TKwself init init_tk(loc: Location) do - _text = once "self" _location = loc end end @@ -594,7 +542,6 @@ redef class TKwtrue init init_tk(loc: Location) do - _text = once "true" _location = loc end end @@ -607,7 +554,6 @@ redef class TKwfalse init init_tk(loc: Location) do - _text = once "false" _location = loc end end @@ -620,7 +566,6 @@ redef class TKwnull init init_tk(loc: Location) do - _text = once "null" _location = loc end end @@ -633,7 +578,6 @@ redef class TKwas init init_tk(loc: Location) do - _text = once "as" _location = loc end end @@ -646,7 +590,6 @@ redef class TKwnullable init init_tk(loc: Location) do - _text = once "nullable" _location = loc end end @@ -659,7 +602,6 @@ redef class TKwisset init init_tk(loc: Location) do - _text = once "isset" _location = loc end end @@ -672,12 +614,11 @@ redef class TKwlabel init init_tk(loc: Location) do - _text = once "label" _location = loc end end -redef class TOpar +redef class TKwwith redef fun parser_index: Int do return 51 @@ -685,12 +626,11 @@ redef class TOpar init init_tk(loc: Location) do - _text = once "(" _location = loc end end -redef class TCpar +redef class TKwdebug redef fun parser_index: Int do return 52 @@ -698,12 +638,11 @@ redef class TCpar init init_tk(loc: Location) do - _text = once ")" _location = loc end end -redef class TObra +redef class TKwyield redef fun parser_index: Int do return 53 @@ -711,12 +650,11 @@ redef class TObra init init_tk(loc: Location) do - _text = once "[" _location = loc end end -redef class TCbra +redef class TKwcatch redef fun parser_index: Int do return 54 @@ -724,12 +662,11 @@ redef class TCbra init init_tk(loc: Location) do - _text = once "]" _location = loc end end -redef class TComma +redef class TOpar redef fun parser_index: Int do return 55 @@ -737,12 +674,11 @@ redef class TComma init init_tk(loc: Location) do - _text = once "," _location = loc end end -redef class TColumn +redef class TCpar redef fun parser_index: Int do return 56 @@ -750,12 +686,11 @@ redef class TColumn init init_tk(loc: Location) do - _text = once ":" _location = loc end end -redef class TQuad +redef class TObra redef fun parser_index: Int do return 57 @@ -763,12 +698,11 @@ redef class TQuad init init_tk(loc: Location) do - _text = once "::" _location = loc end end -redef class TAssign +redef class TCbra redef fun parser_index: Int do return 58 @@ -776,12 +710,11 @@ redef class TAssign init init_tk(loc: Location) do - _text = once "=" _location = loc end end -redef class TPluseq +redef class TComma redef fun parser_index: Int do return 59 @@ -789,12 +722,11 @@ redef class TPluseq init init_tk(loc: Location) do - _text = once "+=" _location = loc end end -redef class TMinuseq +redef class TColumn redef fun parser_index: Int do return 60 @@ -802,12 +734,11 @@ redef class TMinuseq init init_tk(loc: Location) do - _text = once "-=" _location = loc end end -redef class TDotdotdot +redef class TQuad redef fun parser_index: Int do return 61 @@ -815,12 +746,11 @@ redef class TDotdotdot init init_tk(loc: Location) do - _text = once "..." _location = loc end end -redef class TDotdot +redef class TAssign redef fun parser_index: Int do return 62 @@ -828,12 +758,11 @@ redef class TDotdot init init_tk(loc: Location) do - _text = once ".." _location = loc end end -redef class TDot +redef class TPluseq redef fun parser_index: Int do return 63 @@ -841,12 +770,11 @@ redef class TDot init init_tk(loc: Location) do - _text = once "." _location = loc end end -redef class TPlus +redef class TMinuseq redef fun parser_index: Int do return 64 @@ -854,12 +782,11 @@ redef class TPlus init init_tk(loc: Location) do - _text = once "+" _location = loc end end -redef class TMinus +redef class TStareq redef fun parser_index: Int do return 65 @@ -867,12 +794,11 @@ redef class TMinus init init_tk(loc: Location) do - _text = once "-" _location = loc end end -redef class TStar +redef class TSlasheq redef fun parser_index: Int do return 66 @@ -880,12 +806,11 @@ redef class TStar init init_tk(loc: Location) do - _text = once "*" _location = loc end end -redef class TSlash +redef class TPercenteq redef fun parser_index: Int do return 67 @@ -893,12 +818,11 @@ redef class TSlash init init_tk(loc: Location) do - _text = once "/" _location = loc end end -redef class TPercent +redef class TStarstareq redef fun parser_index: Int do return 68 @@ -906,12 +830,11 @@ redef class TPercent init init_tk(loc: Location) do - _text = once "%" _location = loc end end -redef class TEq +redef class TPipeeq redef fun parser_index: Int do return 69 @@ -919,12 +842,11 @@ redef class TEq init init_tk(loc: Location) do - _text = once "==" _location = loc end end -redef class TNe +redef class TCareteq redef fun parser_index: Int do return 70 @@ -932,12 +854,11 @@ redef class TNe init init_tk(loc: Location) do - _text = once "!=" _location = loc end end -redef class TLt +redef class TAmpeq redef fun parser_index: Int do return 71 @@ -945,12 +866,11 @@ redef class TLt init init_tk(loc: Location) do - _text = once "<" _location = loc end end -redef class TLe +redef class TLleq redef fun parser_index: Int do return 72 @@ -958,12 +878,11 @@ redef class TLe init init_tk(loc: Location) do - _text = once "<=" _location = loc end end -redef class TGt +redef class TGgeq redef fun parser_index: Int do return 73 @@ -971,12 +890,11 @@ redef class TGt init init_tk(loc: Location) do - _text = once ">" _location = loc end end -redef class TGe +redef class TDotdotdot redef fun parser_index: Int do return 74 @@ -984,12 +902,11 @@ redef class TGe init init_tk(loc: Location) do - _text = once ">=" _location = loc end end -redef class TStarship +redef class TDotdot redef fun parser_index: Int do return 75 @@ -997,12 +914,11 @@ redef class TStarship init init_tk(loc: Location) do - _text = once "<=>" _location = loc end end -redef class TBang +redef class TDot redef fun parser_index: Int do return 76 @@ -1010,2317 +926,823 @@ redef class TBang init init_tk(loc: Location) do - _text = once "!" _location = loc end end -redef class TClassid +redef class TPlus redef fun parser_index: Int do return 77 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TId +redef class TMinus redef fun parser_index: Int do return 78 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TAttrid +redef class TStar redef fun parser_index: Int do return 79 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TNumber +redef class TStarstar redef fun parser_index: Int do return 80 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TFloat +redef class TSlash redef fun parser_index: Int do return 81 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TChar +redef class TPercent redef fun parser_index: Int do return 82 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TString +redef class TPipe redef fun parser_index: Int do return 83 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TStartString +redef class TCaret redef fun parser_index: Int do return 84 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TMidString +redef class TAmp redef fun parser_index: Int do return 85 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end -redef class TEndString +redef class TTilde redef fun parser_index: Int do return 86 end - init init_tk(text: String, loc: Location) + init init_tk(loc: Location) do - _text = text _location = loc end end - -redef class EOF +redef class TEq redef fun parser_index: Int do return 87 end - init(loc: Location) + init init_tk(loc: Location) do - _text = "" _location = loc end end -redef class AError - readable var _message: String +redef class TNe + redef fun parser_index: Int + do + return 88 + end - init init_error(message: String, loc: Location) + init init_tk(loc: Location) do - init(loc) - _message = message + _location = loc end end +redef class TLt + redef fun parser_index: Int + do + return 89 + end -# The lexer extract NIT tokens from an input stream. -# It is better user with the Parser -class Lexer - # Last peeked token - var _token: nullable Token + init init_tk(loc: Location) + do + _location = loc + end +end - # Lexer current state - var _state: Int = 0 +redef class TLe + redef fun parser_index: Int + do + return 90 + end - # Name of the stream (as given to tokens) - readable var _filename: String + init init_tk(loc: Location) + do + _location = loc + end +end - # Input stream where character are read - var _stream: IStream +redef class TLl + redef fun parser_index: Int + do + return 91 + end - # Pushback buffer to store unread character - var _stream_buf: Buffer + init init_tk(loc: Location) + do + _location = loc + end +end - # Number of character stored in the pushback buffer - var _stream_pos: Int +redef class TGt + redef fun parser_index: Int + do + return 92 + end - # 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 TGe + redef fun parser_index: Int + do + return 93 + end - # Was the last character a cariage-return? - var _cr: Bool = false + init init_tk(loc: Location) + do + _location = loc + end +end - # If the end of stream? - var _eof: Bool = false +redef class TGg + redef fun parser_index: Int + do + return 94 + end - # Current working text read from the input stream - var _text: Buffer + init init_tk(loc: Location) + do + _location = loc + end +end - # Constante state values - private fun state_initial: Int do return 0 end +redef class TStarship + redef fun parser_index: Int + do + return 95 + end - # Create a new lexer for a stream (and a name) - init(stream: IStream, fname: String) - do - _filename = fname - _text = new Buffer - _stream = stream - _stream_pos = -1 - _stream_buf = new Buffer - build_goto_table - build_accept_table - end + init init_tk(loc: Location) + do + _location = loc + end +end - # Give the next token (but do not consume it) - fun peek: Token - do - while _token == null do - _token = get_token - end - return _token.as(not null) - end +redef class TBang + redef fun parser_index: Int + do + return 96 + end - # Give and consume the next token - fun next: Token - do - var result = _token - while result == null do - result = get_token - end - _token = null - return result.as(not null) - end + init init_tk(loc: Location) + do + _location = loc + end +end - # Get a token, or null if it is discarded - private fun get_token: nullable Token - do - var dfa_state = 0 - - var start_pos = _pos - var start_line = _line - - var accept_state = -1 - var accept_token = -1 - var accept_length = -1 - var accept_pos = -1 - var accept_line = -1 - - var goto_table = _goto_table[_state] - var accept = _accept_table[_state] - var text = _text - text.clear - - 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 - else - line = line + 1 - pos = 0 - end - else if c == 13 then - line = line + 1 - pos = 0 - cr = true - else - pos = pos + 1 - cr = false - end - - text.add(c.ascii) - - loop - var old_state = dfa_state - if dfa_state < -1 then - old_state = -2 - dfa_state - end - - dfa_state = -1 - - var tmp0 = goto_table[old_state] - var low = 0 - 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 - if dfa_state > -2 then break - end - - _cr = cr - _line = line - _pos = pos - else - dfa_state = -1 - end - - if dfa_state >= 0 then - if accept[dfa_state] != -1 then - accept_state = dfa_state - accept_token = accept[dfa_state] - accept_length = text.length - accept_pos = _pos - accept_line = _line - end - else - if accept_state != -1 then - if accept_token == 0 then - 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 - 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(location) - return token - end - end - end - if false then break # FIXME remove once unreach loop exits are in c_src - end - return null # FIXME remove once unreach loop exits are in c_src - end +redef class TQuest + redef fun parser_index: Int + do + return 97 + end - # Read the next character. - # The character is read from the stream of from the pushback buffer. - private fun get_char: Int - do - if _eof then - return -1 - end + init init_tk(loc: Location) + do + _location = loc + end +end - var result: Int +redef class TAt + redef fun parser_index: Int + do + return 98 + end - var sp = _stream_pos - if sp >= 0 then - var res = _stream_buf[_stream_pos] - _stream_pos = sp - 1 - result = res.ascii - else - result = _stream.read_char - end + init init_tk(loc: Location) + do + _location = loc + end +end - if result == -1 then - _eof = true - end +redef class TSemi + redef fun parser_index: Int + do + return 99 + end - return result - end + init init_tk(loc: Location) + do + _location = loc + end +end - # Unread some characters. - # Unread characters are stored in the pushback buffer. - private fun push_back(accept_length: Int) - do - var length = _text.length - var i = length - 1 - while i >= accept_length do - _eof = false - _stream_pos = _stream_pos + 1 - _stream_buf[_stream_pos] = _text[i] - i = i - 1 - end - end +redef class TClassid + redef fun parser_index: Int + do + return 100 + end - 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, 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] - ] - ] - ] - end + init init_tk(loc: Location) + do + _location = loc + end +end - private fun nil_array: Array[Array[Int]] - do - return once new Array[Array[Int]] - end +redef class TId + redef fun parser_index: Int + do + return 101 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TAttrid + redef fun parser_index: Int + do + return 102 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TInteger + redef fun parser_index: Int + do + return 103 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TFloat + redef fun parser_index: Int + do + return 104 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TString + redef fun parser_index: Int + do + return 105 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TStartString + redef fun parser_index: Int + do + return 106 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TMidString + redef fun parser_index: Int + do + return 107 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TEndString + redef fun parser_index: Int + do + return 108 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TChar + redef fun parser_index: Int + do + return 109 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TBadString + redef fun parser_index: Int + do + return 110 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TBadTString + redef fun parser_index: Int + do + return 111 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TBadChar + redef fun parser_index: Int + do + return 112 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + +redef class TExternCodeSegment + redef fun parser_index: Int + do + return 113 + end + + init init_tk(loc: Location) + do + _location = loc + end +end - var _accept_table: Array[Array[Int]] - private fun build_accept_table do - _accept_table = once [ - [ - -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 +redef class TBadExtern + redef fun parser_index: Int + do + return 114 + end + + init init_tk(loc: Location) + do + _location = loc + end +end + + +redef class EOF + redef fun parser_index: Int + do + return 115 + end +end - ] - ] +redef class Lexer + redef fun make_token(accept_token, location) + do + 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 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 TKwsubset.init_tk(location) + end + if accept_token == 11 then + return new TKwend.init_tk(location) + end + if accept_token == 12 then + return new TKwmeth.init_tk(location) + end + if accept_token == 13 then + return new TKwtype.init_tk(location) + end + if accept_token == 14 then + return new TKwinit.init_tk(location) + end + if accept_token == 15 then + return new TKwredef.init_tk(location) + end + if accept_token == 16 then + return new TKwis.init_tk(location) + end + if accept_token == 17 then + return new TKwdo.init_tk(location) + end + if accept_token == 18 then + return new TKwvar.init_tk(location) + end + if accept_token == 19 then + return new TKwextern.init_tk(location) + end + if accept_token == 20 then + return new TKwpublic.init_tk(location) + end + if accept_token == 21 then + return new TKwprotected.init_tk(location) + end + if accept_token == 22 then + return new TKwprivate.init_tk(location) + end + if accept_token == 23 then + return new TKwintrude.init_tk(location) + end + if accept_token == 24 then + return new TKwif.init_tk(location) + end + if accept_token == 25 then + return new TKwthen.init_tk(location) + end + if accept_token == 26 then + return new TKwelse.init_tk(location) + end + if accept_token == 27 then + return new TKwwhile.init_tk(location) + end + if accept_token == 28 then + return new TKwloop.init_tk(location) + end + if accept_token == 29 then + return new TKwfor.init_tk(location) + end + if accept_token == 30 then + return new TKwin.init_tk(location) + end + if accept_token == 31 then + return new TKwand.init_tk(location) + end + if accept_token == 32 then + return new TKwor.init_tk(location) + end + if accept_token == 33 then + return new TKwnot.init_tk(location) + end + if accept_token == 34 then + return new TKwimplies.init_tk(location) + end + if accept_token == 35 then + return new TKwreturn.init_tk(location) + end + if accept_token == 36 then + return new TKwcontinue.init_tk(location) + end + if accept_token == 37 then + return new TKwbreak.init_tk(location) + end + if accept_token == 38 then + return new TKwabort.init_tk(location) + end + if accept_token == 39 then + return new TKwassert.init_tk(location) + end + if accept_token == 40 then + return new TKwnew.init_tk(location) + end + if accept_token == 41 then + return new TKwisa.init_tk(location) + end + if accept_token == 42 then + return new TKwonce.init_tk(location) + end + if accept_token == 43 then + return new TKwsuper.init_tk(location) + end + if accept_token == 44 then + return new TKwself.init_tk(location) + end + if accept_token == 45 then + return new TKwtrue.init_tk(location) + end + if accept_token == 46 then + return new TKwfalse.init_tk(location) + end + if accept_token == 47 then + return new TKwnull.init_tk(location) + end + if accept_token == 48 then + return new TKwas.init_tk(location) + end + if accept_token == 49 then + return new TKwnullable.init_tk(location) + end + if accept_token == 50 then + return new TKwisset.init_tk(location) + end + if accept_token == 51 then + return new TKwlabel.init_tk(location) + end + if accept_token == 52 then + return new TKwwith.init_tk(location) + end + if accept_token == 53 then + return new TKwdebug.init_tk(location) + end + if accept_token == 54 then + return new TKwyield.init_tk(location) + end + if accept_token == 55 then + return new TKwcatch.init_tk(location) + end + if accept_token == 56 then + return new TOpar.init_tk(location) + end + if accept_token == 57 then + return new TCpar.init_tk(location) + end + if accept_token == 58 then + return new TObra.init_tk(location) + end + if accept_token == 59 then + return new TCbra.init_tk(location) + end + if accept_token == 60 then + return new TComma.init_tk(location) + end + if accept_token == 61 then + return new TColumn.init_tk(location) + end + if accept_token == 62 then + return new TQuad.init_tk(location) + end + if accept_token == 63 then + return new TAssign.init_tk(location) + end + if accept_token == 64 then + return new TPluseq.init_tk(location) + end + if accept_token == 65 then + return new TMinuseq.init_tk(location) + end + if accept_token == 66 then + return new TStareq.init_tk(location) + end + if accept_token == 67 then + return new TSlasheq.init_tk(location) + end + if accept_token == 68 then + return new TPercenteq.init_tk(location) + end + if accept_token == 69 then + return new TStarstareq.init_tk(location) + end + if accept_token == 70 then + return new TPipeeq.init_tk(location) + end + if accept_token == 71 then + return new TCareteq.init_tk(location) + end + if accept_token == 72 then + return new TAmpeq.init_tk(location) + end + if accept_token == 73 then + return new TLleq.init_tk(location) + end + if accept_token == 74 then + return new TGgeq.init_tk(location) + end + if accept_token == 75 then + return new TDotdotdot.init_tk(location) + end + if accept_token == 76 then + return new TDotdot.init_tk(location) + end + if accept_token == 77 then + return new TDot.init_tk(location) + end + if accept_token == 78 then + return new TPlus.init_tk(location) + end + if accept_token == 79 then + return new TMinus.init_tk(location) + end + if accept_token == 80 then + return new TStar.init_tk(location) + end + if accept_token == 81 then + return new TStarstar.init_tk(location) + end + if accept_token == 82 then + return new TSlash.init_tk(location) + end + if accept_token == 83 then + return new TPercent.init_tk(location) + end + if accept_token == 84 then + return new TPipe.init_tk(location) + end + if accept_token == 85 then + return new TCaret.init_tk(location) + end + if accept_token == 86 then + return new TAmp.init_tk(location) + end + if accept_token == 87 then + return new TTilde.init_tk(location) + end + if accept_token == 88 then + return new TEq.init_tk(location) + end + if accept_token == 89 then + return new TNe.init_tk(location) + end + if accept_token == 90 then + return new TLt.init_tk(location) + end + if accept_token == 91 then + return new TLe.init_tk(location) + end + if accept_token == 92 then + return new TLl.init_tk(location) + end + if accept_token == 93 then + return new TGt.init_tk(location) + end + if accept_token == 94 then + return new TGe.init_tk(location) + end + if accept_token == 95 then + return new TGg.init_tk(location) + end + if accept_token == 96 then + return new TStarship.init_tk(location) + end + if accept_token == 97 then + return new TBang.init_tk(location) + end + if accept_token == 98 then + return new TQuest.init_tk(location) + end + if accept_token == 99 then + return new TAt.init_tk(location) + end + if accept_token == 100 then + return new TSemi.init_tk(location) + end + if accept_token == 101 then + return new TClassid.init_tk(location) + end + if accept_token == 102 then + return new TId.init_tk(location) + end + if accept_token == 103 then + return new TAttrid.init_tk(location) + end + if accept_token == 104 then + return new TInteger.init_tk(location) + end + if accept_token == 105 then + return new TFloat.init_tk(location) + end + if accept_token == 106 then + return new TString.init_tk(location) + end + if accept_token == 107 then + return new TStartString.init_tk(location) + end + if accept_token == 108 then + return new TMidString.init_tk(location) + end + if accept_token == 109 then + return new TEndString.init_tk(location) + end + if accept_token == 110 then + return new TChar.init_tk(location) + end + if accept_token == 111 then + return new TBadString.init_tk(location) + end + if accept_token == 112 then + return new TBadTString.init_tk(location) + end + if accept_token == 113 then + return new TBadChar.init_tk(location) + end + if accept_token == 114 then + return new TExternCodeSegment.init_tk(location) + end + if accept_token == 115 then + return new TBadExtern.init_tk(location) + end + abort # unknown token index `accept_token` end end