3 * (C) Copyright May 7 1995, Edmond J. Breen.
\r
4 * ALL RIGHTS RESERVED.
\r
5 * This code may be copied for personal, non-profit use only.
\r
12 extern symentry_t *HTAB[];
\r
14 int iskeyword(keyword_t *keywords,char*id,int n);
\r
15 void eicpush(eicstack_t *s, val_t v);
\r
16 int eicpop(eicstack_t *s, val_t *pop);
\r
17 int init_hashtab(int size);
\r
18 int hashsmc(char * s,int mod);
\r
19 symentry_t * lookup(char nspace,char *id);
\r
20 void free_sym(symentry_t *sym);
\r
21 void remlevel(int level);
\r
22 void lut_CleanUp(size_t bot);
\r
23 void addoffsettolevel(char nspace,int level,int off);
\r
24 void marktype(type_expr *type, char mark);
\r
25 void markcode(symentry_t *sym,char mark);
\r
26 void marksyms(char mark);
\r
27 void remsym(symentry_t *sym);
\r
28 symentry_t * insertLUT(char nspace,char *id,int type);
\r
29 char * strsave(char *s);
\r
30 void newsymtype(symentry_t *sym, type_expr *t);
\r
31 void newsymARval(token_t *e1, val_t *v);
\r
32 int nextstackitem(int level);
\r
33 int stackit(symentry_t * sym,int level);
\r
34 void inittoken(token_t * e1);
\r
35 void freetoken(token_t * e1);
\r
37 void initcode(code_t * code);
\r
38 void killcode(symentry_t *sym);
\r
39 void freecode(code_t * code);
\r
40 void generate(code_t * code, int opcode,val_t *val,int ext);
\r
41 void copycode(code_t * c1, code_t * c2);
\r
42 void concode(code_t * c1, code_t * c2);
\r
43 void contoken(token_t * e1, token_t * e2);
\r
44 void swaptokens(token_t *e1, token_t * e2);
\r
46 #define setCodeLineNo(C,idx,No); ((C)->inst[idx].line = No)
\r
48 size_t lut_NextEntryNum(void);
\r