// QBJ JLEX Lexer input // Copyright 1999-2000 Toshihiro Horie // portions Copyright 1999 Regents of the University of California // see also lextail.txt and qbw.txt and lexop.txt import Sym.*; // definition of terminals returned by scanner import java_cup.runtime.*; // definition of scanner/parser interface /* semantic value of token returned by scanner */ final class TokenValue { public int lineBegin; public int charBegin; public String text; public String filename; TokenValue() { } TokenValue(String text, int lineBegin, int charBegin, String filename) { this.text = text; this.lineBegin = lineBegin; this.charBegin = charBegin; this.filename = filename; } public String toString() { return text; } } %% %implements java_cup.runtime.Scanner %function next_token %type java_cup.runtime.Symbol %{ private boolean handled_unterminated_string=false; private int eofyychar=0; private int state=0; %} %{ public String sourceFilename; %} %state sYYCOMMENT %state sYYSTRING %state sYYREMSTART %state sYYMETACMD2 %state sYYINCLUDE %state sYYFILESTR %eofval{ //System.out.println("eof"); //if ((state==UNTERMINATED_STRING)&&(!handled_unterminated_string)) //{ //handled_unterminated_string=true; //return new Symbol(Sym.error, // new TokenValue(yytext(), yyline, yychar, sourceFilename)); //} return new Symbol(Sym.EOF,null); %eofval} %line /* turn on line numbering of tokens */ %char /* turn on character position of tokens */ %full /* allow high bit characters 128-255 */ ANY=.|\n ALPHA=[A-Za-z] DIGIT=[0-9] CARET="^" ALPHA_NUMERIC={ALPHA}|{DIGIT} LINE_END=(\n(\r)?)|(\r(\n)?) WHITE_SPACE=[\ \t\f] GOOD_STRING=([^\"\r\n])* UNTERMINATED_STRING=([^\"])*{LINE_END} GOOD_FILESTR=([^\'\r\n])* UNFIN_FILESTR=([^\'])*{LINE_END} REM=(\'|"REM")({WHITE_SPACE})* COMMENTLINE=([^\n\r])* IDIV=\\ MONEY=("$")? IDENT={ALPHA}({ALPHA_NUMERIC})* INTNUM=({DIGIT})+ INTEGERVAR={IDENT}"%" LONGVAR={IDENT}"&" SINGLEVAR={IDENT}"!" DOUBLEVAR={IDENT}"#" STRINGVAR={IDENT}"$" HEXNUM=(&[hH]([0-9a-fA-F]+)("&")?) OCTNUM=(&[oO]([0-7]+)("&")?) LABEL=^(({IDENT}":")|({INTNUM})) INT1={INTNUM} INT2=("."{INTNUM}) INT3=({INTNUM}"."{INTNUM}) NUMBER={OCTNUM}|{HEXNUM}|([-+]?({INT1}|{INT2}|{INT3})((e|E){INTNUM})?("!"|"#"|"&")?) %% ({WHITE_SPACE})+ { /* do nothing **********************************/ /* Note: LABEL regexp is unused because JLex has */ /* nonstandard behavior for start-of-line character */ /* which is to discard the newline before it! */ } {LINE_END}|":" { return new Symbol(Sym.tNEWLINE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } \" { yybegin(sYYSTRING); } \"\" { return new Symbol(Sym.tSTRINGTEXT, new TokenValue("",yyline,yychar,sourceFilename)); } {UNTERMINATED_STRING} { System.err.println("Error: unterminated string on line "+(yyline+1)); return new Symbol(Sym.error, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {GOOD_STRING} { return new Symbol(Sym.tSTRINGTEXT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } \" { yybegin(YYINITIAL); } {REM} { yybegin(sYYREMSTART); /* note: this will allow REM$STATIC */ } "$" { yybegin(sYYMETACMD2); } [^$] { System.out.println("in comment mode at line "+(yyline+1)); yybegin(sYYCOMMENT); } {MONEY}"INCLUDE"({WHITE_SPACE})*":" { yybegin(sYYINCLUDE); return new Symbol(Sym.tMETAINCLUDE, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } {MONEY}"STATIC" { return new Symbol(Sym.tMETASTATIC, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } {MONEY}"DYNAMIC" { return new Symbol(Sym.tMETADYNAMIC, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } ({WHITE_SPACE})+ { /* do nothing */ } {LINE_END} { yybegin(YYINITIAL); return new Symbol(Sym.tNEWLINE, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } ":" { System.err.println("Warning: no executable statements should be placed on the same line as a $Metacommand."); } ({WHITE_SPACE})+ { /* do nothing */ } \' { yybegin(sYYFILESTR); } {LINE_END} { yybegin(YYINITIAL); return new Symbol(Sym.tNEWLINE, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } {UNFIN_FILESTR} { System.err.println("$Metacommand Error: unterminated include filename on line "+(yyline+1)); /*continues*/ return new Symbol(Sym.error, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } {GOOD_FILESTR} { return new Symbol(Sym.tINCLUDEFILE, new TokenValue(yytext(), yyline, yychar, sourceFilename)); } \' { yybegin(sYYMETACMD2); } {COMMENTLINE} { yybegin(YYINITIAL); } {CARET} { return new Symbol(Sym.tCARET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "END"({WHITE_SPACE})+"SELECT" { return new Symbol(Sym.tENDSELECT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "#" { return new Symbol(Sym.tPOUND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } ";" { return new Symbol(Sym.tSEMI, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "," { return new Symbol(Sym.tCOMMA, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "." { return new Symbol(Sym.tPERIOD, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "+" { return new Symbol(Sym.tPLUS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "-" { return new Symbol(Sym.tMINUS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "*" { return new Symbol(Sym.tTIMES, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "/" { return new Symbol(Sym.tDIVIDE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "(" { return new Symbol(Sym.tLPAREN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } ")" { return new Symbol(Sym.tRPAREN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "=" { return new Symbol(Sym.tASSIGN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "<>" { return new Symbol(Sym.tNE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } ">" { return new Symbol(Sym.tGT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "<" { return new Symbol(Sym.tLT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "<=" { return new Symbol(Sym.tLE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } ">=" { return new Symbol(Sym.tGE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } ":" { return new Symbol(Sym.tCOLON, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ABSOLUTE" { return new Symbol(Sym.tABSOLUTE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ABS" { return new Symbol(Sym.tABS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ACCESS" { return new Symbol(Sym.tACCESS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ALIAS" { return new Symbol(Sym.tALIAS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "AND" { return new Symbol(Sym.tAND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ANY" { return new Symbol(Sym.tANY, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "APPEND" { return new Symbol(Sym.tAPPEND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "AS" { return new Symbol(Sym.tAS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ASC" { return new Symbol(Sym.tASC, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ATN" { return new Symbol(Sym.tATN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "BASE" { return new Symbol(Sym.tBASE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "BEEP" { return new Symbol(Sym.tBEEP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "BINARY" { return new Symbol(Sym.tBINARY, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "BLOAD" { return new Symbol(Sym.tBLOAD, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "BSAVE" { return new Symbol(Sym.tBSAVE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "BYVAL" { return new Symbol(Sym.tBYVAL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CALLS" { return new Symbol(Sym.tCALLS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CDBL" { return new Symbol(Sym.tCDBL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CDECL" { return new Symbol(Sym.tCDECL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CHAIN" { return new Symbol(Sym.tCHAIN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CHDIR" { return new Symbol(Sym.tCHDIR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CHR$" { return new Symbol(Sym.tCHR_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CINT" { return new Symbol(Sym.tCINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CIRCLE" { return new Symbol(Sym.tCIRCLE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CLEAR" { return new Symbol(Sym.tCLEAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CLNG" { return new Symbol(Sym.tCLNG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CLS" { return new Symbol(Sym.tCLS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "COLOR" { return new Symbol(Sym.tCOLOR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "COM" { return new Symbol(Sym.tCOM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "COMMAND$" { return new Symbol(Sym.tCOMMAND_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "COMMON" { return new Symbol(Sym.tCOMMON, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CONST" { return new Symbol(Sym.tCONST, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "COS" { return new Symbol(Sym.tCOS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CSNG" { return new Symbol(Sym.tCSNG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CSRLIN" { return new Symbol(Sym.tCSRLIN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CVD" { return new Symbol(Sym.tCVD, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CVDMBF" { return new Symbol(Sym.tCVDMBF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CVI" { return new Symbol(Sym.tCVI, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CVL" { return new Symbol(Sym.tCVL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CVS" { return new Symbol(Sym.tCVS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DATE$" { return new Symbol(Sym.tDATE_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DRAW" { return new Symbol(Sym.tDRAW, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ENVIRON" { return new Symbol(Sym.tENVIRON, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ENVIRON$" { return new Symbol(Sym.tENVIRON_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "EOF" { return new Symbol(Sym.tEOF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "EQV" { return new Symbol(Sym.tEQV, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ERASE" { return new Symbol(Sym.tERASE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ERDEV" { return new Symbol(Sym.tERDEV, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ERDEV$" { return new Symbol(Sym.tERDEV_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ERL" { return new Symbol(Sym.tERL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ERR" { return new Symbol(Sym.tERR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ERROR" { return new Symbol(Sym.tERROR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "EXIT" { return new Symbol(Sym.tEXIT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "EXP" { return new Symbol(Sym.tEXP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "FIX" { return new Symbol(Sym.tFIX, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "FUNCTION" { return new Symbol(Sym.tFUNCTION, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "GET" { return new Symbol(Sym.tGET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "HEX$" { return new Symbol(Sym.tHEX_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "IMP" { return new Symbol(Sym.tIMP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INKEY$" { return new Symbol(Sym.tINKEY_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INP" { return new Symbol(Sym.tINP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INPUT" { return new Symbol(Sym.tINPUT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INPUT$" { return new Symbol(Sym.tINPUT_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INSTR" { return new Symbol(Sym.tINSTR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INT" { return new Symbol(Sym.tINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INTEGER" { return new Symbol(Sym.tINTEGER, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "INTERRUPT" { return new Symbol(Sym.tINTERRUPT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "IOCTL" { return new Symbol(Sym.tIOCTL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "IOCTL$" { return new Symbol(Sym.tIOCTL_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "IS" { return new Symbol(Sym.tIS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "KEY" { return new Symbol(Sym.tKEY, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "KILL" { return new Symbol(Sym.tKILL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LBOUND" { return new Symbol(Sym.tLBOUND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LCASE$" { return new Symbol(Sym.tLCASE_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LEFT$" { return new Symbol(Sym.tLEFT_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LEN" { return new Symbol(Sym.tLEN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LET" { return new Symbol(Sym.tLET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LINE" { return new Symbol(Sym.tLINE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LIST" { return new Symbol(Sym.tLIST, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOC" { return new Symbol(Sym.tLOC, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOCAL" { return new Symbol(Sym.tLOCAL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOCATE" { return new Symbol(Sym.tLOCATE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOCK" { return new Symbol(Sym.tLOCK, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOF" { return new Symbol(Sym.tLOF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOG" { return new Symbol(Sym.tLOG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LONG" { return new Symbol(Sym.tLONG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LPOS" { return new Symbol(Sym.tLPOS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LPRINT" { return new Symbol(Sym.tLPRINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LSET" { return new Symbol(Sym.tLSET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LTRIM$" { return new Symbol(Sym.tLTRIM_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "MID$" { return new Symbol(Sym.tMID_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "MOD" { return new Symbol(Sym.tMOD, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "NAME" { return new Symbol(Sym.tNAME, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "NOT" { return new Symbol(Sym.tNOT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OCT$" { return new Symbol(Sym.tOCT_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OFF" { return new Symbol(Sym.tOFF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OPEN" { return new Symbol(Sym.tOPEN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OR" { return new Symbol(Sym.tOR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OUT" { return new Symbol(Sym.tOUT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OUTPUT" { return new Symbol(Sym.tOUTPUT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PAINT" { return new Symbol(Sym.tPAINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PALETTE" { return new Symbol(Sym.tPALETTE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PCOPY" { return new Symbol(Sym.tPCOPY, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PEEK" { return new Symbol(Sym.tPEEK, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PEN" { return new Symbol(Sym.tPEN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PLAY" { return new Symbol(Sym.tPLAY, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PMAP" { return new Symbol(Sym.tPMAP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "POINT" { return new Symbol(Sym.tPOINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "POKE" { return new Symbol(Sym.tPOKE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "POS" { return new Symbol(Sym.tPOS, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PRESET" { return new Symbol(Sym.tPRESET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PRINT" { return new Symbol(Sym.tPRINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PSET" { return new Symbol(Sym.tPSET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "PUT" { return new Symbol(Sym.tPUT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RANDOM" { return new Symbol(Sym.tRANDOM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RANDOMIZE" { return new Symbol(Sym.tRANDOMIZE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "READ" { return new Symbol(Sym.tREAD, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RESET" { return new Symbol(Sym.tRESET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RESTORE" { return new Symbol(Sym.tRESTORE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RIGHT$" { return new Symbol(Sym.tRIGHT_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RMDIR" { return new Symbol(Sym.tRMDIR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RND" { return new Symbol(Sym.tRND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RSET" { return new Symbol(Sym.tRSET, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RTRIM$" { return new Symbol(Sym.tRTRIM_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RUN" { return new Symbol(Sym.tRUN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SADD" { return new Symbol(Sym.tSADD, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SCREEN" { return new Symbol(Sym.tSCREEN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SEEK" { return new Symbol(Sym.tSEEK, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SEG" { return new Symbol(Sym.tSEG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SETMEM" { return new Symbol(Sym.tSETMEM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SGN" { return new Symbol(Sym.tSGN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SIGNAL" { return new Symbol(Sym.tSIGNAL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SIN" { return new Symbol(Sym.tSIN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SLEEP" { return new Symbol(Sym.tSLEEP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SOUND" { return new Symbol(Sym.tSOUND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SPACE$" { return new Symbol(Sym.tSPACE_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SPC" { return new Symbol(Sym.tSPC, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SQR" { return new Symbol(Sym.tSQR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SSEG" { return new Symbol(Sym.tSSEG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STICK" { return new Symbol(Sym.tSTICK, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STRIG" { return new Symbol(Sym.tSTRIG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STRING" { return new Symbol(Sym.tSTRING, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STRING$" { return new Symbol(Sym.tSTRING_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SUB" { return new Symbol(Sym.tSUB, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SWAP" { return new Symbol(Sym.tSWAP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TAB" { return new Symbol(Sym.tTAB, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TAN" { return new Symbol(Sym.tTAN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TIME$" { return new Symbol(Sym.tTIME_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TIMER" { return new Symbol(Sym.tTIMER, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TROFF" { return new Symbol(Sym.tTROFF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TRON" { return new Symbol(Sym.tTRON, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "UBOUND" { return new Symbol(Sym.tUBOUND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "UCASE$" { return new Symbol(Sym.tUCASE_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "UEVENT" { return new Symbol(Sym.tUEVENT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "UNLOCK" { return new Symbol(Sym.tUNLOCK, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "USING" { return new Symbol(Sym.tUSING, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "VAL" { return new Symbol(Sym.tVAL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "VARPTR" { return new Symbol(Sym.tVARPTR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "VARPTR$" { return new Symbol(Sym.tVARPTR_, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "VARSEG" { return new Symbol(Sym.tVARSEG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "VIEW" { return new Symbol(Sym.tVIEW, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "WAIT" { return new Symbol(Sym.tWAIT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "WIDTH" { return new Symbol(Sym.tWIDTH, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "WINDOW" { return new Symbol(Sym.tWINDOW, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "WRITE" { return new Symbol(Sym.tWRITE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "XOR" { return new Symbol(Sym.tXOR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CALL" { return new Symbol(Sym.tCALL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "CASE" { return new Symbol(Sym.tCASE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DO" { return new Symbol(Sym.tDO, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ELSE" { return new Symbol(Sym.tELSE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "END" { return new Symbol(Sym.tEND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "FOR" { return new Symbol(Sym.tFOR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "GOSUB" { return new Symbol(Sym.tGOSUB, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "GOTO" { return new Symbol(Sym.tGOTO, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "IF" { return new Symbol(Sym.tIF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "LOOP" { return new Symbol(Sym.tLOOP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "NEXT" { return new Symbol(Sym.tNEXT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "ON" { return new Symbol(Sym.tON, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RESUME" { return new Symbol(Sym.tRESUME, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "RETURN" { return new Symbol(Sym.tRETURN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SELECT" { return new Symbol(Sym.tSELECT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SHELL" { return new Symbol(Sym.tSHELL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STEP" { return new Symbol(Sym.tSTEP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STOP" { return new Symbol(Sym.tSTOP, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SYSTEM" { return new Symbol(Sym.tSYSTEM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "THEN" { return new Symbol(Sym.tTHEN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TO" { return new Symbol(Sym.tTO, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "UNTIL" { return new Symbol(Sym.tUNTIL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "WEND" { return new Symbol(Sym.tWEND, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "WHILE" { return new Symbol(Sym.tWHILE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DATA" { return new Symbol(Sym.tDATA, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DECLARE" { return new Symbol(Sym.tDECLARE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DEF" { return new Symbol(Sym.tDEF, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DEFDBL" { return new Symbol(Sym.tDEFDBL, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DEFINT" { return new Symbol(Sym.tDEFINT, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DEFSNG" { return new Symbol(Sym.tDEFSNG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DEFLNG" { return new Symbol(Sym.tDEFLNG, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DEFSTR" { return new Symbol(Sym.tDEFSTR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DIM" { return new Symbol(Sym.tDIM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "DOUBLE" { return new Symbol(Sym.tDOUBLE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "FN" { return new Symbol(Sym.tFN, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "OPTION" { return new Symbol(Sym.tOPTION, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "REDIM" { return new Symbol(Sym.tREDIM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SINGLE" { return new Symbol(Sym.tSINGLE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "SHARED" { return new Symbol(Sym.tSHARED, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "STATIC" { return new Symbol(Sym.tSTATIC, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } "TYPE" { return new Symbol(Sym.tTYPE, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {STRINGVAR} { return new Symbol(Sym.tSTRINGVAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {INTEGERVAR} { return new Symbol(Sym.tINTEGERVAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {LONGVAR} { return new Symbol(Sym.tLONGVAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {SINGLEVAR} { return new Symbol(Sym.tSINGLEVAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {DOUBLEVAR} { return new Symbol(Sym.tDOUBLEVAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {IDENT} { return new Symbol(Sym.tVAR, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {NUMBER} { return new Symbol(Sym.tNUM, new TokenValue(yytext(),yyline,yychar,sourceFilename)); } {IDIV} { return new Symbol(Sym.tIDIV, new TokenValue(yytext(),yyline,yychar,sourceFilename)); }