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

◆ ParseStep()

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

Definition at line 102 of file XPathParser.cs.

103 {
104 Node val;
105 if (LexKind.Dot == _scanner.Kind)
106 {
108 val = _builder.Axis(XPathAxis.Self, XPathNodeType.All, null, null);
109 if (LexKind.LBracket == _scanner.Kind)
110 {
112 }
113 }
114 else if (LexKind.DotDot == _scanner.Kind)
115 {
117 val = _builder.Axis(XPathAxis.Parent, XPathNodeType.All, null, null);
118 if (LexKind.LBracket == _scanner.Kind)
119 {
121 }
122 }
123 else
124 {
125 XPathAxis axis;
126 switch (_scanner.Kind)
127 {
128 case LexKind.Axis:
132 break;
133 case LexKind.At:
134 axis = XPathAxis.Attribute;
136 break;
137 case LexKind.Name:
138 case LexKind.Star:
139 axis = XPathAxis.Child;
140 break;
141 default:
143 }
144 val = ParseNodeTest(axis);
145 while (LexKind.LBracket == _scanner.Kind)
146 {
147 val = _builder.Predicate(val, ParsePredicate(), IsReverseAxis(axis));
148 }
149 }
150 return val;
151 }
static string XPath_PredicateAfterDot
Definition SR.cs:1842
static string XPath_UnexpectedToken
Definition SR.cs:1832
static string XPath_PredicateAfterDotDot
Definition SR.cs:1844
Definition SR.cs:7
Node ParseNodeTest(XPathAxis axis)
IXPathBuilder< Node > _builder
static bool IsReverseAxis(XPathAxis axis)
XPathCompileException CreateException(string resId, params string[] args)

References System.Xml.Xsl.XPath.XPathParser< Node >._builder, System.Xml.Xsl.XPath.XPathParser< Node >._scanner, System.Xml.Xsl.XPath.XPathScanner.Axis, System.Xml.Xsl.XPath.XPathScanner.CreateException(), System.Xml.Dictionary, System.Xml.Xsl.XPath.XPathParser< Node >.IsReverseAxis(), System.Xml.Xsl.XPath.XPathScanner.Kind, System.Xml.Xsl.XPath.XPathScanner.NextLex(), System.Xml.Xsl.Node, System.Xml.Xsl.XPath.XPathParser< Node >.ParseNodeTest(), System.Xml.Xsl.XPath.XPathParser< Node >.ParsePredicate(), System.Xml.Xsl.XPath.XPathScanner.RawValue, System.SR.XPath_PredicateAfterDot, System.SR.XPath_PredicateAfterDotDot, and System.SR.XPath_UnexpectedToken.

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