View over a Qil operator having one child.
Don't construct QIL nodes directly; instead, use the QilFactory.
Inheritance: QilNode
Example #1
0
 protected override QilNode VisitDocumentCtor(QilUnary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckPrefixOf(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.Node);
     return XmlQueryTypeFactory.StringX;
 }
 public XmlQueryType CheckXPathPreceding(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.ContentS;
 }
 public XmlQueryType CheckDescendantOrSelf(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.Choice(node.Child.XmlType, XmlQueryTypeFactory.ContentS);
 }
 public XmlQueryType CheckRawTextCtor(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return XmlQueryTypeFactory.Text;
 }
 public XmlQueryType CheckAverage(QilUnary node) {
     XmlQueryType xmlType = node.Child.XmlType;
     CheckNumericXS(node.Child);
     return XmlQueryTypeFactory.PrimeProduct(xmlType, xmlType.MaybeEmpty ? XmlQueryCardinality.ZeroOrOne : XmlQueryCardinality.One);
 }
 public XmlQueryType CheckDocOrderDistinct(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtfS);
     return DistinctType(node.Child.XmlType);
 }
Example #8
0
 protected override QilNode VisitXPathNamespace(QilUnary n)
 {
     return(NoReplace(n));
 }
Example #9
0
 protected override QilNode VisitXsltGenerateId(QilUnary n)
 {
     return(NoReplace(n));
 }
Example #10
0
 protected override QilNode VisitIsEmpty(QilUnary n)
 {
     return(NoReplace(n));
 }
Example #11
0
 protected override QilNode VisitXPathPreceding(QilUnary n)
 {
     return(NoReplace(n));
 }
Example #12
0
 protected override QilNode VisitPrefixOf(QilUnary n)
 {
     return(NoReplace(n));
 }
Example #13
0
 protected override QilNode VisitNamespaceUriOf(QilUnary n)
 {
     return(NoReplace(n));
 }
Example #14
0
 protected override QilNode VisitLocalNameOf(QilUnary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckWarning(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return XmlQueryTypeFactory.Empty;
 }
Example #16
0
 protected override QilNode VisitXsltCopyOf(QilUnary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckNot(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.BooleanX);
     return XmlQueryTypeFactory.BooleanX;
 }
 public XmlQueryType CheckIsEmpty(QilUnary node)
 {
     return(XmlQueryTypeFactory.BooleanX);
 }
 //-----------------------------------------------
 // arithmetic operators
 //-----------------------------------------------
 public XmlQueryType CheckNegate(QilUnary node) {
     CheckNumericX(node.Child);
     return node.Child.XmlType;
 }
 //-----------------------------------------------
 // XPath operators
 //-----------------------------------------------
 public XmlQueryType CheckXPathNodeValue(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeS);
     return(XmlQueryTypeFactory.StringX);
 }
 public XmlQueryType CheckRoot(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.NodeNotRtf;
 }
 public XmlQueryType CheckXPathPreceding(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.ContentS);
 }
 public XmlQueryType CheckAncestorOrSelf(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.Choice(node.Child.XmlType, XmlQueryTypeFactory.DocumentOrElementS);
 }
 public XmlQueryType CheckXPathNamespace(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.NamespaceS);
 }
 //-----------------------------------------------
 // Node properties
 //-----------------------------------------------
 public XmlQueryType CheckNameOf(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.Node);
     return XmlQueryTypeFactory.QNameX;
 }
 //-----------------------------------------------
 // XSLT
 //-----------------------------------------------
 public XmlQueryType CheckXsltGenerateId(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtfS);
     return(XmlQueryTypeFactory.StringX);
 }
 public XmlQueryType CheckIsEmpty(QilUnary node) {
     return XmlQueryTypeFactory.BooleanX;
 }
 public XmlQueryType CheckOptimizeBarrier(QilUnary node)
 {
     return(node.Child.XmlType);
 }
 //-----------------------------------------------
 // XSLT
 //-----------------------------------------------
 public XmlQueryType CheckXsltGenerateId(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtfS);
     return XmlQueryTypeFactory.StringX;
 }
 public XmlQueryType CheckNop(QilUnary node)
 {
     return(node.Child.XmlType);
 }
 public XmlQueryType CheckError(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return XmlQueryTypeFactory.None;
 }
 public XmlQueryType CheckError(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return(XmlQueryTypeFactory.None);
 }
 public XmlQueryType CheckPositionOf(QilUnary node) {
     return XmlQueryTypeFactory.IntX;
 }
 public XmlQueryType CheckWarning(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return(XmlQueryTypeFactory.Empty);
 }
 //-----------------------------------------------
 // collection operators
 //-----------------------------------------------
 public XmlQueryType CheckLength(QilUnary node) {
     return XmlQueryTypeFactory.IntX;
 }
 public XmlQueryType CheckPositionOf(QilUnary node)
 {
     return(XmlQueryTypeFactory.IntX);
 }
 public XmlQueryType CheckMaximum(QilUnary node) {
     return CheckAverage(node);
 }
 public XmlQueryType CheckNot(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.BooleanX);
     return(XmlQueryTypeFactory.BooleanX);
 }
 //-----------------------------------------------
 // string operators
 //-----------------------------------------------
 public XmlQueryType CheckStrLength(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return XmlQueryTypeFactory.IntX;
 }
 //-----------------------------------------------
 // collection operators
 //-----------------------------------------------
 public XmlQueryType CheckLength(QilUnary node)
 {
     return(XmlQueryTypeFactory.IntX);
 }
 //-----------------------------------------------
 // XML navigation
 //-----------------------------------------------
 public XmlQueryType CheckContent(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.AttributeOrContentS;
 }
 public XmlQueryType CheckMaximum(QilUnary node)
 {
     return(CheckAverage(node));
 }
 public XmlQueryType CheckDescendant(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.ContentS;
 }
 //-----------------------------------------------
 // arithmetic operators
 //-----------------------------------------------
 public XmlQueryType CheckNegate(QilUnary node)
 {
     CheckNumericX(node.Child);
     return(node.Child.XmlType);
 }
 public XmlQueryType CheckAncestor(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.DocumentOrElementS;
 }
 //-----------------------------------------------
 // string operators
 //-----------------------------------------------
 public XmlQueryType CheckStrLength(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.StringX);
     return(XmlQueryTypeFactory.IntX);
 }
 public XmlQueryType CheckFollowingSibling(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.ContentS;
 }
 public XmlQueryType CheckDocOrderDistinct(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtfS);
     return(DistinctType(node.Child.XmlType));
 }
 public XmlQueryType CheckDocumentCtor(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtfS);
     return XmlQueryTypeFactory.UntypedDocument;
 }
 //-----------------------------------------------
 // XML navigation
 //-----------------------------------------------
 public XmlQueryType CheckContent(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.AttributeOrContentS);
 }
 public XmlQueryType CheckNamespaceUriOf(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.Node);
     return XmlQueryTypeFactory.StringX;
 }
 public XmlQueryType CheckParent(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.DocumentOrElementQ);
 }
 //-----------------------------------------------
 // Copy operators
 //-----------------------------------------------
 public XmlQueryType CheckDeepCopy(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return node.XmlType;
 }
 public XmlQueryType CheckRoot(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.NodeNotRtf);
 }
 //-----------------------------------------------
 // XPath operators
 //-----------------------------------------------
 public XmlQueryType CheckXPathNodeValue(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeS);
     return XmlQueryTypeFactory.StringX;
 }
 public XmlQueryType CheckDescendant(QilUnary node)
 {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.ContentS);
 }
 public XmlQueryType CheckXPathNamespace(QilUnary node) {
     CheckXmlType(node.Child, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.NamespaceS;
 }
 public XmlQueryType CheckNop(QilUnary node) {
     return node.Child.XmlType;
 }
        public XmlQueryType CheckXsltCopyOf(QilUnary node) {
            CheckXmlType(node.Child, XmlQueryTypeFactory.Node);

            if ((node.Child.XmlType.NodeKinds & XmlNodeKindFlags.Document) != 0)
                return XmlQueryTypeFactory.NodeNotRtfS;

            return node.Child.XmlType;
        }
Example #60
0
 protected override QilNode VisitRawTextCtor(QilUnary n)
 {
     return(NoReplace(n));
 }