Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ NipOffTypeNameCheck()

void System.Xml.Xsl.Xslt.TemplateMatch.NipOffTypeNameCheck ( )
inlineprivate

Definition at line 58 of file TemplateMatch.cs.

59 {
60 QilBinary[] array = new QilBinary[4];
61 int num = -1;
63 _nodeKind = XmlNodeKindFlags.None;
64 _qname = null;
65 while (qilNode.NodeType == QilNodeType.And)
66 {
67 qilNode = (array[++num & 3] = (QilBinary)qilNode).Left;
68 }
69 if (qilNode.NodeType != QilNodeType.IsType)
70 {
71 return;
72 }
74 if (qilBinary.Left != _iterator || qilBinary.Right.NodeType != QilNodeType.LiteralType)
75 {
76 return;
77 }
78 XmlNodeKindFlags nodeKinds = qilBinary.Right.XmlType.NodeKinds;
79 if (!Bits.ExactlyOne((uint)nodeKinds))
80 {
81 return;
82 }
85 QilBinary qilBinary2 = array[num & 3];
86 if (qilBinary2 != null && qilBinary2.Right.NodeType == QilNodeType.Eq)
87 {
89 if (qilBinary3.Left.NodeType == QilNodeType.NameOf && ((QilUnary)qilBinary3.Left).Child == _iterator && qilBinary3.Right.NodeType == QilNodeType.LiteralQName)
90 {
92 _qname = (QilName)((QilLiteral)qilBinary3.Right).Value;
93 num--;
94 }
95 }
96 QilBinary qilBinary4 = array[num & 3];
97 QilBinary qilBinary5 = array[--num & 3];
98 if (qilBinary5 != null)
99 {
101 }
102 else if (qilBinary4 != null)
103 {
104 _condition = qilBinary4.Right;
105 }
106 else
107 {
108 _condition = null;
109 }
110 }

References System.Xml.Xsl.Xslt.TemplateMatch._condition, System.Xml.Xsl.Xslt.TemplateMatch._iterator, System.Xml.Xsl.Xslt.TemplateMatch._nodeKind, System.Xml.Xsl.Xslt.TemplateMatch._qname, System.array, System.Xml.Dictionary, and System.Xml.Bits.ExactlyOne().

Referenced by System.Xml.Xsl.Xslt.TemplateMatch.TemplateMatch().