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
- ControlCollection.cs
- ContractReference.cs
- ReadOnlyDataSource.cs
- TableColumn.cs
- MenuItemCollection.cs
- StrongNameUtility.cs
- ByteStreamGeometryContext.cs
- BooleanStorage.cs
- CachedBitmap.cs
- SQlBooleanStorage.cs
- SoapElementAttribute.cs
- ReferenceEqualityComparer.cs
- ScaleTransform3D.cs
- SiteMapHierarchicalDataSourceView.cs
- FlowDocumentPage.cs
- SqlConnectionPoolGroupProviderInfo.cs
- Globals.cs
- PersistChildrenAttribute.cs
- ICspAsymmetricAlgorithm.cs
- MouseButtonEventArgs.cs
- UnmanagedHandle.cs
- Choices.cs
- TaskFileService.cs
- BufferedGraphicsContext.cs
- RepeatEnumerable.cs
- OdbcParameter.cs
- PolicyChain.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TableCell.cs
- StringComparer.cs
- QueryTask.cs
- MethodAccessException.cs
- InputLanguageSource.cs
- SqlDataSourceView.cs
- WorkflowDefinitionDispenser.cs
- GraphicsPath.cs
- RequestValidator.cs
- ResXResourceWriter.cs
- ReceiveActivityDesignerTheme.cs
- IgnorePropertiesAttribute.cs
- PrefixHandle.cs
- Rfc2898DeriveBytes.cs
- DeviceContext2.cs
- GraphicsState.cs
- BindStream.cs
- FacetEnabledSchemaElement.cs
- MetadataHelper.cs
- MaskedTextProvider.cs
- HandlerFactoryWrapper.cs
- HttpCapabilitiesBase.cs
- WSFederationHttpBinding.cs
- WindowsAuthenticationEventArgs.cs
- WeakRefEnumerator.cs
- __Error.cs
- BookmarkScopeInfo.cs
- CompiledXpathExpr.cs
- SqlUDTStorage.cs
- ImageListUtils.cs
- CmsInterop.cs
- SystemEvents.cs
- Stylesheet.cs
- SimpleBitVector32.cs
- ObjectView.cs
- GeneralTransform.cs
- GridViewSelectEventArgs.cs
- Adorner.cs
- HtmlAnchor.cs
- ProfilePropertySettings.cs
- SqlSelectStatement.cs
- ClipboardData.cs
- _FtpDataStream.cs
- ConfigurationConverterBase.cs
- RouteItem.cs
- SqlDataSourceCommandEventArgs.cs
- XmlSecureResolver.cs
- AllMembershipCondition.cs
- Hash.cs
- ConfigXmlElement.cs
- BasicAsyncResult.cs
- TreeSet.cs
- AssertValidation.cs
- SystemSounds.cs
- HitTestWithGeometryDrawingContextWalker.cs
- StringFreezingAttribute.cs
- Rotation3D.cs
- HTTPNotFoundHandler.cs
- EntityContainerEmitter.cs
- OleDbDataReader.cs
- BaseAutoFormat.cs
- MenuAutomationPeer.cs
- RangeContentEnumerator.cs
- Bitmap.cs
- DataGridViewTextBoxCell.cs
- StreamInfo.cs
- XmlReturnReader.cs
- TreeViewDesigner.cs
- DataGridViewControlCollection.cs
- Utils.cs
- WebPartConnectionsCloseVerb.cs
- ReflectionUtil.cs