Blame


1 564ca709 2004-04-19 devnull /* acid.h */
2 564ca709 2004-04-19 devnull enum
3 564ca709 2004-04-19 devnull {
4 564ca709 2004-04-19 devnull Eof = -1,
5 564ca709 2004-04-19 devnull Strsize = 4096,
6 564ca709 2004-04-19 devnull Hashsize = 128,
7 564ca709 2004-04-19 devnull Maxarg = 512,
8 564ca709 2004-04-19 devnull NFD = 100,
9 564ca709 2004-04-19 devnull Maxproc = 50,
10 564ca709 2004-04-19 devnull Maxval = 10,
11 564ca709 2004-04-19 devnull Mempergc = 1024*1024,
12 564ca709 2004-04-19 devnull };
13 564ca709 2004-04-19 devnull
14 564ca709 2004-04-19 devnull /* #pragma varargck type "L" void */
15 564ca709 2004-04-19 devnull
16 564ca709 2004-04-19 devnull typedef struct Node Node;
17 564ca709 2004-04-19 devnull typedef struct String String;
18 564ca709 2004-04-19 devnull typedef struct Lsym Lsym;
19 564ca709 2004-04-19 devnull typedef struct List List;
20 564ca709 2004-04-19 devnull typedef struct Store Store;
21 564ca709 2004-04-19 devnull typedef struct Gc Gc;
22 564ca709 2004-04-19 devnull typedef struct Strc Strc;
23 564ca709 2004-04-19 devnull typedef struct Rplace Rplace;
24 564ca709 2004-04-19 devnull typedef struct Ptab Ptab;
25 564ca709 2004-04-19 devnull typedef struct Value Value;
26 564ca709 2004-04-19 devnull typedef struct Type Type;
27 564ca709 2004-04-19 devnull typedef struct Frtype Frtype;
28 564ca709 2004-04-19 devnull
29 564ca709 2004-04-19 devnull Extern int kernel;
30 564ca709 2004-04-19 devnull Extern int nlcount;
31 564ca709 2004-04-19 devnull Extern int remote;
32 564ca709 2004-04-19 devnull Extern int text;
33 564ca709 2004-04-19 devnull Extern int cor;
34 564ca709 2004-04-19 devnull Extern int silent;
35 564ca709 2004-04-19 devnull Extern Fhdr *fhdr;
36 564ca709 2004-04-19 devnull Extern Fhdr *chdr;
37 564ca709 2004-04-19 devnull Extern int line;
38 564ca709 2004-04-19 devnull Extern Biobuf* bout;
39 564ca709 2004-04-19 devnull Extern Biobuf* io[32];
40 564ca709 2004-04-19 devnull Extern int iop;
41 564ca709 2004-04-19 devnull Extern int pid;
42 564ca709 2004-04-19 devnull Extern char symbol[Strsize];
43 564ca709 2004-04-19 devnull Extern int interactive;
44 564ca709 2004-04-19 devnull Extern Node* code;
45 564ca709 2004-04-19 devnull Extern int na;
46 564ca709 2004-04-19 devnull Extern int wtflag;
47 564ca709 2004-04-19 devnull Extern Regs* correg;
48 564ca709 2004-04-19 devnull Extern Map* cormap;
49 564ca709 2004-04-19 devnull Extern Map* symmap;
50 564ca709 2004-04-19 devnull Extern Lsym* hash[Hashsize];
51 564ca709 2004-04-19 devnull Extern long dogc;
52 564ca709 2004-04-19 devnull Extern Rplace* ret;
53 564ca709 2004-04-19 devnull Extern char* symfil;
54 564ca709 2004-04-19 devnull Extern char* corfil;
55 564ca709 2004-04-19 devnull Extern int gotint;
56 564ca709 2004-04-19 devnull Extern long flen;
57 564ca709 2004-04-19 devnull Extern Gc* gcl;
58 564ca709 2004-04-19 devnull Extern int stacked;
59 13e66070 2004-04-20 devnull #define err aciderrjmp
60 564ca709 2004-04-19 devnull Extern jmp_buf err;
61 564ca709 2004-04-19 devnull Extern Node* prnt;
62 564ca709 2004-04-19 devnull Extern Node* fomt;
63 564ca709 2004-04-19 devnull Extern List* tracelist;
64 564ca709 2004-04-19 devnull Extern int initialising;
65 564ca709 2004-04-19 devnull Extern int quiet;
66 564ca709 2004-04-19 devnull Extern Fhdr* corhdr;
67 564ca709 2004-04-19 devnull Extern Fhdr* symhdr;
68 564ca709 2004-04-19 devnull
69 564ca709 2004-04-19 devnull extern void (*expop[])(Node*, Node*);
70 564ca709 2004-04-19 devnull #define expr(n, r) (r)->store.comt=0; (*expop[(unsigned char)((n)->op)])(n, r);
71 564ca709 2004-04-19 devnull
72 564ca709 2004-04-19 devnull enum
73 564ca709 2004-04-19 devnull {
74 564ca709 2004-04-19 devnull TINT,
75 564ca709 2004-04-19 devnull TFLOAT,
76 564ca709 2004-04-19 devnull TSTRING,
77 564ca709 2004-04-19 devnull TLIST,
78 564ca709 2004-04-19 devnull TCODE,
79 e637c944 2004-04-20 devnull NUMT,
80 564ca709 2004-04-19 devnull };
81 564ca709 2004-04-19 devnull
82 564ca709 2004-04-19 devnull struct Type
83 564ca709 2004-04-19 devnull {
84 564ca709 2004-04-19 devnull Type* next;
85 564ca709 2004-04-19 devnull int offset;
86 564ca709 2004-04-19 devnull char fmt;
87 564ca709 2004-04-19 devnull char depth;
88 564ca709 2004-04-19 devnull Lsym* type;
89 564ca709 2004-04-19 devnull Lsym* tag;
90 564ca709 2004-04-19 devnull Lsym* base;
91 564ca709 2004-04-19 devnull };
92 564ca709 2004-04-19 devnull
93 564ca709 2004-04-19 devnull struct Frtype
94 564ca709 2004-04-19 devnull {
95 564ca709 2004-04-19 devnull Lsym* var;
96 564ca709 2004-04-19 devnull Type* type;
97 564ca709 2004-04-19 devnull Frtype* next;
98 564ca709 2004-04-19 devnull };
99 564ca709 2004-04-19 devnull
100 564ca709 2004-04-19 devnull struct Ptab
101 564ca709 2004-04-19 devnull {
102 564ca709 2004-04-19 devnull int pid;
103 564ca709 2004-04-19 devnull /* int ctl; */
104 564ca709 2004-04-19 devnull };
105 564ca709 2004-04-19 devnull Extern Ptab ptab[Maxproc];
106 564ca709 2004-04-19 devnull
107 564ca709 2004-04-19 devnull struct Rplace
108 564ca709 2004-04-19 devnull {
109 564ca709 2004-04-19 devnull jmp_buf rlab;
110 564ca709 2004-04-19 devnull Node* stak;
111 564ca709 2004-04-19 devnull Node* val;
112 564ca709 2004-04-19 devnull Lsym* local;
113 564ca709 2004-04-19 devnull Lsym** tail;
114 564ca709 2004-04-19 devnull };
115 564ca709 2004-04-19 devnull
116 564ca709 2004-04-19 devnull struct Gc
117 564ca709 2004-04-19 devnull {
118 564ca709 2004-04-19 devnull char gcmark;
119 564ca709 2004-04-19 devnull Gc* gclink;
120 564ca709 2004-04-19 devnull };
121 564ca709 2004-04-19 devnull
122 564ca709 2004-04-19 devnull struct Store
123 564ca709 2004-04-19 devnull {
124 564ca709 2004-04-19 devnull char fmt;
125 564ca709 2004-04-19 devnull Type* comt;
126 564ca709 2004-04-19 devnull union {
127 564ca709 2004-04-19 devnull vlong ival;
128 564ca709 2004-04-19 devnull double fval;
129 564ca709 2004-04-19 devnull String* string;
130 564ca709 2004-04-19 devnull List* l;
131 564ca709 2004-04-19 devnull Node* cc;
132 564ca709 2004-04-19 devnull } u;
133 564ca709 2004-04-19 devnull };
134 564ca709 2004-04-19 devnull
135 564ca709 2004-04-19 devnull struct List
136 564ca709 2004-04-19 devnull {
137 564ca709 2004-04-19 devnull Gc gc;
138 564ca709 2004-04-19 devnull List* next;
139 564ca709 2004-04-19 devnull char type;
140 564ca709 2004-04-19 devnull Store store;
141 564ca709 2004-04-19 devnull };
142 564ca709 2004-04-19 devnull
143 564ca709 2004-04-19 devnull struct Value
144 564ca709 2004-04-19 devnull {
145 564ca709 2004-04-19 devnull char set;
146 564ca709 2004-04-19 devnull char type;
147 564ca709 2004-04-19 devnull Store store;
148 564ca709 2004-04-19 devnull Value* pop;
149 564ca709 2004-04-19 devnull Lsym* scope;
150 564ca709 2004-04-19 devnull Rplace* ret;
151 564ca709 2004-04-19 devnull };
152 564ca709 2004-04-19 devnull
153 564ca709 2004-04-19 devnull struct Lsym
154 564ca709 2004-04-19 devnull {
155 564ca709 2004-04-19 devnull char* name;
156 564ca709 2004-04-19 devnull int lexval;
157 564ca709 2004-04-19 devnull Lsym* hash;
158 564ca709 2004-04-19 devnull Value* v;
159 564ca709 2004-04-19 devnull Type* lt;
160 564ca709 2004-04-19 devnull Node* proc;
161 564ca709 2004-04-19 devnull Frtype* local;
162 564ca709 2004-04-19 devnull void (*builtin)(Node*, Node*);
163 564ca709 2004-04-19 devnull };
164 564ca709 2004-04-19 devnull
165 564ca709 2004-04-19 devnull struct Node
166 564ca709 2004-04-19 devnull {
167 564ca709 2004-04-19 devnull Gc gc;
168 564ca709 2004-04-19 devnull char op;
169 564ca709 2004-04-19 devnull char type;
170 564ca709 2004-04-19 devnull Node* left;
171 564ca709 2004-04-19 devnull Node* right;
172 564ca709 2004-04-19 devnull Lsym* sym;
173 564ca709 2004-04-19 devnull int builtin;
174 564ca709 2004-04-19 devnull Store store;
175 564ca709 2004-04-19 devnull };
176 564ca709 2004-04-19 devnull #define ZN (Node*)0
177 564ca709 2004-04-19 devnull
178 564ca709 2004-04-19 devnull struct String
179 564ca709 2004-04-19 devnull {
180 564ca709 2004-04-19 devnull Gc gc;
181 564ca709 2004-04-19 devnull char *string;
182 564ca709 2004-04-19 devnull int len;
183 564ca709 2004-04-19 devnull };
184 564ca709 2004-04-19 devnull
185 564ca709 2004-04-19 devnull List* addlist(List*, List*);
186 564ca709 2004-04-19 devnull void addvarsym(Fhdr*);
187 564ca709 2004-04-19 devnull List* al(int);
188 564ca709 2004-04-19 devnull Node* an(int, Node*, Node*);
189 564ca709 2004-04-19 devnull void append(Node*, Node*, Node*);
190 564ca709 2004-04-19 devnull int bool(Node*);
191 564ca709 2004-04-19 devnull void build(Node*);
192 564ca709 2004-04-19 devnull void call(char*, Node*, Node*, Node*, Node*);
193 564ca709 2004-04-19 devnull void catcher(void*, char*);
194 564ca709 2004-04-19 devnull void checkqid(int, int);
195 564ca709 2004-04-19 devnull void cmd(void);
196 564ca709 2004-04-19 devnull Node* con(int);
197 564ca709 2004-04-19 devnull List* construct(Node*);
198 564ca709 2004-04-19 devnull void ctrace(int);
199 564ca709 2004-04-19 devnull void decl(Node*);
200 564ca709 2004-04-19 devnull void defcomplex(Node*, Node*);
201 564ca709 2004-04-19 devnull void deinstall(int);
202 564ca709 2004-04-19 devnull void delete(List*, int n, Node*);
203 564ca709 2004-04-19 devnull void delvarsym(char*);
204 564ca709 2004-04-19 devnull void dostop(int);
205 564ca709 2004-04-19 devnull Lsym* enter(char*, int);
206 564ca709 2004-04-19 devnull void error(char*, ...);
207 564ca709 2004-04-19 devnull void execute(Node*);
208 564ca709 2004-04-19 devnull void fatal(char*, ...);
209 564ca709 2004-04-19 devnull ulong findframe(ulong);
210 564ca709 2004-04-19 devnull void flatten(Node**, Node*);
211 564ca709 2004-04-19 devnull void gc(void);
212 564ca709 2004-04-19 devnull char* getstatus(int);
213 564ca709 2004-04-19 devnull void* gmalloc(long);
214 564ca709 2004-04-19 devnull void indir(Map*, ulong, char, Node*);
215 e637c944 2004-04-20 devnull void initexpr(void);
216 e637c944 2004-04-20 devnull void initprint(void);
217 564ca709 2004-04-19 devnull void installbuiltin(void);
218 564ca709 2004-04-19 devnull void kinit(void);
219 564ca709 2004-04-19 devnull int Zfmt(Fmt*);
220 564ca709 2004-04-19 devnull int listcmp(List*, List*);
221 564ca709 2004-04-19 devnull int listlen(List*);
222 564ca709 2004-04-19 devnull List* listvar(char*, long);
223 564ca709 2004-04-19 devnull void loadmodule(char*);
224 564ca709 2004-04-19 devnull void loadvars(void);
225 564ca709 2004-04-19 devnull Lsym* look(char*);
226 564ca709 2004-04-19 devnull void ltag(char*);
227 564ca709 2004-04-19 devnull void marklist(List*);
228 564ca709 2004-04-19 devnull Lsym* mkvar(char*);
229 564ca709 2004-04-19 devnull void msg(int, char*);
230 564ca709 2004-04-19 devnull void notes(int);
231 564ca709 2004-04-19 devnull int nproc(char**);
232 564ca709 2004-04-19 devnull void nthelem(List*, int, Node*);
233 564ca709 2004-04-19 devnull int numsym(char);
234 564ca709 2004-04-19 devnull void odot(Node*, Node*);
235 564ca709 2004-04-19 devnull void pcode(Node*, int);
236 564ca709 2004-04-19 devnull void pexpr(Node*);
237 564ca709 2004-04-19 devnull int popio(void);
238 564ca709 2004-04-19 devnull void pstr(String*);
239 564ca709 2004-04-19 devnull void pushfd(int);
240 564ca709 2004-04-19 devnull void pushfile(char*);
241 564ca709 2004-04-19 devnull void pushstr(Node*);
242 564ca709 2004-04-19 devnull ulong raddr(char*);
243 564ca709 2004-04-19 devnull void readtext(char*);
244 564ca709 2004-04-19 devnull void readcore(void);
245 564ca709 2004-04-19 devnull void restartio(void);
246 564ca709 2004-04-19 devnull String *runenode(Rune*);
247 564ca709 2004-04-19 devnull int scmp(String*, String*);
248 564ca709 2004-04-19 devnull void sproc(int);
249 564ca709 2004-04-19 devnull String* stradd(String*, String*);
250 564ca709 2004-04-19 devnull String* strnode(char*);
251 564ca709 2004-04-19 devnull String* strnodlen(char*, int);
252 564ca709 2004-04-19 devnull #define system acidsystem
253 564ca709 2004-04-19 devnull char* system(void);
254 564ca709 2004-04-19 devnull int trlist(Map*, Regs*, ulong, ulong, Symbol*, int);
255 564ca709 2004-04-19 devnull void unwind(void);
256 564ca709 2004-04-19 devnull void userinit(void);
257 564ca709 2004-04-19 devnull void varreg(void);
258 564ca709 2004-04-19 devnull void varsym(void);
259 564ca709 2004-04-19 devnull Waitmsg* waitfor(int);
260 564ca709 2004-04-19 devnull void whatis(Lsym*);
261 564ca709 2004-04-19 devnull void windir(Map*, Node*, Node*, Node*);
262 564ca709 2004-04-19 devnull void yyerror(char*, ...);
263 564ca709 2004-04-19 devnull int yylex(void);
264 564ca709 2004-04-19 devnull int yyparse(void);
265 564ca709 2004-04-19 devnull
266 564ca709 2004-04-19 devnull enum
267 564ca709 2004-04-19 devnull {
268 564ca709 2004-04-19 devnull ONAME,
269 564ca709 2004-04-19 devnull OCONST,
270 564ca709 2004-04-19 devnull OMUL,
271 564ca709 2004-04-19 devnull ODIV,
272 564ca709 2004-04-19 devnull OMOD,
273 564ca709 2004-04-19 devnull OADD,
274 564ca709 2004-04-19 devnull OSUB,
275 564ca709 2004-04-19 devnull ORSH,
276 564ca709 2004-04-19 devnull OLSH,
277 564ca709 2004-04-19 devnull OLT,
278 564ca709 2004-04-19 devnull OGT,
279 564ca709 2004-04-19 devnull OLEQ,
280 564ca709 2004-04-19 devnull OGEQ,
281 564ca709 2004-04-19 devnull OEQ,
282 564ca709 2004-04-19 devnull ONEQ,
283 564ca709 2004-04-19 devnull OLAND,
284 564ca709 2004-04-19 devnull OXOR,
285 564ca709 2004-04-19 devnull OLOR,
286 564ca709 2004-04-19 devnull OCAND,
287 564ca709 2004-04-19 devnull OCOR,
288 564ca709 2004-04-19 devnull OASGN,
289 564ca709 2004-04-19 devnull OINDM,
290 564ca709 2004-04-19 devnull OEDEC,
291 564ca709 2004-04-19 devnull OEINC,
292 564ca709 2004-04-19 devnull OPINC,
293 564ca709 2004-04-19 devnull OPDEC,
294 564ca709 2004-04-19 devnull ONOT,
295 564ca709 2004-04-19 devnull OIF,
296 564ca709 2004-04-19 devnull ODO,
297 564ca709 2004-04-19 devnull OLIST,
298 564ca709 2004-04-19 devnull OCALL,
299 564ca709 2004-04-19 devnull OCTRUCT,
300 564ca709 2004-04-19 devnull OWHILE,
301 564ca709 2004-04-19 devnull OELSE,
302 564ca709 2004-04-19 devnull OHEAD,
303 564ca709 2004-04-19 devnull OTAIL,
304 564ca709 2004-04-19 devnull OAPPEND,
305 564ca709 2004-04-19 devnull ORET,
306 564ca709 2004-04-19 devnull OINDEX,
307 564ca709 2004-04-19 devnull OINDC,
308 564ca709 2004-04-19 devnull ODOT,
309 564ca709 2004-04-19 devnull OLOCAL,
310 564ca709 2004-04-19 devnull OFRAME,
311 564ca709 2004-04-19 devnull OCOMPLEX,
312 564ca709 2004-04-19 devnull ODELETE,
313 564ca709 2004-04-19 devnull OCAST,
314 564ca709 2004-04-19 devnull OFMT,
315 564ca709 2004-04-19 devnull OEVAL,
316 564ca709 2004-04-19 devnull OWHAT,
317 e637c944 2004-04-20 devnull NUMO,
318 564ca709 2004-04-19 devnull };