CallExpression* CfeNodeBuilder::call1(ProcedureSymbol* psym,
				   Expression* arg1)
{
  suif_vector<Expression*> args;
  args.push_back(arg1);
  return call(sym_addr(psym), &args);
}
Exemple #2
0
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;
}
Exemple #3
0
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;
}
Exemple #4
0
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;
}
Exemple #5
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);
}