aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/parser/operator.go5
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)
})