From ad91ee9fedb24332278bd0296216606b6299fb09 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti <rafaelravedutti@gmail.com> Date: Mon, 29 Mar 2021 03:27:03 +0200 Subject: [PATCH] Add first working version of new syntax Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com> --- new_syntax.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/new_syntax.py b/new_syntax.py index 7f9003f..829a0ea 100644 --- a/new_syntax.py +++ b/new_syntax.py @@ -79,8 +79,7 @@ class BuildParticleIR(ast.NodeVisitor): if isinstance(lhs, UndefinedSymbol): self.add_symbols({lhs.symbol_id: rhs}) else: - print(lhs) - lhs = rhs + lhs.set(rhs) def visit_AugAssign(self, node): lhs = self.visit(node.target) @@ -89,11 +88,10 @@ class BuildParticleIR(ast.NodeVisitor): if isinstance(lhs, UndefinedSymbol): self.add_symbols({lhs.symbol_id: rhs}) else: - print(lhs) - lhs += rhs + lhs.add(rhs) def visit_BinOp(self, node): - print(ast.dump(node)) + #print(ast.dump(node)) lhs = self.visit(node.left) assert not isinstance(lhs, UndefinedSymbol), f"Undefined lhs used in BinOp: {lhs.symbol_id}" rhs = self.visit(node.right) @@ -138,14 +136,14 @@ class BuildParticleIR(ast.NodeVisitor): return node.n def visit_Subscript(self, node): - print(ast.dump(node)) + #print(ast.dump(node)) return self.visit(node.value)[self.visit(node.slice)] def add_kernel(sim, func, cutoff_radius=None, position=None, symbols={}): src = inspect.getsource(func) tree = ast.parse(src, mode='exec') - print(ast.dump(ast.parse(src, mode='exec'))) + #print(ast.dump(ast.parse(src, mode='exec'))) # Fetch function info info = FetchParticleFuncInfo() @@ -165,6 +163,7 @@ def add_kernel(sim, func, cutoff_radius=None, position=None, symbols={}): for i, j, delta, rsq in psim.particle_pairs(cutoff_radius, sim.property(position)): ir.add_symbols({params[0]: i, params[1]: j, 'delta': delta, 'rsq': rsq}) ir.visit(tree) + else: raise Exception(f"Invalid number of parameters: {nparams}") -- GitLab