diff options
Diffstat (limited to 'api/parser/operator.go')
-rw-r--r-- | api/parser/operator.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/api/parser/operator.go b/api/parser/operator.go index 4c0aec9ce..c61cf09f1 100644 --- a/api/parser/operator.go +++ b/api/parser/operator.go @@ -75,13 +75,14 @@ func binaryOp(p *parse.Parser, lhs ast.Node) *ast.BinaryOp { // operator expression func unaryOp(p *parse.Parser, cst *parse.Branch) *ast.UnaryOp { op := scanOperator(p) + p.Rollback() if _, found := ast.UnaryOperators[op]; !found { - p.Rollback() return nil } - p.ParseLeaf(cst, nil) n := &ast.UnaryOp{Operator: op} p.ParseBranch(cst, func(p *parse.Parser, cst *parse.Branch) { + requireOperator(op, p, cst) + p.ParseLeaf(cst, nil) n.CST = cst n.Expression = requireExpression(p, cst) }) |