diff --git a/artiq/compiler/tools.py b/artiq/compiler/tools.py new file mode 100644 index 000000000..63911bc54 --- /dev/null +++ b/artiq/compiler/tools.py @@ -0,0 +1,7 @@ +import ast + +def eval_ast(expr, symdict=dict()): + if not isinstance(expr, ast.Expression): + expr = ast.Expression(expr) + code = compile(expr, "", "eval") + return eval(code, symdict)# diff --git a/artiq/compiler/transform.py b/artiq/compiler/transform.py index 75351e3ab..05010fbcd 100644 --- a/artiq/compiler/transform.py +++ b/artiq/compiler/transform.py @@ -2,6 +2,7 @@ import inspect, textwrap, ast, types from artiq.language import units from artiq.compiler import unparse +from artiq.compiler.tools import eval_ast def find_kernel_body(node): while True: @@ -14,12 +15,6 @@ def find_kernel_body(node): else: raise TypeError -def eval_ast(expr, symdict=dict()): - if not isinstance(expr, ast.Expression): - expr = ast.Expression(expr) - code = compile(expr, "", "eval") - return eval(code, symdict) - def _try_eval_with_units(node): try: r = eval_ast(node, units.__dict__)