Listing 1: Symbol table class used to implement the

variable data objects


class  Symbol_Table    
    {
    private:
        struct  entry  {  char  name[25];        float  value;  entry  *next;     };
        entry  *head;
    public:
        Symbol_Table(  void  )  {  head=NULL;  };
        ~Symbol_Table(  void  )
            {
            entry  *temp;
            while  (head!=NULL)  {  temp=head;  head=head->next;
                                    delete  temp;  };
            }
        entry  *Is_In(  char  *name  )
            {
            entry  *temp=head;
            while  (temp!=NULL)
                if  (strcmp(name,temp->name)==0)  return  temp;
                else  temp=temp->next;
                return  NULL;
                }
            void  Set(  char  *name,  float  value  )
                {
            entry  *temp=Is_In(  name  );
            if  (temp==NULL)
                   {
                   entry  *new_head=new  entry;
                   strcpy(new_head->name,name);
                   new_head->value=value;
                   new_head->next=head;
                   head=new_head;
                   }
            else  temp->value=value;
            }
        float  Get(  char  *name  )
            {
            entry  *temp=Is_In(name);
            if  (temp!=NULL)  return  temp->value;  else  return  0;
            }
    };
/* End of File */