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

◆ ProcessNode()

Query MS.Internal.Xml.XPath.QueryBuilder.ProcessNode ( AstNode root,
Flags flags,
out Props props )
inlineprivate

Definition at line 381 of file QueryBuilder.cs.

382 {
383 if (++_parseDepth > 1024)
384 {
386 }
387 Query result = null;
388 props = Props.None;
389 switch (root.Type)
390 {
391 case AstNode.AstType.Axis:
392 result = ProcessAxis((Axis)root, flags, out props);
393 break;
394 case AstNode.AstType.Operator:
395 result = ProcessOperator((Operator)root, out props);
396 break;
397 case AstNode.AstType.Filter:
398 result = ProcessFilter((Filter)root, flags, out props);
399 break;
400 case AstNode.AstType.ConstantOperand:
401 result = new OperandQuery(((Operand)root).OperandValue);
402 break;
403 case AstNode.AstType.Variable:
404 result = ProcessVariable((Variable)root);
405 break;
406 case AstNode.AstType.Function:
407 result = ProcessFunction((Function)root, out props);
408 break;
409 case AstNode.AstType.Group:
410 result = new GroupQuery(ProcessNode(((Group)root).GroupNode, Flags.None, out props));
411 break;
412 case AstNode.AstType.Root:
413 result = new AbsoluteQuery();
414 break;
415 }
416 _parseDepth--;
417 return result;
418 }
Query ProcessVariable(Variable root)
Query ProcessAxis(Axis root, Flags flags, out Props props)
Query ProcessOperator(Operator root, out Props props)
Query ProcessFunction(Function root, out Props props)
Query ProcessNode(AstNode root, Flags flags, out Props props)
Query ProcessFilter(Filter root, Flags flags, out Props props)
static string Xp_QueryTooComplex
Definition SR.cs:1266
Definition SR.cs:7
static XPathException Create(string res)

References MS.Internal.Xml.XPath.QueryBuilder._parseDepth, System.Xml.XPath.XPathException.Create(), MS.Internal.Xml.XPath.QueryBuilder.ProcessAxis(), MS.Internal.Xml.XPath.QueryBuilder.ProcessFilter(), MS.Internal.Xml.XPath.QueryBuilder.ProcessFunction(), MS.Internal.Xml.XPath.QueryBuilder.ProcessNode(), MS.Internal.Xml.XPath.QueryBuilder.ProcessOperator(), MS.Internal.Xml.XPath.QueryBuilder.ProcessVariable(), MS.Internal.Xml.XPath.AstNode.Type, and System.SR.Xp_QueryTooComplex.

Referenced by MS.Internal.Xml.XPath.QueryBuilder.Build(), MS.Internal.Xml.XPath.QueryBuilder.ProcessArguments(), MS.Internal.Xml.XPath.QueryBuilder.ProcessAxis(), MS.Internal.Xml.XPath.QueryBuilder.ProcessFilter(), MS.Internal.Xml.XPath.QueryBuilder.ProcessFunction(), MS.Internal.Xml.XPath.QueryBuilder.ProcessNode(), and MS.Internal.Xml.XPath.QueryBuilder.ProcessOperator().