aboutsummaryrefslogtreecommitdiff
path: root/lib/idents.ml
blob: baf23dcbec1b6a01b60e0375c990a12f84e495fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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");
    ]