def bequeath_lineage(old_node, new_node, cpass): v = Bequeather(new_node, old_node, cpass) v.log = lambda s: log("Bequeather : %s" % s) #log("bequeath parent: (%s)%s" % ( # src_lineno(old_node), # ast.dump(old_node) #)) pyc_vis.walk(v, new_node)
def txform(as_tree, **kwargs): v = Declassifier() v.log = lambda s: log("Declassifier : %s" % s) if "tracer" in kwargs: v.tracer = kwargs["tracer"] return pyc_vis.walk(v, as_tree)
def txform(as_tree, **kwargs): v = Heapifier() v.log = lambda s: log("Heapifier : %s" % s) if 'tracer' in kwargs: v.tracer = kwargs['tracer'] return (pyc_vis.walk(v, as_tree), v.mappings)
def txform(astree, **kwargs): v = AstToIRTxformer() #v.log = log if 'tracer' in kwargs: v.tracer = kwargs['tracer'] return pyc_vis.walk(v, astree)
def txform(ir_tree, **kwargs): v = IRTreeSimplifier() v.log = lambda s: log("Simplifier(%d) : %s" % (v.lineno, s) ) if 'tracer' in kwargs: v.tracer = kwargs['tracer'] return pyc_vis.walk(v, ir_tree)[0]
def names(node): class NameFinder(ASTSearcher): def visit_Name(self, node, *args, **kwargs): return set([node.id]) v = NameFinder() #v.log = lambda s: log("NameFinder : %s" % s) return pyc_vis.walk(v, node)
def txform(as_tree, **kwargs): v = Converter() v.log = lambda s: log("Converter : %s" % s) if 'tracer' in kwargs: v.tracer = kwargs['tracer'] (conv_tree, d) = pyc_vis.walk(v, as_tree) result = ast.Module( body = [conv_tree] + d["defs"] ) result.parent = as_tree.parent result.cpass = v.__class__.__name__ return result
def sir_to_asm(sir_node): v = SIRtoASM() v.log = lambda s: log("SIRtoASM : %s" % s) result = pyc_vis.walk(v, sir_node) return result
def print_astree(astree): v = PrintASTVisitor(sys.stdout) pyc_vis.walk(v, astree)
def tree_to_str(astree): s = StringIO.StringIO() v = PrintASTVisitor(s) pyc_vis.walk(v, astree) return v.io.getvalue()
def fix_source_lines(node): v = SrcLineFixer() return pyc_vis.walk(v, node, 0)
def generate(sir_mod, io, **kwargs): v = SirToPyVisitor(io, **kwargs) #v.log = lambda s: log("SirToPy : %s" % s) pyc_vis.walk(v, sir_mod)
def locals(node): lf = LocalFinder(node) lf.log = lambda s: log("LocalFinder: %s" % s) return pyc_vis.walk(lf, node)