Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / XmlUtils / System / Xml / Xsl / QIL / QilFunction.cs / 1 / QilFunction.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; namespace System.Xml.Xsl.Qil { ////// An anonymous QilExpression function node. /// ////// internal class QilFunction : QilReference { private QilNode arguments, definition, sideEffects; //----------------------------------------------- // Constructor //----------------------------------------------- ///Function is a block, so it may introduce assignments (scoped to the function body). /// Additionally, it has an argument list, which will be assigned values /// when the function is invoked. ///The XmlType property defines the expected return type of this function. /// Normally, this should be the same as its definition's types, so setting the function /// definition changes the function's types. In some rare cases, a compiler may wish to /// override the types after setting the function's definition (for example, an XQuery /// might define a function's return type to be wider than its definition would imply.) ////// Construct a node /// public QilFunction(QilNodeType nodeType, QilNode arguments, QilNode definition, QilNode sideEffects, XmlQueryType resultType) : base(nodeType) { this.arguments = arguments; this.definition = definition; this.sideEffects = sideEffects; this.xmlType = resultType; } //----------------------------------------------- // IListmethods -- override //----------------------------------------------- public override int Count { get { return 3; } } public override QilNode this[int index] { get { switch (index) { case 0: return this.arguments; case 1: return this.definition; case 2: return this.sideEffects; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: this.arguments = value; break; case 1: this.definition = value; break; case 2: this.sideEffects = value; break; default: throw new IndexOutOfRangeException(); } } } //----------------------------------------------- // QilFunction methods //----------------------------------------------- /// /// Formal arguments of this function. /// public QilList Arguments { get { return (QilList) this.arguments; } set { this.arguments = value; } } ////// Body of this function. /// public QilNode Definition { get { return this.definition; } set { this.definition = value; } } ////// QilNodeType.True if this function might have side-effects. /// public bool MaybeSideEffects { get { return this.sideEffects.NodeType == QilNodeType.True; } set { this.sideEffects.NodeType = value ? QilNodeType.True : QilNodeType.False; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; namespace System.Xml.Xsl.Qil { ////// An anonymous QilExpression function node. /// ////// internal class QilFunction : QilReference { private QilNode arguments, definition, sideEffects; //----------------------------------------------- // Constructor //----------------------------------------------- ///Function is a block, so it may introduce assignments (scoped to the function body). /// Additionally, it has an argument list, which will be assigned values /// when the function is invoked. ///The XmlType property defines the expected return type of this function. /// Normally, this should be the same as its definition's types, so setting the function /// definition changes the function's types. In some rare cases, a compiler may wish to /// override the types after setting the function's definition (for example, an XQuery /// might define a function's return type to be wider than its definition would imply.) ////// Construct a node /// public QilFunction(QilNodeType nodeType, QilNode arguments, QilNode definition, QilNode sideEffects, XmlQueryType resultType) : base(nodeType) { this.arguments = arguments; this.definition = definition; this.sideEffects = sideEffects; this.xmlType = resultType; } //----------------------------------------------- // IListmethods -- override //----------------------------------------------- public override int Count { get { return 3; } } public override QilNode this[int index] { get { switch (index) { case 0: return this.arguments; case 1: return this.definition; case 2: return this.sideEffects; default: throw new IndexOutOfRangeException(); } } set { switch (index) { case 0: this.arguments = value; break; case 1: this.definition = value; break; case 2: this.sideEffects = value; break; default: throw new IndexOutOfRangeException(); } } } //----------------------------------------------- // QilFunction methods //----------------------------------------------- /// /// Formal arguments of this function. /// public QilList Arguments { get { return (QilList) this.arguments; } set { this.arguments = value; } } ////// Body of this function. /// public QilNode Definition { get { return this.definition; } set { this.definition = value; } } ////// QilNodeType.True if this function might have side-effects. /// public bool MaybeSideEffects { get { return this.sideEffects.NodeType == QilNodeType.True; } set { this.sideEffects.NodeType = value ? QilNodeType.True : QilNodeType.False; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PointLightBase.cs
- CatalogPartCollection.cs
- ArraySet.cs
- PropertyTabAttribute.cs
- BrowserCapabilitiesFactoryBase.cs
- TogglePatternIdentifiers.cs
- Array.cs
- DoubleCollectionValueSerializer.cs
- NativeMethods.cs
- DynamicPropertyReader.cs
- RadialGradientBrush.cs
- ExpandedProjectionNode.cs
- AttributeCollection.cs
- RegexCompilationInfo.cs
- SQLInt32.cs
- VScrollBar.cs
- CompiledQuery.cs
- XmlLoader.cs
- DbProviderManifest.cs
- ExtendedPropertiesHandler.cs
- UncommonField.cs
- Activity.cs
- recordstate.cs
- PermissionSetEnumerator.cs
- GeometryConverter.cs
- MembershipUser.cs
- loginstatus.cs
- NativeMethods.cs
- CdpEqualityComparer.cs
- StyleSheetComponentEditor.cs
- DataGridViewSortCompareEventArgs.cs
- RijndaelCryptoServiceProvider.cs
- parserscommon.cs
- Int32CollectionValueSerializer.cs
- TagPrefixAttribute.cs
- ProfileManager.cs
- PackagingUtilities.cs
- PictureBox.cs
- regiisutil.cs
- WindowsTokenRoleProvider.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- BaseAddressPrefixFilterElementCollection.cs
- XmlUrlResolver.cs
- HandleCollector.cs
- GeneralTransform3DGroup.cs
- WindowsComboBox.cs
- XamlReader.cs
- WindowInteractionStateTracker.cs
- OleDbException.cs
- SrgsGrammar.cs
- WorkflowRuntimeSection.cs
- RubberbandSelector.cs
- DataKey.cs
- FlowLayout.cs
- BuildProviderUtils.cs
- XdrBuilder.cs
- SystemDiagnosticsSection.cs
- EntityDataSourceWrapperCollection.cs
- UnsafeNativeMethods.cs
- WebPartsSection.cs
- SecurityTokenAuthenticator.cs
- COAUTHIDENTITY.cs
- TlsSspiNegotiation.cs
- ClientRolePrincipal.cs
- DirectoryObjectSecurity.cs
- NamespaceDecl.cs
- ArglessEventHandlerProxy.cs
- SynchronousChannel.cs
- Oci.cs
- SmtpReplyReader.cs
- SmtpNegotiateAuthenticationModule.cs
- NativeMethods.cs
- RectIndependentAnimationStorage.cs
- LinkClickEvent.cs
- DataBoundControl.cs
- CellQuery.cs
- MenuDesigner.cs
- HttpRequestCacheValidator.cs
- AbandonedMutexException.cs
- DefinitionBase.cs
- XmlNavigatorFilter.cs
- SubstitutionList.cs
- XPathDocumentIterator.cs
- ToolStripPanel.cs
- StringReader.cs
- SystemTcpStatistics.cs
- WindowsGraphicsCacheManager.cs
- StylusPointProperties.cs
- SafeNativeMemoryHandle.cs
- StrongNameMembershipCondition.cs
- RoleManagerEventArgs.cs
- WindowsListViewItemCheckBox.cs
- UdpDiscoveryEndpointProvider.cs
- DataControlFieldCollection.cs
- ScrollChrome.cs
- PostBackOptions.cs
- HttpValueCollection.cs
- ShapeTypeface.cs
- XmlValidatingReader.cs
- WebPartVerbCollection.cs