3 * (C) Copyright May 7 1995, Edmond J. Breen.
5 * This code may be copied for personal, non-profit use only.
17 extern symentry_t *EiC_HTAB[];
19 int EiC_iskeyword(keyword_t *keywords,char*id,int n);
20 void EiC_eicpush(eicstack_t *s, val_t v);
21 int EiC_eicpop(eicstack_t *s, val_t *pop);
22 int init_hashtab(int size);
23 int hashsmc(char * s,int mod);
24 symentry_t * EiC_lookup(char nspace,char *id);
25 symentry_t * EiC_lookup_by_callback(char nspace, void* callback);
26 void free_sym(symentry_t *sym);
27 void EiC_remlevel(int level);
28 void EiC_lut_CleanUp(size_t bot);
29 void EiC_addoffsettolevel(char nspace,int level,int off);
30 void EiC_marktype(type_expr *type, char mark);
31 void EiC_marksyms(char mark);
32 void EiC_remsym(symentry_t *sym);
33 symentry_t * EiC_insertLUT(char nspace,char *id,int type);
34 char * EiC_strsave(char *s);
35 void EiC_newsymtype(symentry_t *sym, type_expr *t);
36 void newsymARval(token_t *e1, val_t *v);
37 int nextstackitem(int level);
38 int EiC_stackit(symentry_t * sym,int level);
39 void EiC_inittoken(token_t * e1);
40 void EiC_freetoken(token_t * e1);
42 void initcode(code_t * code);
43 void EiC_killcode(symentry_t *sym);
44 void EiC_freecode(code_t * code);
45 void EiC_generate(code_t * code, int opcode,val_t *val,int ext);
46 void copycode(code_t * c1, code_t * c2);
47 void EiC_concode(code_t * c1, code_t * c2);
48 void EiC_contoken(token_t * e1, token_t * e2);
49 void EiC_swaptokens(token_t *e1, token_t * e2);
51 #define setCodeLineNo(C,idx,No); ((C)->inst[idx].line = No)
53 size_t EiC_lut_NextEntryNum(void);