public override Expr Clone() { Expr[] args = new Expr[_args.Length]; for (int i = 0; i < _args.Length; i++) { args[i] = _args[i].Clone(); } return(new CompositeExpr(_head.Clone(), args)); }
/* TJC: let id in parent expr take over * public override bool Equals(Object obj) { * if(obj.GetType() != this.GetType()) return false; * LetterSym ls = (LetterSym)obj; * return _letter.Equals(ls._letter) && _accent.Equals(ls._accent) && _subscript.Equals(ls._subscript) && _format.Equals(ls._format) && ((_tag == null && ls._tag == null) || _tag.Equals(ls._tag)); * } * public override int GetHashCode() { * return _letter.GetHashCode() ^ _accent.GetHashCode() ^ _subscript.GetHashCode() ^ _format.GetHashCode() ^ (_tag == null ? 0 : _tag.GetHashCode()); * }*/ public override Expr Clone() { return(new LetterSym(_letter, _accent, _subscript.Clone(), _format, _tag)); }
public override Expr Clone() { return(new WordSym(_word, _accent, _subscript.Clone(), _format, _tag)); }