idents.ml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. ("FOR", FOR);
  63. ("FREELIB", KEYWORD T.FreeLib);
  64. ("FUNC", FUNCTION T.Func);
  65. ("$FUNC", FUNCTION T.Func');
  66. ("GETOBJ", FUNCTION T.Getobj);
  67. ("$GETOBJ", FUNCTION T.Getobj');
  68. ("GOSUB", KEYWORD T.Gosub);
  69. ("GOTO", KEYWORD T.Goto);
  70. ("GS", KEYWORD T.Gosub);
  71. ("GT", KEYWORD T.Goto);
  72. ("IF", IF);
  73. ("IIF", FUNCTION T.Iif);
  74. ("$IIF", FUNCTION T.Iif');
  75. ("INCLIB", KEYWORD T.IncLib);
  76. ("INPUT", FUNCTION T.Input);
  77. ("$INPUT", FUNCTION T.Input');
  78. ("INSTR", FUNCTION T.Instr);
  79. ("ISNUM", FUNCTION T.Isnum);
  80. ("ISPLAY", FUNCTION T.Isplay);
  81. ("JUMP", KEYWORD T.Jump);
  82. ("KILLALL", KEYWORD T.KillAll);
  83. ("KILLOBJ", KEYWORD T.KillObj);
  84. ("KILLQST", KEYWORD T.FreeLib);
  85. ("KILLVAR", KEYWORD T.KillVar);
  86. ("LCASE", FUNCTION T.Lcase);
  87. ("$LCASE", FUNCTION T.Lcase');
  88. ("LEN", FUNCTION T.Len);
  89. ("LET", LET);
  90. ("LOC", FUNCTION T.Loc);
  91. ("LOCAL", LOCAL);
  92. ("MAINTXT", IDENT "MAINTXT");
  93. ("$MAINTXT", IDENT "$MAINTXT");
  94. ("MAX", FUNCTION T.Max);
  95. ("$MAX", FUNCTION T.Max');
  96. ("MENU", KEYWORD T.Menu);
  97. ("MID", FUNCTION T.Mid);
  98. ("$MID", FUNCTION T.Mid');
  99. ("MIN", FUNCTION T.Min);
  100. ("$MIN", FUNCTION T.Min');
  101. ("MOD", MOD);
  102. ("MSECSCOUNT", FUNCTION T.Msecscount);
  103. ("MSG", KEYWORD T.Msg);
  104. ("NL", KEYWORD T.Nl);
  105. ("*NL", KEYWORD T.Nl');
  106. ("NO", NO);
  107. ("OBJ", OBJ);
  108. ("$ONACTSEL", IDENT "$ONACTSEL");
  109. ("$ONGLOAD", IDENT "$ONGLOAD");
  110. ("$ONGSAVE", IDENT "$ONGSAVE");
  111. ("$ONNEWLOC", IDENT "$ONNEWLOC");
  112. ("$ONOBJADD", IDENT "$ONOBJADD");
  113. ("$ONOBJDEL", IDENT "$ONOBJDEL");
  114. ("$ONOBJSEL", IDENT "$ONOBJSEL");
  115. ("OPENGAME", KEYWORD T.OpenGame);
  116. ("OPENQST", KEYWORD T.OpenQst);
  117. ("OR", OR);
  118. ("P", KEYWORD T.P);
  119. ("*P", KEYWORD T.P');
  120. ("PL", KEYWORD T.Pl);
  121. ("*PL", KEYWORD T.Pl');
  122. ("PLAY", KEYWORD T.Play);
  123. ("$QSPVER", IDENT "$QSPVER");
  124. ("QSPVER", IDENT "$QSPVER");
  125. ("RAND", FUNCTION T.Rand);
  126. ("REFINT", KEYWORD T.RefInt);
  127. ("REPLACE", FUNCTION T.Replace);
  128. ("$REPLACE", FUNCTION T.Replace');
  129. ("RGB", FUNCTION T.Rgb);
  130. ("RND", FUNCTION_NOARGS T.Rnd);
  131. ("SAVEGAME", KEYWORD T.SaveGame);
  132. ("SELACT", FUNCTION T.Selact);
  133. ("$SELACT", IDENT "$SELACT");
  134. ("SELOBJ", IDENT "SELOBJ");
  135. ("$SELOBJ", IDENT "$SELOBJ");
  136. ("SET", SET);
  137. ("SETTIMER", KEYWORD T.SetTimer);
  138. ("SHOWACTS", KEYWORD T.ShowActs);
  139. ("SHOWINPUT", KEYWORD T.ShowInput);
  140. ("SHOWOBJS", KEYWORD T.ShowObjs);
  141. ("SHOWSTAT", KEYWORD T.ShowStat);
  142. ("STATTXT", IDENT "STATTXT");
  143. ("$STATTXT", IDENT "$STATTXT");
  144. ("STEP", STEP);
  145. ("STR", FUNCTION T.Str);
  146. ("$STR", FUNCTION T.Str');
  147. ("STRCOMP", FUNCTION T.Strcomp);
  148. ("STRFIND", FUNCTION T.Strfind);
  149. ("$STRFIND", FUNCTION T.Strfind');
  150. ("STRPOS", FUNCTION T.Strpos);
  151. ("TO", TO);
  152. ("TRIM", FUNCTION T.Trim);
  153. ("$TRIM", FUNCTION T.Trim');
  154. ("UCASE", FUNCTION T.Ucase);
  155. ("$UCASE", FUNCTION T.Ucase');
  156. ("UNSEL", KEYWORD T.Unselect);
  157. ("UNSELECT", KEYWORD T.Unselect);
  158. ("USEHTML", IDENT "USEHTML");
  159. ("USERCOM", IDENT "USERCOM");
  160. ("$USERCOM", IDENT "$USERCOM");
  161. ("USER_TEXT", IDENT "USER_TEXT");
  162. ("$USER_TEXT", IDENT "USER_TEXT");
  163. ("USRTXT", IDENT "USER_TEXT");
  164. ("$USRTXT", IDENT "USER_TEXT");
  165. ("VAL", FUNCTION T.Val);
  166. ("VIEW", KEYWORD T.View);
  167. ("WAIT", KEYWORD T.Wait);
  168. ("XGOTO", KEYWORD T.XGoto);
  169. ("XGT", KEYWORD T.XGoto);
  170. ]