コード例 #1
0
ファイル: pyc_lineage.py プロジェクト: 0xcc/pyc
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)
コード例 #2
0
ファイル: pyc_declassify.py プロジェクト: cantora/pyc
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)
コード例 #3
0
ファイル: pyc_heapify.py プロジェクト: 0xcc/pyc
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)
コード例 #4
0
ファイル: pyc_ir.py プロジェクト: 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)
コード例 #5
0
ファイル: pyc_sir.py プロジェクト: 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]
コード例 #6
0
ファイル: pyc_astvisitor.py プロジェクト: 0xcc/pyc
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)
コード例 #7
0
ファイル: pyc_closure.py プロジェクト: 0xcc/pyc
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
コード例 #8
0
ファイル: pyc_asm_list.py プロジェクト: 0xcc/pyc
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
コード例 #9
0
ファイル: pyc_parser.py プロジェクト: 0xcc/pyc
def print_astree(astree):
	v = PrintASTVisitor(sys.stdout)
	pyc_vis.walk(v, astree)
コード例 #10
0
ファイル: pyc_parser.py プロジェクト: 0xcc/pyc
def tree_to_str(astree):
	s = StringIO.StringIO()
	v = PrintASTVisitor(s)	
	pyc_vis.walk(v, astree)
	return v.io.getvalue()
コード例 #11
0
ファイル: pyc_parser.py プロジェクト: 0xcc/pyc
def fix_source_lines(node):
	v = SrcLineFixer()
	return pyc_vis.walk(v, node, 0)
コード例 #12
0
ファイル: pyc_sir_to_py.py プロジェクト: 0xcc/pyc
def generate(sir_mod, io, **kwargs):
	v = SirToPyVisitor(io, **kwargs)
	#v.log = lambda s: log("SirToPy : %s" % s)
	pyc_vis.walk(v, sir_mod)
コード例 #13
0
ファイル: pyc_localize.py プロジェクト: 0xcc/pyc
def locals(node):
	lf = LocalFinder(node)
	lf.log = lambda s: log("LocalFinder: %s" % s)
	return pyc_vis.walk(lf, node)