diff options
| author | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2025-10-14 09:05:07 +0000 |
|---|---|---|
| committer | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2025-10-14 09:05:07 +0000 |
| commit | eaf7b7d06235d1899da4d47ef78f534120ba2e02 (patch) | |
| tree | c4d073d46a9d3b3419dd6c71be923c6c6929a733 /src | |
| parent | 45b5d9904972ca7b64645f33372353b68658763c (diff) | |
| download | focaccia-eaf7b7d06235d1899da4d47ef78f534120ba2e02.tar.gz focaccia-eaf7b7d06235d1899da4d47ef78f534120ba2e02.zip | |
Add better diagnostic for incorrect symbolic expressions
Diffstat (limited to 'src')
| -rw-r--r-- | src/focaccia/symbolic.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/focaccia/symbolic.py b/src/focaccia/symbolic.py index cf3ef08..6a99b60 100644 --- a/src/focaccia/symbolic.py +++ b/src/focaccia/symbolic.py @@ -56,9 +56,12 @@ def eval_symbol(symbol: Expr, conc_state: ReadableProgramState) -> int: f' that contain IR location expressions.') res = eval_expr(symbol, ConcreteStateWrapper(conc_state)) - assert(isinstance(res, ExprInt)) # Must be either ExprInt or ExprLoc, - # but ExprLocs are disallowed by the - # ConcreteStateWrapper + + # Must be either ExprInt or ExprLoc, + # but ExprLocs are disallowed by the + # ConcreteStateWrapper + if not isinstance(res, ExprInt): + raise Exception(f'{res} from symbol {symbol} is not an instance of ExprInt but only ExprInt can be evaluated') return int(res) class Instruction: |