Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / ParserStack.cs / 1305600 / ParserStack.cs
/****************************************************************************\ * * File: ParserStack.cs * * Purpose: ParserStack...once was in XamlReaderHelper.cs * * History: * 11/21/08: [....] Moved from XamlReaderHelper.cs as we were replacing the parser. * * Copyright (C) 2008 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Xml; using System.Xml.Serialization; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Globalization; using MS.Utility; using System.Collections.Specialized; using Microsoft.Win32; using System.Runtime.InteropServices; using MS.Internal; using System.Windows.Markup; #if !PBTCOMPILER using System.Windows; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Shapes; #endif #if PBTCOMPILER namespace MS.Internal.Markup #else namespace System.Windows.Markup #endif { ////// Parser Context stack /// The built-in Stack class doesn't let you do things like look at nodes beyond the top of the stack... /// so we'll use this instead. Note that this is not a complete stack implementation -- if you try to /// convert to array or some such, you'll be missing a couple elements. But this is plenty for our purposes. /// Main goal is to track current/parent context with a minimum of overhead. /// This class is internal so it can be shared with the BamlRecordReader /// internal class ParserStack : ArrayList { ////// Creates a default ParserStack /// internal ParserStack() : base() { } ////// Creates a clone. /// private ParserStack(ICollection collection) : base(collection) { } #region StackOverrides public void Push(object o) { Add(o); } public object Pop() { object o = this[Count - 1]; RemoveAt(Count - 1); return o; } #if !PBTCOMPILER public object Peek() { // Die if peeking on empty stack return this[Count - 1]; } #endif public override object Clone() { return new ParserStack(this); } #endregion // StackOverrides #region Properties ////// Returns the Current Context on the stack /// internal object CurrentContext { get { return Count > 0 ? this[Count - 1] : null; } } ////// Returns the Parent of the Current Context /// internal object ParentContext { get { return Count > 1 ? this[Count - 2] : null; } } ////// Returns the GrandParent of the Current Context /// internal object GrandParentContext { get { return Count > 2 ? this[Count - 3] : null; } } #if !PBTCOMPILER ////// Returns the GreatGrandParent of the Current Context /// internal object GreatGrandParentContext { get { return Count > 3 ? this[Count - 4] : null; } } #endif #endregion // Properties } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SessionStateUtil.cs
- WindowsStreamSecurityUpgradeProvider.cs
- _OSSOCK.cs
- DataGridTable.cs
- figurelength.cs
- SingleTagSectionHandler.cs
- Simplifier.cs
- ZoomPercentageConverter.cs
- XpsDocument.cs
- MemberInfoSerializationHolder.cs
- Utils.cs
- WasHostedComPlusFactory.cs
- CookielessHelper.cs
- SqlSupersetValidator.cs
- FragmentNavigationEventArgs.cs
- DockingAttribute.cs
- Util.cs
- MiniModule.cs
- HandlerFactoryWrapper.cs
- HttpResponseInternalWrapper.cs
- ObjectReaderCompiler.cs
- ClientScriptManager.cs
- RadioButtonBaseAdapter.cs
- DataGridColumnReorderingEventArgs.cs
- AdCreatedEventArgs.cs
- ClipboardProcessor.cs
- DataGridViewImageColumn.cs
- AnnouncementEventArgs.cs
- ComponentFactoryHelpers.cs
- ObjectToken.cs
- DataGridRow.cs
- ApplyTemplatesAction.cs
- ChoiceConverter.cs
- UserMapPath.cs
- OutputCacheProfileCollection.cs
- DelegateSerializationHolder.cs
- SqlReorderer.cs
- Dispatcher.cs
- RealProxy.cs
- SQLBoolean.cs
- Rect.cs
- VirtualPath.cs
- XamlParser.cs
- OdbcEnvironment.cs
- XmlSchemaObjectCollection.cs
- HTMLTagNameToTypeMapper.cs
- ProcessStartInfo.cs
- log.cs
- MembershipUser.cs
- DynamicMethod.cs
- VScrollBar.cs
- XmlMtomReader.cs
- XmlDictionaryReaderQuotas.cs
- ValueUtilsSmi.cs
- TextViewBase.cs
- ListItemParagraph.cs
- OracleRowUpdatedEventArgs.cs
- SamlSubjectStatement.cs
- ProxyAssemblyNotLoadedException.cs
- SchemaImporter.cs
- HttpProfileBase.cs
- WebRequestModuleElement.cs
- HostProtectionException.cs
- PagedDataSource.cs
- StreamWriter.cs
- IntranetCredentialPolicy.cs
- Renderer.cs
- ShutDownListener.cs
- DataGridCellEditEndingEventArgs.cs
- GlyphRunDrawing.cs
- WindowsListViewItemStartMenu.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ToolStripStatusLabel.cs
- StrokeCollectionConverter.cs
- DataGridSortCommandEventArgs.cs
- Point4D.cs
- RepeaterCommandEventArgs.cs
- Duration.cs
- FormatException.cs
- MimeWriter.cs
- MenuCommand.cs
- UdpTransportSettings.cs
- InternalPolicyElement.cs
- CustomErrorsSectionWrapper.cs
- XmlRootAttribute.cs
- BuildManager.cs
- ProfessionalColorTable.cs
- StateManagedCollection.cs
- TreeNodeMouseHoverEvent.cs
- PixelFormat.cs
- DiagnosticsConfiguration.cs
- EncoderFallback.cs
- CompiledRegexRunnerFactory.cs
- ScrollChrome.cs
- ScrollChrome.cs
- GlyphRun.cs
- WindowsScrollBarBits.cs
- SqlPersonalizationProvider.cs
- PagePropertiesChangingEventArgs.cs
- HwndTarget.cs