Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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)

Exemplo n.º 4
0
def testProgram( s, outputValues ):
	( code, result, nextHeap ) = util.compile( s, parse.program, compiler.program )
	o = test( code )
	assert o == outputValues
Exemplo n.º 5
0
def testformula( s, expectedValue ):
	( code, result, nextHeap ) = util.compile( s, parse.formula, compiler.formula )
	code += [ 'assert ' + str( result ) + ' ' + str( expectedValue )]
	test( code )
Exemplo n.º 6
0
def testTerm( s, expectedValue ):
	( code, result, nextHeap ) = util.compile( s, parse.term, compiler.term )
	code += [ 'assert ' + str( result ) + ' ' + str( expectedValue )]
	test( code )