View over a Qil operator having two children.
Don't construct QIL nodes directly; instead, use the QilFactory.
Inheritance: QilNode
Beispiel #1
0
 protected virtual QilNode VisitXsltCopy(QilBinary n)
 {
     return(VisitChildren(n));
 }
 public XmlQueryType CheckDeref(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.StringX);
     return XmlQueryTypeFactory.ElementS;
 }
 public XmlQueryType CheckNamespaceDecl(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.StringX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.StringX);
     return XmlQueryTypeFactory.Namespace;
 }
 public XmlQueryType CheckStrParseQName(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.StringX);
     Check(node.Right.XmlType.IsSubtypeOf(XmlQueryTypeFactory.StringX) || node.Right.XmlType.IsSubtypeOf(XmlQueryTypeFactory.NamespaceS),
           node, "StrParseQName must take either a string or a list of namespace as its second argument");
     return XmlQueryTypeFactory.QNameX;
 }
 public XmlQueryType CheckAfter(QilBinary node) {
     return CheckIs(node);
 }
 public XmlQueryType CheckUnion(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtfS);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return DistinctType(XmlQueryTypeFactory.Sequence(node.Left.XmlType, node.Right.XmlType));
 }
 public XmlQueryType CheckSubtract(QilBinary node) {
     return CheckAdd(node);
 }
Beispiel #8
0
 public XmlQueryType CheckDifference(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtfS);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return(XmlQueryTypeFactory.AtMost(node.Left.XmlType, node.Left.XmlType.Cardinality));
 }
Beispiel #9
0
 public XmlQueryType CheckSubtract(QilBinary node)
 {
     return(CheckAdd(node));
 }
Beispiel #10
0
 public XmlQueryType CheckUnion(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtfS);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return(DistinctType(XmlQueryTypeFactory.Sequence(node.Left.XmlType, node.Right.XmlType)));
 }
Beispiel #11
0
 public XmlQueryType CheckIntersection(QilBinary node)
 {
     return(CheckUnion(node));
 }
Beispiel #12
0
 public XmlQueryType CheckOr(QilBinary node)
 {
     return(CheckAnd(node));
 }
Beispiel #13
0
 private void CheckNotDisjoint(QilBinary node)
 {
     Check(node.Left.XmlType.IsSubtypeOf(node.Right.XmlType) || node.Right.XmlType.IsSubtypeOf(node.Left.XmlType), node,
           "Node must not have arguments with disjoint types " + node.Left.XmlType + " and " + node.Right.XmlType);
 }
Beispiel #14
0
 public XmlQueryType CheckXsltCopy(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeS);
     return(XmlQueryTypeFactory.Choice(node.Left.XmlType, node.Right.XmlType));
 }
 protected virtual QilNode VisitRtfCtor(QilBinary n) { return VisitChildren(n); }
Beispiel #16
0
 public XmlQueryType CheckMultiply(QilBinary node)
 {
     return(CheckAdd(node));
 }
 //-----------------------------------------------
 // boolean operators
 //-----------------------------------------------
 public XmlQueryType CheckAnd(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.BooleanX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.BooleanX);
     return XmlQueryTypeFactory.BooleanX;
 }
Beispiel #18
0
 public XmlQueryType CheckDivide(QilBinary node)
 {
     return(CheckAdd(node));
 }
 public XmlQueryType CheckDifference(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtfS);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return XmlQueryTypeFactory.AtMost(node.Left.XmlType, node.Left.XmlType.Cardinality);
 }
Beispiel #20
0
 public XmlQueryType CheckModulo(QilBinary node)
 {
     return(CheckAdd(node));
 }
 public XmlQueryType CheckDivide(QilBinary node) {
     return CheckAdd(node);
 }
Beispiel #22
0
 public XmlQueryType CheckLe(QilBinary node)
 {
     return(CheckNe(node));
 }
 public XmlQueryType CheckLe(QilBinary node) {
     return CheckNe(node);
 }
Beispiel #24
0
 //-----------------------------------------------
 // node comparison operators
 //-----------------------------------------------
 public XmlQueryType CheckIs(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.BooleanX);
 }
 public XmlQueryType CheckAttribute(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.QNameX);
     return XmlQueryTypeFactory.AttributeQ;
 }
Beispiel #26
0
 public XmlQueryType CheckAfter(QilBinary node)
 {
     return(CheckIs(node));
 }
 public XmlQueryType CheckAttributeCtor(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.QNameX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return XmlQueryTypeFactory.UntypedAttribute;
 }
Beispiel #28
0
 public XmlQueryType CheckBefore(QilBinary node)
 {
     return(CheckIs(node));
 }
 public XmlQueryType CheckXsltCopy(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeS);
     return XmlQueryTypeFactory.Choice(node.Left.XmlType, node.Right.XmlType);
 }
Beispiel #30
0
 public XmlQueryType CheckAttribute(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.QNameX);
     return(XmlQueryTypeFactory.AttributeQ);
 }
 protected virtual QilNode VisitNamespaceDecl(QilBinary n) { return VisitChildren(n); }
Beispiel #32
0
 public XmlQueryType CheckNodeRange(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtf);
     return(XmlQueryTypeFactory.Choice(node.Left.XmlType, XmlQueryTypeFactory.ContentS, node.Right.XmlType));
 }
 protected virtual QilNode VisitXsltCopy(QilBinary n) { return VisitChildren(n); }
Beispiel #34
0
 public XmlQueryType CheckDeref(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.StringX);
     return(XmlQueryTypeFactory.ElementS);
 }
 public XmlQueryType CheckOr(QilBinary node) {
     return CheckAnd(node);
 }
Beispiel #36
0
 //-----------------------------------------------
 // XML construction
 //-----------------------------------------------
 public XmlQueryType CheckElementCtor(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.QNameX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return(XmlQueryTypeFactory.UntypedElement);
 }
 public XmlQueryType CheckIntersection(QilBinary node) {
     return CheckUnion(node);
 }
Beispiel #38
0
 public XmlQueryType CheckAttributeCtor(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.QNameX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return(XmlQueryTypeFactory.UntypedAttribute);
 }
 public XmlQueryType CheckAdd(QilBinary node) {
     CheckNumericX(node.Left);
     CheckNumericX(node.Right);
     CheckNotDisjoint(node);
     return node.Left.XmlType.TypeCode == XmlTypeCode.None ? node.Right.XmlType : node.Left.XmlType;
 }
Beispiel #40
0
 public XmlQueryType CheckPICtor(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.StringX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return(XmlQueryTypeFactory.PI);
 }
 public XmlQueryType CheckMultiply(QilBinary node) {
     return CheckAdd(node);
 }
Beispiel #42
0
 public XmlQueryType CheckNamespaceDecl(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.StringX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.StringX);
     return(XmlQueryTypeFactory.Namespace);
 }
 public XmlQueryType CheckModulo(QilBinary node) {
     return CheckAdd(node);
 }
Beispiel #44
0
 public XmlQueryType CheckRtfCtor(QilBinary node)
 {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtfS);
     CheckClassAndNodeType(node.Right, typeof(QilLiteral), QilNodeType.LiteralString);
     return(XmlQueryTypeFactory.Node);
 }
 //-----------------------------------------------
 // value comparison operators
 //-----------------------------------------------
 public XmlQueryType CheckNe(QilBinary node) {
     CheckAtomicX(node.Left);
     CheckAtomicX(node.Right);
     CheckNotDisjoint(node);
     return XmlQueryTypeFactory.BooleanX;
 }
Beispiel #46
0
 protected override QilNode VisitElementCtor(QilBinary n)
 {
     return(NoReplace(n));
 }
 //-----------------------------------------------
 // node comparison operators
 //-----------------------------------------------
 public XmlQueryType CheckIs(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.BooleanX;
 }
Beispiel #48
0
 protected override QilNode VisitAttributeCtor(QilBinary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckBefore(QilBinary node) {
     return CheckIs(node);
 }
Beispiel #50
0
 protected override QilNode VisitNamespaceDecl(QilBinary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckNodeRange(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtf);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtf);
     return XmlQueryTypeFactory.Choice(node.Left.XmlType, XmlQueryTypeFactory.ContentS, node.Right.XmlType);
 }
Beispiel #52
0
 protected override QilNode VisitIntersection(QilBinary n)
 {
     return(NoReplace(n));
 }
 //-----------------------------------------------
 // XML construction
 //-----------------------------------------------
 public XmlQueryType CheckElementCtor(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.QNameX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return XmlQueryTypeFactory.UntypedElement;
 }
Beispiel #54
0
 protected override QilNode VisitStrParseQName(QilBinary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckPICtor(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.StringX);
     CheckXmlType(node.Right, XmlQueryTypeFactory.NodeNotRtfS);
     return XmlQueryTypeFactory.PI;
 }
Beispiel #56
0
 protected override QilNode VisitGe(QilBinary n)
 {
     return(NoReplace(n));
 }
 public XmlQueryType CheckRtfCtor(QilBinary node) {
     CheckXmlType(node.Left, XmlQueryTypeFactory.NodeNotRtfS);
     CheckClassAndNodeType(node.Right, typeof(QilLiteral), QilNodeType.LiteralString);
     return XmlQueryTypeFactory.Node;
 }
 protected virtual QilNode VisitAttributeCtor(QilBinary n) { return VisitChildren(n); }
 private void CheckNotDisjoint(QilBinary node) {
     Check(node.Left.XmlType.IsSubtypeOf(node.Right.XmlType) || node.Right.XmlType.IsSubtypeOf(node.Left.XmlType), node,
           "Node must not have arguments with disjoint types " + node.Left.XmlType + " and " + node.Right.XmlType);
 }
Beispiel #60
0
 protected virtual QilNode VisitRtfCtor(QilBinary n)
 {
     return(VisitChildren(n));
 }