From 03affb6cd3145ca46b18c2a431d5722dab223778 Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Thu, 18 Jan 2024 12:30:12 +0100 Subject: [PATCH] typifier class hulk --- .../nbackend/kernelcreation/typification.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/pystencils/nbackend/kernelcreation/typification.py diff --git a/src/pystencils/nbackend/kernelcreation/typification.py b/src/pystencils/nbackend/kernelcreation/typification.py new file mode 100644 index 000000000..4a228e9e2 --- /dev/null +++ b/src/pystencils/nbackend/kernelcreation/typification.py @@ -0,0 +1,18 @@ +import pymbolic.primitives as pb +from pymbolic.mapper import Mapper + +from .context import KernelCreationContext +from ..types import PsAbstractType +from ..typed_expressions import PsTypedVariable + + +class Typifier(Mapper): + def __init__(self, ctx: KernelCreationContext): + self._ctx = ctx + + def __call__(self, expr: pb.Expression) -> tuple[pb.Expression, PsAbstractType]: + return self.rec(expr) + + def map_variable(self, var: pb.Variable) -> tuple[pb.Expression, PsAbstractType]: + dtype = NotImplemented # determine variable type + return PsTypedVariable(var.name, dtype), dtype -- GitLab