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

◆ ParseStep()

AstNode MS.Internal.Xml.XPath.XPathParser.ParseStep ( AstNode qyInput)
inlineprivate

Definition at line 355 of file XPathParser.cs.

356 {
357 AstNode astNode;
358 if (XPathScanner.LexKind.Dot == _scanner.Kind)
359 {
360 NextLex();
361 astNode = new Axis(Axis.AxisType.Self, qyInput);
362 }
363 else if (XPathScanner.LexKind.DotDot == _scanner.Kind)
364 {
365 NextLex();
366 astNode = new Axis(Axis.AxisType.Parent, qyInput);
367 }
368 else
369 {
370 Axis.AxisType axisType = Axis.AxisType.Child;
371 switch (_scanner.Kind)
372 {
373 case XPathScanner.LexKind.At:
374 axisType = Axis.AxisType.Attribute;
375 NextLex();
376 break;
377 case XPathScanner.LexKind.Axe:
378 axisType = GetAxis();
379 NextLex();
380 break;
381 }
382 XPathNodeType nodeType = ((axisType != Axis.AxisType.Attribute) ? XPathNodeType.Element : XPathNodeType.Attribute);
383 astNode = ParseNodeTest(qyInput, axisType, nodeType);
384 while (XPathScanner.LexKind.LBracket == _scanner.Kind)
385 {
387 }
388 }
389 return astNode;
390 }
AstNode ParseNodeTest(AstNode qyInput, Axis.AxisType axisType, XPathNodeType nodeType)
AstNode ParsePredicate(AstNode qyInput)

References MS.Internal.Xml.XPath.XPathParser._scanner, MS.Internal.Xml.XPath.XPathParser.GetAxis(), MS.Internal.Xml.XPath.XPathScanner.Kind, MS.Internal.Xml.XPath.XPathParser.NextLex(), MS.Internal.Xml.XPath.XPathParser.ParseNodeTest(), and MS.Internal.Xml.XPath.XPathParser.ParsePredicate().

Referenced by MS.Internal.Xml.XPath.XPathParser.ParseRelativeLocationPath().