RelationalExpr ::= AdditiveExpr | RelationalExpr '<' AdditiveExpr | RelationalExpr '>' AdditiveExpr | RelationalExpr '<=' AdditiveExpr | RelationalExpr '>=' AdditiveExpr
| 9468 | // | RelationalExpr '<=' AdditiveExpr |
| 9469 | // | RelationalExpr '>=' AdditiveExpr |
| 9470 | xpath_ast_node* parse_relational_expression() |
| 9471 | { |
| 9472 | xpath_ast_node* n = parse_additive_expression(); |
| 9473 | |
| 9474 | while (_lexer.current() == lex_less || _lexer.current() == lex_less_or_equal || |
| 9475 | _lexer.current() == lex_greater || _lexer.current() == lex_greater_or_equal) |
| 9476 | { |
| 9477 | lexeme_t l = _lexer.current(); |
| 9478 | _lexer.next(); |
| 9479 | |
| 9480 | xpath_ast_node* expr = parse_additive_expression(); |
| 9481 | |
| 9482 | n = new (alloc_node()) xpath_ast_node(l == lex_less ? ast_op_less : l == lex_greater ? ast_op_greater : |
| 9483 | l == lex_less_or_equal ? ast_op_less_or_equal : ast_op_greater_or_equal, xpath_type_boolean, n, expr); |
| 9484 | } |
| 9485 | |
| 9486 | return n; |
| 9487 | } |
| 9488 | |
| 9489 | // EqualityExpr ::= RelationalExpr |
| 9490 | // | EqualityExpr '=' RelationalExpr |