Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
File: pyc_ir.py Project: 0xcc/pyc
def txform(astree, **kwargs):
	v = AstToIRTxformer()
	#v.log = log
	if 'tracer' in kwargs:
		v.tracer = kwargs['tracer']

	return pyc_vis.walk(v, astree)
Example #5
0
File: pyc_sir.py Project: 0xcc/pyc
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]
Example #6
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)
Example #7
0
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
Example #8
0
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
Example #9
0
def print_astree(astree):
	v = PrintASTVisitor(sys.stdout)
	pyc_vis.walk(v, astree)
Example #10
0
def tree_to_str(astree):
	s = StringIO.StringIO()
	v = PrintASTVisitor(s)	
	pyc_vis.walk(v, astree)
	return v.io.getvalue()
Example #11
0
def fix_source_lines(node):
	v = SrcLineFixer()
	return pyc_vis.walk(v, node, 0)
Example #12
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)
Example #13
0
def locals(node):
	lf = LocalFinder(node)
	lf.log = lambda s: log("LocalFinder: %s" % s)
	return pyc_vis.walk(lf, node)