/// <summary> /// Returns a MemberwiseClone of this object /// with the guarantee that the tail argument /// will be the last tokenizer in the new /// tokenizer chain. /// </summary> /// <param name="tail">the last tokenizer for the /// new chain</param> /// <returns>cloned chain with tail as the /// last tokenizer in the chain</returns> public ITokenizer Clone(ITokenizer tail) { AbstractFilter clone = MemberwiseClone() as AbstractFilter; if (null == _previous) { clone._previous = tail; } else { clone._previous = _previous.Clone(tail); } return(clone); }