source: abuse/trunk/src/lisp/symbols.h @ 482

Last change on this file since 482 was 481, checked in by Sam Hocevar, 12 years ago

Fuck the history, I'm renaming all .hpp files to .h for my own sanity.

  • Property svn:keywords set to Id
File size: 6.0 KB
Line 
1/*
2 *  Abuse - dark 2D side-scrolling platform game
3 *  Copyright (c) 2008 Sam Hocevar
4 *
5 *  This software was released into the Public Domain. As with most public
6 *  domain software, no warranty is made or implied by Sam Hocevar.
7 */
8
9struct func
10{
11    char const *name;
12    short min_args, max_args;
13};
14
15/* select, digistr, load-file are not common lisp functions! */
16
17struct func sys_funcs[] =
18{
19    { "print", 1, -1 }, /* 0 */
20    { "car", 1, 1 }, /* 1 */
21    { "cdr", 1, 1 }, /* 2 */
22    { "length", 0, -1 }, /* 3 */
23    { "list", 0, -1 }, /* 4 */
24    { "cons", 2, 2 }, /* 5 */
25    { "quote", 1, 1 }, /* 6 */
26    { "eq", 2, 2 }, /* 7 */
27    { "+", 0, -1 }, /* 8 */
28    { "-", 1, -1 }, /* 9 */
29    { "if", 2, 3 }, /* 10 */
30    { "setf", 2, 2 }, /* 11 */
31    { "symbol-list", 0, 0 }, /* 12 */
32    { "assoc", 2, 2 }, /* 13 */
33    { "null", 1, 1 }, /* 14 */
34    { "acons", 2, 2 }, /* 15 */
35    { "pairlis", 2, 2 }, /* 16 */
36    { "let", 1, -1 }, /* 17 */
37    { "defun", 2, -1 }, /* 18 */
38    { "atom", 1, 1 }, /* 19 */
39    { "not", 1, 1 }, /* 20 */
40    { "and", -1, -1 }, /* 21 */
41    { "or", -1, -1 }, /* 22 */
42    { "progn", -1, -1 }, /* 23 */
43    { "equal", 2, 2 }, /* 24 */
44    { "concatenate", 1, -1 }, /* 25 */
45    { "char-code", 1, 1 }, /* 26 */
46    { "code-char", 1, 1 }, /* 27 */
47    { "*", -1, -1 }, /* 28 */
48    { "/", 1, -1 }, /* 29 */
49    { "cond", -1, -1 }, /* 30 */
50    { "select", 1, -1 }, /* 31 */
51    { "function", 1, 1 }, /* 32 */
52    { "mapcar", 2, -1 }, /* 33 */
53    { "funcall", 1, -1 }, /* 34 */
54    { ">", 2, 2 }, /* 35 */
55    { "<", 2, 2 }, /* 36 */
56    { "tmp-space", 0, 0 }, /* 37 */
57    { "perm-space", 0, 0 }, /* 38 */
58    { "symbol-name", 1, 1 }, /* 39 */
59    { "trace", 0, -1 }, /* 40 */
60    { "untrace", 0, -1 }, /* 41 */
61    { "digstr", 2, 2 }, /* 42 */
62    { "compile-file", 1, 1 }, /* 43 */
63    { "abs", 1, 1 }, /* 44 */
64    { "min", 2, 2 }, /* 45 */
65    { "max", 2, 2 }, /* 46 */
66    { ">=", 2, 2 }, /* 47 */
67    { "<=", 2, 2 }, /* 48 */
68    { "backquote", 1, 1 }, /* 49 */
69    { "comma", 1, 1 }, /* 50 */
70    { "nth", 2, 2 }, /* 51 */
71    { "resize-tmp", 1, 1 }, /* 52 */
72    { "resize-perm", 1, 1 }, /* 53 */
73    { "cos", 1, 1 }, /* 54 */
74    { "sin", 1, 1 }, /* 55 */
75    { "atan2", 2, 2 }, /* 56 */
76    { "enum", 1, -1 }, /* 57 */
77    { "quit", 0, 0 }, /* 58 */
78    { "eval", 1, 1 }, /* 59 */
79    { "break", 0, 0 }, /* 60 */
80    { "mod", 2, 2 }, /* 61 */
81    { "write_profile", 1, 1 }, /* 62 */
82    { "setq", 2, 2 }, /* 63 */
83    { "for", 4, -1 }, /* 64 */
84    { "open_file", 2, -1 }, /* 65 */
85    { "load", 1, 1 }, /* 66 */
86    { "bit-and", 1, -1 }, /* 67 */
87    { "bit-or", 1, -1 }, /* 68 */
88    { "bit-xor", 1, -1 }, /* 69 */
89    { "make-array", 1, -1 }, /* 70 */
90    { "aref", 2, 2 }, /* 71 */
91    { "if-1progn", 2, 3 }, /* 72 */
92    { "if-2progn", 2, 3 }, /* 73 */
93    { "if-12progn", 2, 3 }, /* 74 */
94    { "eq0", 1, 1 }, /* 75 */
95    { "preport", 1, 1 }, /* 76 */
96    { "search", 2, 2 }, /* 77 */
97    { "elt", 2, 2 }, /* 78 */
98    { "listp", 1, 1 }, /* 79 */
99    { "numberp", 1, 1 }, /* 80 */
100    { "do", 2, 3 }, /* 81 */
101    { "gc", 0, 0 }, /* 82 */
102    { "schar", 2, 2 }, /* 83 */
103    { "symbolp", 1, 1 }, /* 84 */
104    { "num2str", 1, 1 }, /* 85 */
105    { "nconc", 2, -1 }, /* 86 */
106    { "first", 1, 1 }, /* 87 */
107    { "second", 1, 1 }, /* 88 */
108    { "third", 1, 1 }, /* 89 */
109    { "fourth", 1, 1 }, /* 90 */
110    { "fifth", 1, 1 }, /* 91 */
111    { "sixth", 1, 1 }, /* 92 */
112    { "seventh", 1, 1 }, /* 93 */
113    { "eighth", 1, 1 }, /* 94 */
114    { "ninth", 1, 1 }, /* 95 */
115    { "tenth", 1, 1 }, /* 96 */
116    { "substr", 3, 3 }, /* 97 */
117    { "local_load", 1, 1 }, /* 98 */
118};
119
120enum sys_func_index
121{
122    SYS_FUNC_PRINT = 0,
123    SYS_FUNC_CAR = 1,
124    SYS_FUNC_CDR = 2,
125    SYS_FUNC_LENGTH = 3,
126    SYS_FUNC_LIST = 4,
127    SYS_FUNC_CONS = 5,
128    SYS_FUNC_QUOTE = 6,
129    SYS_FUNC_EQ = 7,
130    SYS_FUNC_PLUS = 8,
131    SYS_FUNC_MINUS = 9,
132    SYS_FUNC_IF = 10,
133    SYS_FUNC_SETF = 11,
134    SYS_FUNC_SYMBOL_LIST = 12,
135    SYS_FUNC_ASSOC = 13,
136    SYS_FUNC_NULL = 14,
137    SYS_FUNC_ACONS = 15,
138    SYS_FUNC_PAIRLIS = 16,
139    SYS_FUNC_LET = 17,
140    SYS_FUNC_DEFUN = 18,
141    SYS_FUNC_ATOM = 19,
142    SYS_FUNC_NOT = 20,
143    SYS_FUNC_AND = 21,
144    SYS_FUNC_OR = 22,
145    SYS_FUNC_PROGN = 23,
146    SYS_FUNC_EQUAL = 24,
147    SYS_FUNC_CONCATENATE = 25,
148    SYS_FUNC_CHAR_CODE = 26,
149    SYS_FUNC_CODE_CHAR = 27,
150    SYS_FUNC_TIMES = 28,
151    SYS_FUNC_SLASH = 29,
152    SYS_FUNC_COND = 30,
153    SYS_FUNC_SELECT = 31,
154    SYS_FUNC_FUNCTION = 32,
155    SYS_FUNC_MAPCAR = 33,
156    SYS_FUNC_FUNCALL = 34,
157    SYS_FUNC_GT = 35,
158    SYS_FUNC_LT = 36,
159    SYS_FUNC_TMP_SPACE = 37,
160    SYS_FUNC_PERM_SPACE = 38,
161    SYS_FUNC_SYMBOL_NAME = 39,
162    SYS_FUNC_TRACE = 40,
163    SYS_FUNC_UNTRACE = 41,
164    SYS_FUNC_DIGSTR = 42,
165    SYS_FUNC_COMPILE_FILE = 43,
166    SYS_FUNC_ABS = 44,
167    SYS_FUNC_MIN = 45,
168    SYS_FUNC_MAX = 46,
169    SYS_FUNC_GE = 47,
170    SYS_FUNC_LE = 48,
171    SYS_FUNC_BACKQUOTE = 49,
172    SYS_FUNC_COMMA = 50,
173    SYS_FUNC_NTH = 51,
174    SYS_FUNC_RESIZE_TMP = 52,
175    SYS_FUNC_RESIZE_PERM = 53,
176    SYS_FUNC_COS = 54,
177    SYS_FUNC_SIN = 55,
178    SYS_FUNC_ATAN2 = 56,
179    SYS_FUNC_ENUM = 57,
180    SYS_FUNC_QUIT = 58,
181    SYS_FUNC_EVAL = 59,
182    SYS_FUNC_BREAK = 60,
183    SYS_FUNC_MOD = 61,
184    SYS_FUNC_WRITE_PROFILE = 62,
185    SYS_FUNC_SETQ = 63,
186    SYS_FUNC_FOR = 64,
187    SYS_FUNC_OPEN_FILE = 65,
188    SYS_FUNC_LOAD = 66,
189    SYS_FUNC_BIT_AND = 67,
190    SYS_FUNC_BIT_OR = 68,
191    SYS_FUNC_BIT_XOR = 69,
192    SYS_FUNC_MAKE_ARRAY = 70,
193    SYS_FUNC_AREF = 71,
194    SYS_FUNC_IF_1PROGN = 72,
195    SYS_FUNC_IF_2PROGN = 73,
196    SYS_FUNC_IF_12PROGN = 74,
197    SYS_FUNC_EQ0 = 75,
198    SYS_FUNC_PREPORT = 76,
199    SYS_FUNC_SEARCH = 77,
200    SYS_FUNC_ELT = 78,
201    SYS_FUNC_LISTP = 79,
202    SYS_FUNC_NUMBERP = 80,
203    SYS_FUNC_DO = 81,
204    SYS_FUNC_GC = 82,
205    SYS_FUNC_SCHAR = 83,
206    SYS_FUNC_SYMBOLP = 84,
207    SYS_FUNC_NUM2STR = 85,
208    SYS_FUNC_NCONC = 86,
209    SYS_FUNC_FIRST = 87,
210    SYS_FUNC_SECOND = 88,
211    SYS_FUNC_THIRD = 89,
212    SYS_FUNC_FOURTH = 90,
213    SYS_FUNC_FIFTH = 91,
214    SYS_FUNC_SIXTH = 92,
215    SYS_FUNC_SEVENTH = 93,
216    SYS_FUNC_EIGHTH = 94,
217    SYS_FUNC_NINTH = 95,
218    SYS_FUNC_TENTH = 96,
219    SYS_FUNC_SUBSTR = 97,
220    SYS_FUNC_LOCAL_LOAD = 98,
221};
222
Note: See TracBrowser for help on using the repository browser.