def OnPrint(self): s = self.source.get(1.0, tkinter.END) (code, result, nextHeap) = util.compile(s, parse.program, compiler.program) index = 0 for i in code: print(str(index) + ":\t" + str(i)) index = index + 1
def OnCompile(self): s = self.source.get(1.0, tkinter.END) (code, result, nextHeap) = util.compile(s, parse.program, compiler.program) self.mc.setInstructions(code)
import os import random import util h_file = os.path.join(os.path.dirname(__file__), "multiply.h") c_file = os.path.join(os.path.dirname(__file__), "multiply.c") (ffi, lib) = util.compile("multiply", h_file, c_file) def c_long(x, y): x_cstr = ffi.new("char[]", str(x).encode('ascii')) y_cstr = ffi.new("char[]", str(y).encode('ascii')) res_cstr = lib.multiply_long(x_cstr, y_cstr) res = int(ffi.string(res_cstr).decode('ascii')) lib.free(res_cstr) return res def c_recursive(x, y): x_cstr = ffi.new("char[]", str(x).encode('ascii')) y_cstr = ffi.new("char[]", str(y).encode('ascii')) res_cstr = lib.multiply_recursive(x_cstr, y_cstr) res = int(ffi.string(res_cstr).decode('ascii')) lib.free(res_cstr) return res def py_builtin(x, y): return builtin(x, y)
def testProgram( s, outputValues ): ( code, result, nextHeap ) = util.compile( s, parse.program, compiler.program ) o = test( code ) assert o == outputValues
def testformula( s, expectedValue ): ( code, result, nextHeap ) = util.compile( s, parse.formula, compiler.formula ) code += [ 'assert ' + str( result ) + ' ' + str( expectedValue )] test( code )
def testTerm( s, expectedValue ): ( code, result, nextHeap ) = util.compile( s, parse.term, compiler.term ) code += [ 'assert ' + str( result ) + ' ' + str( expectedValue )] test( code )