home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / ABUSESRC.ZIP / AbuseSrc / macabuse / src / ltree.c < prev    next >
Encoding:
Text File  |  1997-05-20  |  923 b   |  49 lines

  1.  
  2. lisp_symbol *find_symbol(char *name)
  3. {
  4.   lisp_symbol *p=lsym_root;
  5.   while (p)
  6.   {
  7.     int cmp=strcmp(name,((char *)((lisp_symbol *)cs->car)->name)+sizeof(lisp_string));
  8.     if (cmp==0) return p;
  9.     else if (cmp<0) p=p->left;
  10.     else p=p->right;
  11.   }
  12.   return NULL;
  13. }
  14.  
  15.  
  16.  
  17. lisp_symbol *make_find_symbol(char *name)
  18. {
  19.   lisp_symbol *p=lsym_root;
  20.   lisp_symbol **parent=&lsym_root;
  21.   while (p)
  22.   {
  23.     int cmp=strcmp(name,((char *)((lisp_symbol *)cs->car)->name)+sizeof(lisp_string));
  24.     if (cmp==0) return p;
  25.     else if (cmp<0) 
  26.     { 
  27.       parent=&p->left;
  28.       p=p->left;
  29.     }
  30.     else 
  31.     {
  32.       parent=&p->right;
  33.       p=p->right;
  34.     }
  35.   }
  36.  
  37.   p=jmalloc(sizeof(lisp_symbol),"lsymbol");
  38.   p->type=L_SYMBOL;
  39.   p->name=new_lisp_string(name);
  40.   p->value=l_undefined;
  41.   p->function=l_undefined;
  42.   p->call_counter=0;
  43.   p->left=p->right=NULL;
  44.   *parent=p;
  45.   return p;
  46. }
  47.  
  48.  
  49.