WORD_COLOR1 = "AND", "CASE", "DO", "ELSE", "ELSEIF", "END", "EXIT", "FOR", "IF", "ITERATE", "LOOP", "NEXT", "OR", "RETURN", "SELECT", "STOP", "THEN", "TO", "UNTIL", "WEND", "WHILE" "XOR"; WORD_COLOR2 = "GOSUB", "GOTO", "RUN", "SYSTEM", "EXECUTE", "$COMPILE", "CALL", "$CPU", "$ERROR", "$INCLUDE", "$LIB", "$LINK", "$OPTIMIZE", "ABS", "ABSOLUTE", "ACCESS", "ANY", "APPEND", "ARRAY", "AS", "ASC", "ASCEND", "ASCII", "ASM", "AT", "ATN", "ATTRIB", "BASE", "BEEP", "BIN$", "BINARY", "BIT", "BITS%", "BITS&", "BITS?", "BITS??", "BLOAD", "BSAVE", "CBCD", "CBYT", "CDBL", "CDWD", "CEIL", "CEXT", "CFIX", "CHAIN", "CHDIR", "CHDRIVE", "CHR$", "CINT", "CIRCLE", "CLEAR", "CLNG", "CLOSE", "CLS", "CODEPTR", "CODESEG", "COLLATE", "COLOR", "COM", "COMMAND$", "COMMON", "CONST", "COS", "CQUD", "CSNG", "CSRLIN", "CURDIR$", "CURDRV$", "CVB", "CVBYT", "CVD", "CVDWD", "CVE", "CVF", "CVI", "CVL", "CVMD", "CVMS", "CVQ", "CVS", "CVWRD", "CWRD", "DATA", "DATE$", "DECLARE", "DECR", "DEF", "DEFBCD", "DEFBYT", "DEFDBL", "DEFDWD", "DEFEXT", "DEFFIX", "DEFFLX", "DEFINT", "DEFLNG", "DEFQUD", "DEFSNG", "DEFSTR", "DEFWRD", "DELAY", "DELETE", "DESCEND", "DIM", "DIR$", "DRAW", "DYNAMIC", "EMS", "ENDMEM", "ENVIRON", "ENVIRON$", "EOF", "EQV", "ERADR", "ERASE", "ERDEV", "ERDEV$", "ERL", "ERR", "ERROR", "ERRMSG$", "ERRTEST", "EXP", "EXP10", "EXP2", "EXTERNAL", "EXTRACT$", "FAR", "FIELD", "FILEATTR", "FILES", "SFILL", "FIX", "FIXDIGITS", "FLEXCHR$", "FLUSH", "FN", "FRAC", "FRE", "FREEFILE", "FROM", "FUNCTION", "GET", "GET$", "HEX$", "IMP", "IN", "INCR", "INKEY$", "INP", "INPUT", "INPUT$", "INPUT#", "INSERT", "INSTAT", "INSTR", "INT", "INTERRUPT", "IOCTL", "IOCTL$", "ISFALSE", "ISTRUE", "KEY", "KILL", "LBOUND", "LCASE$", "LEFT", "LEFT$", "LEN", "LET", "LINE", "LIST", "LOC", "LOCAL", "LOCATE", "LOCK", "LOF", "LOG", "LOG10", "LOG2", "LPOS", "LPRINT", "LSET", "LTRIM$", "MAP", "MAX", "MAX$", "MAX%", "MEMPACK", "MEMSET", "MID$", "MIN", "MIN$", "MIN%", "MKB$", "MKBYT$", "MKD$", "MKDIR", "MKDWD$", "MKE$", "MKF$", "MKI$", "MKL$", "MKMD$", "MKMS$", "MKQ$", "MKS$", "MKWRD$", "MTIMER", "MULTIPLEX", "NAME", "NEAR", "NOT", "OCT$", "OFF", "ON", "OPEN", "OPTION", "OUT", "OUTPUT", "PAINT", "PALETTE", "PCOPY", "PEEK", "PEEK$", "PEEKI", "PEEKL", "PEN", "PLAY", "PMAP", "POINT", "POKE", "POKE$", "POKEI", "POKEL", "POPUP", "POS", "PRESET", "PRINT", "PRINT#", "PSET", "PSTR$", "PUBLIC", "PUT", "PUT$", "RANDOM", "RANDOMZE", "READ", "REC", "REDIM", "REG", "REM", "REMOVE$", "REPEAT$", "REPLACE", "RESET", "RESTORE", "RESUME", "RIGHT", "RIGHT$", "RMDIR", "RND", "ROTATE", "ROUND", "RSET", "RTRIM$", "SCAN", "SCREEN", "SEEK", "SEG", "SETMEM", "SGN", "SHARED", "SHELL", "SHIFT", "SIGNED", "SIN", "SLEEP", "SORT", "SOUND", "SPACE$", "SPC", "SQR", "STATIC", "STEP", "STICK", "STR", "STR$", "STRIG", "STRING$", "STRPTR", "STRSEG", "STUFF", "SUB", "SWAP", "TAB", "TAGARRAY", "TALLY", "TAN", "TIME$", "TIMER", "TROFF", "TRON", "TYPE", "UBOUND", "UCASE", "UCASE$", "UEVENT", "UNION", "UNLOCK", "USING", "USING$", "USR", "VAL", "VARPTR", "VARPTR$", "VARSEG", "VERIFY", "VIEW", "WAIT", "WIDTH", "WINDOW", "WITH", "WRITE", "WRITE#"; WORD_COLOR3 = "A2BS", "A2F", "ABOX", "AHEAD", "ARGC", "AWCLIP", "B2X", "BAR", "BARH", "BARV", "BBOX", "BMENU", "BOOT", "BOTHBUTTONRELEASED", "BROWSE", "BROWSEA", "BROWSEF", "BROWSEFR", "BS2A", "BS2F", "BUTTON", "BUTTON3D", "BWINDOW", "C2D", "C2X", "CALCBYTE", "CAPSOFF", "CAPSON", "CBOX", "CCHAR", "CDIR", "CENTER", "CENTERBUTTONRELEASED", "CF2BOOK", "CLRWINDOW", "CNA2NA", "COPIES", "COPYFILE", "CPU", "CSA2SA", "CURRENTDRIVE", "CURSOR", "CVC2F", "CVF2C", "CWORD", "D2X", "DATE", "DAYOFYR", "DAYS2DT", "DAYSINMONTH", "DB2ARRAY", "DB2ASCII", "DBBOX", "DBCREATE", "DBGETFD", "DBHDATE", "DBOPEN", "DBOX", "DBPACK", "DBRELOAD", "DBSEEK", "DBSTRING", "DBUNLOAD", "DBUPDATE", "DCURTAIN", "DDIAGONAL", "DDIAMOND", "DECRYPT", "DELSTR", "DELWORD", "DFORMAT", "DISPLAY", "DISPLAYLOCKSTATUS", "DISPLAYSCREEN", "DISPMSG", "DLINES", "DMATH", "DOS2DATE", "DOSVERSION", "DRIVEFREE", "DRIVELIST", "DSBOX", "DSCREEN1", "DSCREEN2", "DSCREEN3", "DSCREEN4", "DSCREEN5", "DSCREEN6", "DSCREEN7", "DSCREEN8", "DSCREEN9", "DSCREENA", "DSCREENB", "DSCREENC", "DSCREEND", "DSCREENE", "DSCREENF", "DSCREENG", "DSCREENH", "DSCREENI", "DSCREENJ", "DSCREENK", "DSCREENL", "DSPLIT", "DT2DAYS", "DT2JUL", "DTON", "EBOX", "EDIT", "EJECT", "EMAP", "ENCRYPT", "EVAL", "EXIST", "F2A", "F2ABC", "F2BS", "FBOX", "FILESPEC", "FILL", "FINDMENU", "FLIP", "FOPEN", "FORMAT", "FSEEK", "FSORT", "GETBIOSDATE", "GETBITS", "GETBOOTDRIVE", "GETCHKSUM", "GETDOSVERSION", "GETDRIVEFREE", "GETDRIVELIST", "GETDRIVE$", "GETDTA", "GETERRORLEVEL", "GETFB", "GETFIELD", "GETFILES", "GETKEY", "GETKEYSCAN", "GETMEM", "GETPARM", "GETNSEQ", "GETSCREEN", "GETVIDEOSEGMENT", "GETVMODE", "GETWINDOW", "GVA", "HIDECURSOR", "HMENU", "INDEX", "INSERTSTR", "INT86", "INTINKEY", "IS4DOS", "ISALPHA", "ISALPHANUMERIC", "ISALTKEY", "ISALTP", "ISANSI", "ISAZSP", "ISCA", "ISCAN", "ISCAPL", "ISCDROM", "ISCLP", "ISCTRLBK", "ISCTRLKEY", "ISCTRLP", "ISDRIVE", "ISDRIVEREADY", "ISINS", "ISINSERTKEY", "ISINSP", "ISISBN", "ISKEYDOWN", "ISLEAPYR", "ISLEFTSHIFT", "ISLIKE", "ISMOUSE", "ISMOUSEBBR", "ISMOUSECBR", "ISMOUSELBR", "ISMOUSERBR", "ISNL", "ISNLP", "ISNT", "ISNULL", "ISNUMERIC", "ISODD", "ISPRINT", "ISRIGHTSHIFT", "ISSHARE", "ISSL", "ISSLP", "ISSPACES", "ISWIN31", "ISWIN95", "ISXMS", "JUL2DT", "LASTELE", "LASTPOS", "LEDIT", "LEFTBUTTONRELEASED", "LGEDIT", "LINECALC", "LOCATECURSOR", "LVSLIDE", "MAKEDATE", "MBOX", "MBUTTONS", "MCHAR", "MCLEAR", "MCLICKED", "MCOLS", "MDELAY", "MENU", "MFEDIT", "MFOUND", "MKATTR", "MKDATE", "MKHTMTBL", "MKSTR", "MKTATTR", "MKTIMESTR", "MKTIMESTR12", "MKUFILE", "MLOCATE", "MOUSE", "MOUSEOFF", "MOUSEON", "MOUSETHERE", "MOUSEWINDOW", "MRESET", "MROWS", "MWHERE", "MWORD", "NDAYS", "NSECONDS", "NTOD", "NUM", "NUMOFF", "NUMON", "OVERLAY", "PARSE", "PBOX", "PL121", "PL165", "PL242", "PL2C", "PL3C", "PL4C", "PL5C", "PL6C", "PRINTAT", "PROGNAME", "PROPER", "PRTSCRN", "PSPLIT", "PUTSCREEN", "PUTWINDOW", "PUTWINDOWAT", "PVA", "QBOX", "REATTR", "RECHAR", "REVERSE", "RIGHTBUTTONRELEASED", "RINSTR", "SATTR", "SAVEAS", "SAY", "SAYB", "SAYG", "SAYH", "SBOX", "SCRCLR", "SCRPUT", "SCRREAD", "SEC2TIME", "SETBLINK", "SETCLOFF", "SETCLON", "SETHP", "SETINSOFF", "SETINSON", "SETNUMOFF", "SETNUMON", "SETVMODE", "SHOWCURSOR", "SMENU", "SPACE", "SPINNER", "SSCROLL", "SSOUND", "STRIP", "STRLEN", "STUFFKEY", "SUBSTR", "SUBWORD", "TBOX", "TFORMAT", "TIME", "TIME2SEC", "TMATH", "TRANSFER", "TRANSLATE", "TRIML", "TRIMR", "TRUNC", "TSPLIT", "TSPREAD", "TTEXT", "TVDROP", "TVRISE", "TWINDOW", "UCASEINT", "VDATE", "VFADE", "VFADEOUT", "VMENU", "VPGCOPY", "VSHOW", "WAITKEY", "WBOX", "WEEKDAY", "WORD", "WORDINDEX", "WORDLENGTH", "WORDPOS", "WORDS", "WSCROLL", "WWRITE", "X2B", "X2C", "X2D", "XFORMAT", "XTIME", "XWORD", "XWORDINDEX", "XWORDLENGTH", "XWORDS", "YNBOX"; LINE_COMMENT = "'" NO_BREAK_CHAR = "_" CASE = IGNORE SPECIAL_CHARS = "~@*()_+`-={}][:;|\?/>.<," STRING_DELIMITERS = '"'