def check_reify(value, expected_ast, preferred_name=None, expected_binding=None): kvalue = KnownValue(value, preferred_name=preferred_name) gen_sym = GenSym() node, gen_sym, binding = reify(kvalue, gen_sym) assert_ast_equal(node, expected_ast) if expected_binding is not None: assert binding == expected_binding
def _reify_func(acc, value): if is_known_value(value): # For ``reify()`` we do not need to pass through # the whole state, only ``gen_sym``. gen_sym, bindings = acc node, gen_sym, binding = reify(value, gen_sym) return (gen_sym, bindings.update(binding)), node else: # Should be an AST node return acc, value