Ejemplo n.º 1
0
def gen_ir(code):
    syntree = parser.parse(code)
            
    tree = sanitize_tree(syntree)
    tree = tree[1]
    
    
    code_gen(tree) # call code_gen() to traverse tree & generate code
    builder.ret(builder.load(var_dict[last_var])) #specify return value
def main():
    global infilename
    
    if len(sys.argv) == 2:
        infilename = sys.argv[1]
        if os.path.isfile(infilename):
            infile = open(infilename, "r")
            
            outfilename = os.path.splitext(infilename)[0] + ".err"
            sys.stdout = open(outfilename, "w")
            syntree = parser.parse(infile.read())
            sys.stdout = sys.__stdout__
            
            print_tree(syntree)
        else:
            print("Invalid file.")
    else:
        print("Specify filename, e.g. error_ula.ply my_program.ula")