CallExpression* CfeNodeBuilder::call1(ProcedureSymbol* psym, Expression* arg1) { suif_vector<Expression*> args; args.push_back(arg1); return call(sym_addr(psym), &args); }
symbol * unnamed(void) { int c = 0; int v = 0; int l = 0; symbol * q = NULL; char s[256]; sprintf(s, "sym_%d", serial++); l = caddr(sym_addr(s, &c, &v, &q)); return q; }
symbol * line_number(int x) { int c = 0; int v = 0; int l = 0; symbol * q = NULL; char s[256]; sprintf(s, "lino_%d", x); l = caddr(sym_addr(s, &c, &v, &q)); return q; }
int member(void) { if (token[0] >= '0' && token[0] <= '9') { int v = atoi(token); scan(); return v; } if (sym_exists(token)) { int c = 0; int v = 0; sym_addr(token, &c, &v, &whatever); scan(); if (c) return v; } error("Unrecognized member"); return 0; }
symbol * name(int dcl) { symbol * q = NULL; if(sym_exists(token) || dcl) { int c = 0; int v = 0; int l = 0; l = caddr(sym_addr(token, &c, &v, &q)); scan(); g_mov_bx(l); g_push_bx(); dereference(); } else { error("Expected identifier"); } return q; }
CallExpression* CfeNodeBuilder::call0(ProcedureSymbol* psym) { suif_vector<Expression*> args; return call(sym_addr(psym), &args); }