From 0d3eef6298bbb99d50a40c11f830ba83de3b2e52 Mon Sep 17 00:00:00 2001 From: beam Date: Sat, 24 Oct 2026 01:26:32 +0000 Subject: [PATCH] beam: fix safe_eval chained unary signs (--2, +-3) by recursing factor --- wizard-work/beam/safe_eval.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wizard-work/beam/safe_eval.py b/wizard-work/beam/safe_eval.py index ce162d9..4230a9f 100644 --- a/wizard-work/beam/safe_eval.py +++ b/wizard-work/beam/safe_eval.py @@ -164,7 +164,7 @@ class _Parser: def factor(self): if self.peek()[0] == _OP and self.peek()[1] in ("+", "-"): op = self.advance()[1] - val = self.power() # unary lower precedence than ** (python semantics) + val = self.factor() # recurse so chained signs (--2, +--3) parse return -val if op == "-" else val return self.power()