From 89789777926bb4b23089825679379aa872ba16de Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Sun, 30 Jun 2024 13:45:21 +0200 Subject: [PATCH] hold back expr evaluation for now --- src/pystencils/backend/ast/expressions.py | 33 ----------------------- 1 file changed, 33 deletions(-) diff --git a/src/pystencils/backend/ast/expressions.py b/src/pystencils/backend/ast/expressions.py index 9a388a160..5e6adfa4f 100644 --- a/src/pystencils/backend/ast/expressions.py +++ b/src/pystencils/backend/ast/expressions.py @@ -757,36 +757,3 @@ class PsArrayInitList(PsExpression): def __repr__(self) -> str: return f"PsArrayInitList({repr(self._items)})" - - -def evaluate_expression( - expr: PsExpression, valuation: dict[str | PsSymbol, Any] -) -> Any: - """Evaluate a pystencils backend expression tree with values assigned to symbols according to the given valuation. - - Only a subset of expression nodes can be processed by this evaluator. - """ - - def visit(node): - match node: - case PsSymbolExpr(symb): - if value := valuation.get(symb, None) is not None: - return value - else: - return valuation[symb.name] - - case PsConstantExpr(c): - return c.value - - case PsUnOp(op1) if node.python_operator is not None: - return node.python_operator(visit(op1)) - - case PsBinOp(op1, op2) if node.python_operator is not None: - return node.python_operator(visit(op1), visit(op2)) - - case other: - raise NotImplementedError( - f"Unable to evaluate {other}: No implementation available." - ) - - return visit(expr) -- GitLab