open Tokens module T = Qsp_syntax.T let keyword_table = Hashtbl.create 53 let _ = List.iter (fun (kwd, tok) -> Hashtbl.add keyword_table kwd tok) [ ("ACT", ACT); ("ADDLIB", KEYWORD "INCLIB"); ("ADDOBJ", KEYWORD "ADDOBJ"); ("ADD OBJ", KEYWORD "ADDOBJ"); ("ADDQST", KEYWORD "INCLIB"); ("AND", AND); ("ARRCOMP", FUNCTION T.Arrcomp); ("ARRPOS", FUNCTION T.Arrpos); ("ARRSIZE", FUNCTION T.Arrsize) (* ; "BACKIMAGE", KEYWORD "BACKIMAGE" ; "$BACKIMAGE", KEYWORD "BACKIMAGE" ; "BCOLOR", KEYWORD "BCOLOR" *); ("CLA", KEYWORD "CLA"); ("CLEAR", KEYWORD "CLEAR"); ("*CLEAR", KEYWORD "*CLEAR"); ("CLOSE", KEYWORD "CLOSE"); ("CLOSE ALL", KEYWORD "CLOSEALL"); ("CLR", KEYWORD "CLEAR"); ("*CLR", KEYWORD "*CLEAR"); ("CLS", KEYWORD "CLS"); ("CMDCLEAR", KEYWORD "CMDCLEAR"); ("CMDCLR", KEYWORD "CMDCLEAR"); ("COPYARR", KEYWORD "COPYARR"); ("COUNTOBJ", FUNCTION T.Countobj); ("CURACTS", IDENT "CURACTS"); ("$CURACTS", IDENT "$CURACTS"); ("CURLOC", IDENT "CURLOC"); ("$CURLOC", IDENT "$CURLOC") (* ; "DEBUG", KEYWORD "DEBUG" *); ("DELACT", KEYWORD "DELACT"); ("DEL ACT", KEYWORD "DELACT"); ("DELLIB", KEYWORD "FREELIB"); ("DELOBJ", KEYWORD "DELOBJ"); ("DEL OBJ", KEYWORD "DELOBJ"); ("DESC", FUNCTION T.Desc); ("$DESC", FUNCTION T.Desc') (* ; "DISABLESCROLL", KEYWORD "DISABLESCROLL" ; "DISABLESUBEX", KEYWORD "DISABLESUBEX" *); ("DYNAMIC", KEYWORD "DYNAMIC"); ("DYNEVAL", FUNCTION T.Dyneval); ("$DYNEVAL", FUNCTION T.Dyneval'); ("ELSE", ELSE); ("ELSEIF", ELIF); ("END", END); ("EXEC", KEYWORD "EXEC"); ("EXIT", KEYWORD "EXIT") (* ; "FCOLOR", KEYWORD "FCOLOR" ; "$FNAME", KEYWORD "$FNAME" *); ("FREELIB", KEYWORD "FREELIB") (* ; "FSIZE", KEYWORD "FSIZE" *); ("FUNC", FUNCTION T.Func); ("$FUNC", FUNCTION T.Func'); ("GETOBJ", FUNCTION T.Getobj); ("$GETOBJ", FUNCTION T.Getobj'); ("GOSUB", KEYWORD "GOSUB"); ("GOTO", KEYWORD "GOTO") (* ; "GC", KEYWORD "GC" *); ("GS", KEYWORD "GOSUB"); ("GT", KEYWORD "GOTO"); ("IF", IF); ("IIF", FUNCTION T.Iif); ("$IIF", FUNCTION T.Iif'); ("INCLIB", KEYWORD "INCLIB"); ("INPUT", FUNCTION T.Input); ("$INPUT", FUNCTION T.Input'); ("INSTR", FUNCTION T.Instr); ("ISNUM", FUNCTION T.Isnum); ("ISPLAY", FUNCTION T.Isplay); ("JUMP", KEYWORD "JUMP"); ("KILLALL", KEYWORD "KILLALL"); ("KILLOBJ", KEYWORD "KILLOBJ"); ("KILLQST", KEYWORD "FREELIB"); ("KILLVAR", KEYWORD "KILLVAR"); ("LCASE", FUNCTION T.Lcase); ("$LCASE", FUNCTION T.Lcase') (* ; "LCOLOR", KEYWORD "LCOLOR" *); ("LEN", FUNCTION T.Len); ("LET", LET); ("LOC", FUNCTION T.Loc); ("MAINTXT", IDENT "MAINTXT"); ("$MAINTXT", IDENT "MAINTXT"); ("MAX", FUNCTION T.Max); ("$MAX", FUNCTION T.Max'); ("MENU", KEYWORD "MENU"); ("MID", FUNCTION T.Mid); ("$MID", FUNCTION T.Mid'); ("MIN", FUNCTION T.Min); ("$MIN", FUNCTION T.Min'); ("MOD", MOD); ("MSECSCOUNT", FUNCTION T.Msecscount); ("MSG", KEYWORD "MSG"); ("NL", KEYWORD "NL"); ("*NL", KEYWORD "*NL"); ("NO", NO) (* ; "NOSAVE", KEYWORD "NOSAVE" *); ("OBJ", OBJ); ("$ONACTSEL", IDENT "$ONACTSEL"); ("$ONGLOAD", IDENT "$ONGLOAD"); ("$ONGSAVE", IDENT "$ONGSAVE"); ("$ONNEWLOC", IDENT "$ONNEWLOC"); ("$ONOBJADD", IDENT "$ONOBJADD"); ("$ONOBJDEL", IDENT "$ONOBJDEL"); ("$ONOBJSEL", IDENT "$ONOBJSEL"); ("OPENGAME", KEYWORD "OPENGAME"); ("OPENQST", KEYWORD "OPENQST"); ("OR", OR); ("P", KEYWORD "P"); ("*P", KEYWORD "*P"); ("PL", KEYWORD "PL"); ("*PL", KEYWORD "*PL"); ("PLAY", KEYWORD "PLAY"); ("QSPVER", FUNCTION T.Qspver); ("$QSPVER", FUNCTION T.Qspver'); ("RAND", FUNCTION T.Rand); ("REFINT", KEYWORD "REFINT"); ("REPLACE", FUNCTION T.Replace); ("$REPLACE", FUNCTION T.Replace'); ("RGB", FUNCTION T.Rgb); ("RND", FUNCTION T.Rnd); ("SAVEGAME", KEYWORD "SAVEGAME"); ("SELACT", FUNCTION T.Selact); ("$SELACT", IDENT "$SELACT"); ("SELOBJ", IDENT "SELOBJ"); ("$SELOBJ", IDENT "$SELOBJ"); ("SET", SET); ("SETTIMER", KEYWORD "SETTIMER"); ("SHOWACTS", KEYWORD "SHOWACTS"); ("SHOWINPUT", KEYWORD "SHOWINPUT"); ("SHOWOBJS", KEYWORD "SHOWOBJS"); ("SHOWSTAT", KEYWORD "SHOWSTAT"); ("STATTXT", FUNCTION T.Stattxt); ("$STATTXT", FUNCTION T.Stattxt'); ("STR", FUNCTION T.Str); ("$STR", FUNCTION T.Str'); ("STRCOMP", FUNCTION T.Strcomp); ("STRFIND", FUNCTION T.Strfind); ("$STRFIND", FUNCTION T.Strfind'); ("STRPOS", FUNCTION T.Strpos); ("TRIM", FUNCTION T.Trim); ("$TRIM", FUNCTION T.Trim'); ("UCASE", FUNCTION T.Ucase); ("$UCASE", FUNCTION T.Ucase'); ("UNSEL", KEYWORD "UNSELECT"); ("UNSELECT", KEYWORD "UNSELECT"); ("USEHTML", IDENT "USEHTML"); ("USERCOM", IDENT "USERCOM"); ("$USERCOM", IDENT "$USERCOM"); ("USER_TEXT", IDENT "USER_TEXT"); ("$USER_TEXT", IDENT "USER_TEXT"); ("USRTXT", IDENT "USER_TEXT"); ("$USRTXT", IDENT "USER_TEXT"); ("VAL", FUNCTION T.Val); ("VIEW", KEYWORD "VIEW"); ("WAIT", KEYWORD "WAIT"); ("XGOTO", KEYWORD "XGOTO"); ("XGT", KEYWORD "XGOTO"); ]