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

◆ ParsePrimaryExpr()

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

Definition at line 374 of file XPathParser.cs.

375 {
376 Node result;
377 switch (_scanner.Kind)
378 {
379 case LexKind.String:
380 result = _builder.String(_scanner.StringValue);
382 break;
383 case LexKind.Number:
384 result = _builder.Number(XPathConvert.StringToDouble(_scanner.RawValue));
386 break;
387 case LexKind.Dollar:
388 {
391 _scanner.CheckToken(LexKind.Name);
393 result = _builder.Variable(_scanner.Prefix, _scanner.Name);
394 PopPosInfo();
396 break;
397 }
398 case LexKind.LParens:
400 result = ParseExpr();
401 _scanner.PassToken(LexKind.RParens);
402 break;
403 default:
404 result = ParseFunctionCall();
405 break;
406 }
407 return result;
408 }
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.XPathScanner.CheckToken(), System.Xml.Xsl.XPath.XPathScanner.Kind, System.Xml.Xsl.XPath.XPathScanner.LexSize, System.Xml.Xsl.XPath.XPathScanner.LexStart, System.Xml.Xsl.XPath.XPathScanner.Name, System.Xml.Xsl.XPath.XPathScanner.NextLex(), System.Xml.Xsl.Node, System.Xml.Xsl.XPath.XPathParser< Node >.ParseExpr(), System.Xml.Xsl.XPath.XPathParser< Node >.ParseFunctionCall(), System.Xml.Xsl.XPath.XPathScanner.PassToken(), System.Xml.Xsl.XPath.XPathParser< Node >.PopPosInfo(), System.Xml.Xsl.XPath.XPathScanner.Prefix, System.Xml.Xsl.XPath.XPathParser< Node >.PushPosInfo(), System.Xml.Xsl.XPath.XPathScanner.RawValue, System.Xml.Xsl.XPathConvert.StringToDouble(), and System.Xml.Xsl.XPath.XPathScanner.StringValue.

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