//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // [....] //------------------------------------------------------------------------------ namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; internal sealed class ClonableStack : System.Collections.Generic.List { public ClonableStack() {} public ClonableStack(int capacity) : base(capacity) {} private ClonableStack(System.Collections.Generic.IEnumerable collection) : base(collection) { } public void Push(T value) { base.Add(value); } public T Pop() { int last = base.Count - 1; T result = base[last]; base.RemoveAt(last); return result; } public T Peek() { return base[base.Count - 1]; } public ClonableStack Clone() { return new ClonableStack(this); } } }