Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ ConvertToBoolean()

QilNode System.Xml.Xsl.XPath.XPathQilFactory.ConvertToBoolean ( QilNode n)
inlineinherited

Definition at line 146 of file XPathQilFactory.cs.

147 {
148 switch (n.XmlType.TypeCode)
149 {
150 case XmlTypeCode.Boolean:
151 return n;
152 case XmlTypeCode.Double:
153 {
155 if (n.NodeType != QilNodeType.LiteralDouble)
156 {
157 return Loop(qilIterator = Let(n), Or(Lt(qilIterator, Double(0.0)), Lt(Double(0.0), qilIterator)));
158 }
159 return Boolean((double)(QilLiteral)n < 0.0 || 0.0 < (double)(QilLiteral)n);
160 }
161 case XmlTypeCode.String:
162 if (n.NodeType != QilNodeType.LiteralString)
163 {
164 return Ne(StrLength(n), Int32(0));
165 }
166 return Boolean(((string)(QilLiteral)n).Length != 0);
167 default:
168 if (n.XmlType.IsNode)
169 {
170 return Not(IsEmpty(n));
171 }
172 return XsltConvert(n, XmlQueryTypeFactory.BooleanX);
173 }
174 }

References System.Xml.Xsl.Boolean, System.Xml.Xsl.XmlQueryTypeFactory.BooleanX, System.Xml.Dictionary, System.Xml.Double, System.Xml.Int32, System.Xml.Xsl.Qil.IsEmpty, System.Xml.Schema.Length, System.Xml.Xsl.Qil.Let, System.Xml.Xsl.Qil.Loop, System.Xml.Xsl.XPath.Lt, System.Xml.Xsl.XPath.Ne, System.Xml.Xsl.Qil.Not, System.Xml.Xsl.XPath.Or, System.Xml.Xsl.Qil.StrLength, and System.Xml.Xsl.Qil.XsltConvert.

Referenced by System.Xml.Xsl.Xslt.QilGenerator.CompileWhen(), System.Xml.Xsl.XPath.XPathQilFactory.ConvertToType(), System.Xml.Xsl.XPath.XPathBuilder.Function(), System.Xml.Xsl.Xslt.QilGenerator.GenerateScriptCall(), System.Xml.Xsl.XPath.XPathBuilder.LogicalOperator(), and System.Xml.Xsl.XPath.XPathBuilder.PredicateToBoolean().