Beispiel #1
0

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))
Beispiel #2
0
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)