UnaryExpr ::= UnionExpr | '-' UnaryExpr
| 9406 | |
| 9407 | // UnaryExpr ::= UnionExpr | '-' UnaryExpr |
| 9408 | xpath_ast_node* parse_unary_expression() |
| 9409 | { |
| 9410 | if (_lexer.current() == lex_minus) |
| 9411 | { |
| 9412 | _lexer.next(); |
| 9413 | |
| 9414 | xpath_ast_node* expr = parse_unary_expression(); |
| 9415 | |
| 9416 | return new (alloc_node()) xpath_ast_node(ast_op_negate, xpath_type_number, expr); |
| 9417 | } |
| 9418 | else return parse_union_expression(); |
| 9419 | } |
| 9420 | |
| 9421 | // MultiplicativeExpr ::= UnaryExpr |
| 9422 | // | MultiplicativeExpr '*' UnaryExpr |