idents.ml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. ("MAINTXT", IDENT "MAINTXT");
  92. ("$MAINTXT", IDENT "$MAINTXT");
  93. ("MAX", FUNCTION T.Max);
  94. ("$MAX", FUNCTION T.Max');
  95. ("MENU", KEYWORD T.Menu);
  96. ("MID", FUNCTION T.Mid);
  97. ("$MID", FUNCTION T.Mid');
  98. ("MIN", FUNCTION T.Min);
  99. ("$MIN", FUNCTION T.Min');
  100. ("MOD", MOD);
  101. ("MSECSCOUNT", FUNCTION T.Msecscount);
  102. ("MSG", KEYWORD T.Msg);
  103. ("NL", KEYWORD T.Nl);
  104. ("*NL", KEYWORD T.Nl');
  105. ("NO", NO);
  106. ("OBJ", OBJ);
  107. ("$ONACTSEL", IDENT "$ONACTSEL");
  108. ("$ONGLOAD", IDENT "$ONGLOAD");
  109. ("$ONGSAVE", IDENT "$ONGSAVE");
  110. ("$ONNEWLOC", IDENT "$ONNEWLOC");
  111. ("$ONOBJADD", IDENT "$ONOBJADD");
  112. ("$ONOBJDEL", IDENT "$ONOBJDEL");
  113. ("$ONOBJSEL", IDENT "$ONOBJSEL");
  114. ("OPENGAME", KEYWORD T.OpenGame);
  115. ("OPENQST", KEYWORD T.OpenQst);
  116. ("OR", OR);
  117. ("P", KEYWORD T.P);
  118. ("*P", KEYWORD T.P');
  119. ("PL", KEYWORD T.Pl);
  120. ("*PL", KEYWORD T.Pl');
  121. ("PLAY", KEYWORD T.Play);
  122. ("$QSPVER", IDENT "$QSPVER");
  123. ("QSPVER", IDENT "$QSPVER");
  124. ("RAND", FUNCTION T.Rand);
  125. ("REFINT", KEYWORD T.RefInt);
  126. ("REPLACE", FUNCTION T.Replace);
  127. ("$REPLACE", FUNCTION T.Replace');
  128. ("RGB", FUNCTION T.Rgb);
  129. ("RND", FUNCTION_NOARGS T.Rnd);
  130. ("SAVEGAME", KEYWORD T.SaveGame);
  131. ("SELACT", FUNCTION T.Selact);
  132. ("$SELACT", IDENT "$SELACT");
  133. ("SELOBJ", IDENT "SELOBJ");
  134. ("$SELOBJ", IDENT "$SELOBJ");
  135. ("SET", SET);
  136. ("SETTIMER", KEYWORD T.SetTimer);
  137. ("SHOWACTS", KEYWORD T.ShowActs);
  138. ("SHOWINPUT", KEYWORD T.ShowInput);
  139. ("SHOWOBJS", KEYWORD T.ShowObjs);
  140. ("SHOWSTAT", KEYWORD T.ShowStat);
  141. ("STATTXT", IDENT "STATTXT");
  142. ("$STATTXT", IDENT "$STATTXT");
  143. ("STEP", STEP);
  144. ("STR", FUNCTION T.Str);
  145. ("$STR", FUNCTION T.Str');
  146. ("STRCOMP", FUNCTION T.Strcomp);
  147. ("STRFIND", FUNCTION T.Strfind);
  148. ("$STRFIND", FUNCTION T.Strfind');
  149. ("STRPOS", FUNCTION T.Strpos);
  150. ("TO", TO);
  151. ("TRIM", FUNCTION T.Trim);
  152. ("$TRIM", FUNCTION T.Trim');
  153. ("UCASE", FUNCTION T.Ucase);
  154. ("$UCASE", FUNCTION T.Ucase');
  155. ("UNSEL", KEYWORD T.Unselect);
  156. ("UNSELECT", KEYWORD T.Unselect);
  157. ("USEHTML", IDENT "USEHTML");
  158. ("USERCOM", IDENT "USERCOM");
  159. ("$USERCOM", IDENT "$USERCOM");
  160. ("USER_TEXT", IDENT "USER_TEXT");
  161. ("$USER_TEXT", IDENT "USER_TEXT");
  162. ("USRTXT", IDENT "USER_TEXT");
  163. ("$USRTXT", IDENT "USER_TEXT");
  164. ("VAL", FUNCTION T.Val);
  165. ("VIEW", KEYWORD T.View);
  166. ("WAIT", KEYWORD T.Wait);
  167. ("XGOTO", KEYWORD T.XGoto);
  168. ("XGT", KEYWORD T.XGoto);
  169. ]