idents.ml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. open Tokens
  2. module T = Qsp_syntax.T
  3. let keyword_table = Hashtbl.create 53
  4. (* Thoses ident are considered as variables and not declared here
  5. "BACKIMAGE",
  6. "$BACKIMAGE",
  7. "BCOLOR",
  8. "DEBUG",
  9. "DISABLESCROLL"
  10. "DISABLESUBEX",
  11. "FCOLOR",
  12. "$FNAME",
  13. "FSIZE",
  14. "GC",
  15. "LCOLOR",
  16. "NOSAVE"
  17. *)
  18. let _ =
  19. List.iter
  20. (fun (kwd, tok) -> Hashtbl.add keyword_table kwd tok)
  21. [
  22. ("ACT", ACT);
  23. ("ADDLIB", KEYWORD T.IncLib);
  24. ("ADDOBJ", KEYWORD T.Addobj);
  25. ("ADD OBJ", KEYWORD T.Addobj);
  26. ("ADDQST", KEYWORD T.IncLib);
  27. ("AND", AND);
  28. ("ARRCOMP", FUNCTION T.Arrcomp);
  29. ("ARRPOS", FUNCTION T.Arrpos);
  30. ("ARRSIZE", FUNCTION T.Arrsize);
  31. ("CLA", KEYWORD T.Cla);
  32. ("CLEAR", KEYWORD T.Clear);
  33. ("*CLEAR", KEYWORD T.Clear');
  34. ("CLOSE", KEYWORD T.Close);
  35. ("CLOSE ALL", KEYWORD T.CloseAll);
  36. ("CLR", KEYWORD T.Clear);
  37. ("*CLR", KEYWORD T.Clear');
  38. ("CLS", KEYWORD T.Cls);
  39. ("CMDCLEAR", KEYWORD T.CmdClear);
  40. ("CMDCLR", KEYWORD T.CmdClear);
  41. ("COPYARR", KEYWORD T.CopyArr);
  42. ("COUNTOBJ", FUNCTION T.Countobj);
  43. ("CURACTS", IDENT "CURACTS");
  44. ("$CURACTS", IDENT "$CURACTS");
  45. ("CURLOC", IDENT "CURLOC");
  46. ("$CURLOC", IDENT "$CURLOC");
  47. ("DELACT", KEYWORD T.DelAct);
  48. ("DEL ACT", KEYWORD T.DelAct);
  49. ("DELLIB", KEYWORD T.FreeLib);
  50. ("DELOBJ", KEYWORD T.DelObj);
  51. ("DEL OBJ", KEYWORD T.DelObj);
  52. ("DESC", FUNCTION T.Desc);
  53. ("$DESC", FUNCTION T.Desc');
  54. ("DYNAMIC", KEYWORD T.Dynamic);
  55. ("DYNEVAL", FUNCTION T.Dyneval);
  56. ("$DYNEVAL", FUNCTION T.Dyneval');
  57. ("ELSE", ELSE);
  58. ("ELSEIF", ELIF);
  59. ("END", END);
  60. ("EXEC", KEYWORD T.Exec);
  61. ("EXIT", KEYWORD T.Exit);
  62. ("FREELIB", KEYWORD T.FreeLib);
  63. ("FUNC", FUNCTION T.Func);
  64. ("$FUNC", FUNCTION T.Func');
  65. ("GETOBJ", FUNCTION T.Getobj);
  66. ("$GETOBJ", FUNCTION T.Getobj');
  67. ("GOSUB", KEYWORD T.Gosub);
  68. ("GOTO", KEYWORD T.Goto);
  69. ("GS", KEYWORD T.Gosub);
  70. ("GT", KEYWORD T.Goto);
  71. ("IF", IF);
  72. ("IIF", FUNCTION T.Iif);
  73. ("$IIF", FUNCTION T.Iif');
  74. ("INCLIB", KEYWORD T.IncLib);
  75. ("INPUT", FUNCTION T.Input);
  76. ("$INPUT", FUNCTION T.Input');
  77. ("INSTR", FUNCTION T.Instr);
  78. ("ISNUM", FUNCTION T.Isnum);
  79. ("ISPLAY", FUNCTION T.Isplay);
  80. ("JUMP", KEYWORD T.Jump);
  81. ("KILLALL", KEYWORD T.KillAll);
  82. ("KILLOBJ", KEYWORD T.KillObj);
  83. ("KILLQST", KEYWORD T.FreeLib);
  84. ("KILLVAR", KEYWORD T.KillVar);
  85. ("LCASE", FUNCTION T.Lcase);
  86. ("$LCASE", FUNCTION T.Lcase');
  87. ("LEN", FUNCTION T.Len);
  88. ("LET", LET);
  89. ("LOC", FUNCTION T.Loc);
  90. ("MAINTXT", IDENT "MAINTXT");
  91. ("$MAINTXT", IDENT "$MAINTXT");
  92. ("MAX", FUNCTION T.Max);
  93. ("$MAX", FUNCTION T.Max');
  94. ("MENU", KEYWORD T.Menu);
  95. ("MID", FUNCTION T.Mid);
  96. ("$MID", FUNCTION T.Mid');
  97. ("MIN", FUNCTION T.Min);
  98. ("$MIN", FUNCTION T.Min');
  99. ("MOD", MOD);
  100. ("MSECSCOUNT", FUNCTION T.Msecscount);
  101. ("MSG", KEYWORD T.Msg);
  102. ("NL", KEYWORD T.Nl);
  103. ("*NL", KEYWORD T.Nl');
  104. ("NO", NO);
  105. ("OBJ", OBJ);
  106. ("$ONACTSEL", IDENT "$ONACTSEL");
  107. ("$ONGLOAD", IDENT "$ONGLOAD");
  108. ("$ONGSAVE", IDENT "$ONGSAVE");
  109. ("$ONNEWLOC", IDENT "$ONNEWLOC");
  110. ("$ONOBJADD", IDENT "$ONOBJADD");
  111. ("$ONOBJDEL", IDENT "$ONOBJDEL");
  112. ("$ONOBJSEL", IDENT "$ONOBJSEL");
  113. ("OPENGAME", KEYWORD T.OpenGame);
  114. ("OPENQST", KEYWORD T.OpenQst);
  115. ("OR", OR);
  116. ("P", KEYWORD T.P);
  117. ("*P", KEYWORD T.P');
  118. ("PL", KEYWORD T.Pl);
  119. ("*PL", KEYWORD T.Pl');
  120. ("PLAY", KEYWORD T.Play);
  121. ("$QSPVER", IDENT "$QSPVER");
  122. ("QSPVER", IDENT "$QSPVER");
  123. ("RAND", FUNCTION T.Rand);
  124. ("REFINT", KEYWORD T.RefInt);
  125. ("REPLACE", FUNCTION T.Replace);
  126. ("$REPLACE", FUNCTION T.Replace');
  127. ("RGB", FUNCTION T.Rgb);
  128. ("RND", FUNCTION_NOARGS T.Rnd);
  129. ("SAVEGAME", KEYWORD T.SaveGame);
  130. ("SELACT", FUNCTION T.Selact);
  131. ("$SELACT", IDENT "$SELACT");
  132. ("SELOBJ", IDENT "SELOBJ");
  133. ("$SELOBJ", IDENT "$SELOBJ");
  134. ("SET", SET);
  135. ("SETTIMER", KEYWORD T.SetTimer);
  136. ("SHOWACTS", KEYWORD T.ShowActs);
  137. ("SHOWINPUT", KEYWORD T.ShowInput);
  138. ("SHOWOBJS", KEYWORD T.ShowObjs);
  139. ("SHOWSTAT", KEYWORD T.ShowStat);
  140. ("STATTXT", IDENT "STATTXT");
  141. ("$STATTXT", IDENT "$STATTXT");
  142. ("STR", FUNCTION T.Str);
  143. ("$STR", FUNCTION T.Str');
  144. ("STRCOMP", FUNCTION T.Strcomp);
  145. ("STRFIND", FUNCTION T.Strfind);
  146. ("$STRFIND", FUNCTION T.Strfind');
  147. ("STRPOS", FUNCTION T.Strpos);
  148. ("TRIM", FUNCTION T.Trim);
  149. ("$TRIM", FUNCTION T.Trim');
  150. ("UCASE", FUNCTION T.Ucase);
  151. ("$UCASE", FUNCTION T.Ucase');
  152. ("UNSEL", KEYWORD T.Unselect);
  153. ("UNSELECT", KEYWORD T.Unselect);
  154. ("USEHTML", IDENT "USEHTML");
  155. ("USERCOM", IDENT "USERCOM");
  156. ("$USERCOM", IDENT "$USERCOM");
  157. ("USER_TEXT", IDENT "USER_TEXT");
  158. ("$USER_TEXT", IDENT "USER_TEXT");
  159. ("USRTXT", IDENT "USER_TEXT");
  160. ("$USRTXT", IDENT "USER_TEXT");
  161. ("VAL", FUNCTION T.Val);
  162. ("VIEW", KEYWORD T.View);
  163. ("WAIT", KEYWORD T.Wait);
  164. ("XGOTO", KEYWORD T.XGoto);
  165. ("XGT", KEYWORD T.XGoto);
  166. ]