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

◆ ParsePrimaryExpr()

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

Definition at line 436 of file XPathParser.cs.

437 {
438 AstNode astNode = null;
439 switch (_scanner.Kind)
440 {
441 case XPathScanner.LexKind.String:
442 astNode = new Operand(_scanner.StringValue);
443 NextLex();
444 break;
445 case XPathScanner.LexKind.Number:
446 astNode = new Operand(_scanner.NumberValue);
447 NextLex();
448 break;
449 case XPathScanner.LexKind.Dollar:
450 NextLex();
451 CheckToken(XPathScanner.LexKind.Name);
453 NextLex();
454 break;
455 case XPathScanner.LexKind.LParens:
456 NextLex();
457 astNode = ParseExpression(qyInput);
458 if (astNode.Type != AstNode.AstType.ConstantOperand)
459 {
460 astNode = new Group(astNode);
461 }
462 PassToken(XPathScanner.LexKind.RParens);
463 break;
464 case XPathScanner.LexKind.Name:
466 {
467 astNode = ParseMethod(null);
468 }
469 break;
470 }
471 return astNode;
472 }
void PassToken(XPathScanner.LexKind t)
AstNode ParseMethod(AstNode qyInput)
AstNode ParseExpression(AstNode qyInput)
void CheckToken(XPathScanner.LexKind t)

References MS.Internal.Xml.XPath.XPathParser._scanner, MS.Internal.Xml.XPath.XPathScanner.CanBeFunction, MS.Internal.Xml.XPath.XPathParser.CheckToken(), MS.Internal.Xml.XPath.XPathParser.IsNodeType, MS.Internal.Xml.XPath.XPathScanner.Kind, MS.Internal.Xml.XPath.XPathScanner.Name, MS.Internal.Xml.XPath.XPathParser.NextLex(), MS.Internal.Xml.XPath.XPathScanner.NumberValue, MS.Internal.Xml.XPath.XPathParser.ParseExpression(), MS.Internal.Xml.XPath.XPathParser.ParseMethod(), MS.Internal.Xml.XPath.XPathParser.PassToken(), MS.Internal.Xml.XPath.XPathScanner.Prefix, and MS.Internal.Xml.XPath.XPathScanner.StringValue.

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