static int show(void) { int t; int h = EiC_work_tab; AR_t arg; EiC_work_tab = stand_tab; if ((t = EiC_lexan()) == ID || t == TYPENAME) { if(!EiC_showMacro(token->Val.sym->id)) { /* test macros first */ t = EiC_gettype(token->Val.sym->type); if (t == ID) { EiC_remsym(token->Val.sym); /* * check for struct/union tag name. */ if ((token->Val.sym = EiC_lookup(tag_tab, EiC_LEXEM)) == NULL) { EiC_error("Unknown identifier %s",EiC_LEXEM); return 0; } fputs("Tag::",stdout); } displaySclass(token->Val.sym); fputs(token->Val.sym->id, stdout); fputs(" -> ", stdout); EiC_showdectype(token->Val.sym->type, 1,stdout); fputc('\n',stdout); /* -----------------------------------------------------*/ t = EiC_gettype(token->Val.sym->type); if (! (token->Val.sym->sclass == c_typedef || (t==t_builtin) || (t==t_func) || (t==t_funcdec))) { fputs("value= ", stdout); arg.v=EiC_ENV->AR[token->Val.sym->val.ival].v; arg.type = token->Val.sym->type; EiC_showvalue(&arg); } /* -------------------------------------------------*/ if (t == t_func && EiC_listcodeON) { if (EiC_ENV->AR[token->Val.sym->val.ival].v.p.p) EiC_listcode(EiC_ENV->AR[token->Val.sym->val.ival].v.p.p); } } else EiC_remsym(token->Val.sym); } else EiC_error("Expected identifier"); EiC_work_tab = h; return 1; }
void do_displays() { if(EiC_verboseON) printf("\ninstr = %d sARsize = %d lsp = %d aARsize = %d\n" "EiC_tot_alloc = %lu EiC_tot_memory = %lu\n", EiC_ENV->CODE.nextinst, EiC_ENV->ARsize, EiC_ENV->lsp, EiC_ENV->LARsize, (unsigned long)EiC_tot_alloc, EiC_tot_memory); EiC_listcode(&EiC_ENV->CODE); }