Пример #1
0
void saveMacro(char *n, node *p, int i)
{
   symbol *q;
   symbol **b;

   DPRINT1(3,"saveMacro: named \"%s\"...\n",n);
   DSHOWTREE(3,0,"saveMacro:    ",p);
   if (i == PERMANENT)
     b = &macroCache;
   else
     b = &tempCache;
   if ( (q=findName(*b,n)) )
     if (q->val) {
         TPRINT1("magic: macro \"%s\" already defined\n",n);
     }
     else {
         q->val = (char *)p;
	 if (i == PERMANENT)
	   renameAllocation("newMacro",q->name);
     }
   else {
      q      = BaddName(b,n);
      q->val = (char *)p;
      if (i == PERMANENT)
	renameAllocation("newMacro",q->name);
   }
}
Пример #2
0
varInfo *RcreateVar(const char *n, symbol **pp, int type)
{  symbol   *p;
   varInfo  *v;

   if (findName((*pp),n))
      return(NULL);
   else
   {  p      = BaddName(pp,n);		/* add name to tree */
      v      = newVar();		/* get new variable packet */
      p->val = (char *)v;
      presetVal(v,type);		/* preset values based on type */
   }
   return(v);
}