[gnu.g++.bug] Stringnode.c

jeffw@CSSUN.TAMU.EDU (Jeffrey A Waller) (10/10/89)

#include "Stringnode.h"

node *Stringnode::Copy()
{  return(new Stringnode(*this));
}

unsigned long Stringnode::IdentifySelf()
{  return(Stringnode_id);
}

int Stringnode::DerivedFrom(unsigned long derivedid)
{  return(derivedid == Stringnode_id || node::DerivedFrom(derivedid));
}

Stringnode::Stringnode(char *copyfrom = 0): (),stringdata(copyfrom) {}

Stringnode::Stringnode(Stringnode &sn): (sn),stringdata(sn.stringdata) {}

Stringnode &Stringnode::operator=(Stringnode &sn)
{  if(this == &sn) return(*this);
   node::operator=(sn);
   stringdata = sn.stringdata;
   return(*this);
}

int Stringnode::Same(node *comparenode)
{  if(!comparenode) return(FALSE);
   if(Stringnode_id != comparenode->IdentifySelf()) return(FALSE);
   return(stringdata == ((Stringnode*)comparenode)->stringdata);
}

void Stringnode::Print(ostream &output)
{  output << stringdata;
}

Stringnode::~Stringnode() {}