Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- SqlDataSourceCustomCommandPanel.cs
- ObservableCollection.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- DbParameterHelper.cs
- SynchronizedInputProviderWrapper.cs
- CodeAttachEventStatement.cs
- CacheChildrenQuery.cs
- SqlCaseSimplifier.cs
- TextEffect.cs
- ObjectNotFoundException.cs
- Empty.cs
- IriParsingElement.cs
- LongValidatorAttribute.cs
- SelectionList.cs
- UIElement.cs
- ObjectHelper.cs
- DecoderFallbackWithFailureFlag.cs
- MobileUITypeEditor.cs
- XmlSchemaExporter.cs
- ConfigurationValidatorAttribute.cs
- XmlAtomicValue.cs
- EntityContainerEmitter.cs
- UpdateTranslator.cs
- Lock.cs
- OleDbEnumerator.cs
- IncrementalCompileAnalyzer.cs
- URLString.cs
- _TransmitFileOverlappedAsyncResult.cs
- Window.cs
- EventLogPermission.cs
- WebPermission.cs
- ResolveCriteriaCD1.cs
- EntityCommandDefinition.cs
- AmbiguousMatchException.cs
- StringInfo.cs
- ListViewDataItem.cs
- ProcessHostMapPath.cs
- BitmapSizeOptions.cs
- ApplicationDirectoryMembershipCondition.cs
- InkPresenter.cs
- SingleObjectCollection.cs
- TiffBitmapDecoder.cs
- ProfileSettingsCollection.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- HttpServerVarsCollection.cs
- SslStreamSecurityBindingElement.cs
- SecurityDocument.cs
- TabControlAutomationPeer.cs
- HtmlControlPersistable.cs
- MethodRental.cs
- InvalidOleVariantTypeException.cs
- AdornedElementPlaceholder.cs
- DecodeHelper.cs
- VariableExpressionConverter.cs
- LabelEditEvent.cs
- PointAnimationUsingPath.cs
- Decorator.cs
- TableLayoutColumnStyleCollection.cs
- AnonymousIdentificationModule.cs
- AssemblyFilter.cs
- SqlCacheDependencyDatabase.cs
- ProfileService.cs
- QilChoice.cs
- NetworkCredential.cs
- TabControlAutomationPeer.cs
- PhysicalFontFamily.cs
- XmlMemberMapping.cs
- SecurityElementBase.cs
- Separator.cs
- InstanceKeyCompleteException.cs
- DefaultWorkflowTransactionService.cs
- StreamResourceInfo.cs
- ShaperBuffers.cs
- WeakReadOnlyCollection.cs
- SmtpFailedRecipientsException.cs
- LayoutManager.cs
- BufferModeSettings.cs
- RtfToXamlReader.cs
- PermissionRequestEvidence.cs
- RemotingException.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- Compiler.cs
- SafeArrayTypeMismatchException.cs
- TargetPerspective.cs
- MethodInfo.cs
- DeferredTextReference.cs
- FormViewInsertedEventArgs.cs
- MobileCapabilities.cs
- TraceSection.cs
- TimeSpanHelper.cs
- StandardOleMarshalObject.cs
- ListBase.cs
- StyleXamlParser.cs
- CompilerGeneratedAttribute.cs
- ParserContext.cs
- RsaElement.cs
- _NativeSSPI.cs
- EqualityArray.cs
- SizeConverter.cs
- UnsafeCollabNativeMethods.cs