if __name__ == "__main__": import sys, compiler import logging.config from p3declassify import P3Declassify from p3wrapper import P3Wrapper from p3uniquifyvars import P3UniquifyVars from gcflattener import GCFlattener from gcrefcount import GCRefCount if len(sys.argv) < 2: sys.exit(1) # configure logging logging.config.fileConfig('logging.cfg') testcases = sys.argv[1:] for testcase in testcases: varalloc = VariableAllocator() declassify = P3Declassify(varalloc) wrapper = P3Wrapper() gcflatten = GCFlattener(varalloc) uniquify = P3UniquifyVars() explicator = P3Explicate(varalloc, handleLambdas=False) gcrefcount = GCRefCount(varalloc) ast = compiler.parseFile(testcase) ast = declassify.transform(ast) ast = wrapper.transform(ast) ast = uniquify.transform(ast) ast = gcflatten.transform(ast) ast = gcrefcount.transform(ast) print prettyAST(explicator.transform(ast))
if __name__ == "__main__": import compiler, sys import logging.config if len(sys.argv) < 2: sys.exit(1) # configure logging logging.config.fileConfig('logging.cfg') testcases = sys.argv[1:] for testcase in testcases: varalloc = VariableAllocator() declassify = P3Declassify(varalloc) unique = P3UniquifyVars() wrapper = P3Wrapper() gcflatten = GCFlattener(varalloc, True) gcrefcount = GCRefCount(varalloc) explicator = P3Explicate(varalloc, handleLambdas=False) heap = P3Heapify(explicator) closure = P3ClosureConversion(explicator, varalloc) flatten = P3Flattener(varalloc, True) ast = compiler.parseFile(testcase) ast = declassify.transform(ast) ast = wrapper.transform(ast) ast = unique.transform(ast) ast = gcflatten.transform(ast) ast = gcrefcount.transform(ast) ast = explicator.explicate(ast) ast = heap.transform(ast) astlist = closure.transform(ast)