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

◆ ParsePathExpr()

Node System.Xml.Xsl.XPath.XPathParser< Node >.ParsePathExpr ( )
inlineprivate

Definition at line 321 of file XPathParser.cs.

322 {
323 if (IsPrimaryExpr())
324 {
326 Node val = ParseFilterExpr();
328 if (_scanner.Kind == LexKind.Slash)
329 {
332 val = _builder.JoinStep(val, ParseRelativeLocationPath());
333 PopPosInfo();
334 }
335 else if (_scanner.Kind == LexKind.SlashSlash)
336 {
339 val = _builder.JoinStep(val, _builder.JoinStep(_builder.Axis(XPathAxis.DescendantOrSelf, XPathNodeType.All, null, null), ParseRelativeLocationPath()));
340 PopPosInfo();
341 }
342 return val;
343 }
344 return ParseLocationPath();
345 }
IXPathBuilder< Node > _builder
void PushPosInfo(int startChar, int endChar)

References System.Xml.Xsl.XPath.XPathParser< Node >._builder, System.Xml.Xsl.XPath.XPathParser< Node >._scanner, System.Xml.Xsl.XPath.XPathParser< Node >.IsPrimaryExpr(), System.Xml.Xsl.XPath.XPathScanner.Kind, System.Xml.Xsl.XPath.XPathScanner.LexStart, System.Xml.Xsl.XPath.XPathScanner.NextLex(), System.Xml.Xsl.Node, System.Xml.Xsl.XPath.XPathParser< Node >.ParseFilterExpr(), System.Xml.Xsl.XPath.XPathParser< Node >.ParseLocationPath(), System.Xml.Xsl.XPath.XPathParser< Node >.ParseRelativeLocationPath(), System.Xml.Xsl.XPath.XPathParser< Node >.PopPosInfo(), System.Xml.Xsl.XPath.XPathScanner.PrevLexEnd, and System.Xml.Xsl.XPath.XPathParser< Node >.PushPosInfo().

Referenced by System.Xml.Xsl.XPath.XPathParser< Node >.ParseUnionExpr().