def straightsort(self, r): DRIVER.simulate_function_call('straightsort', 5, sys._getframe()) r.frame = sys._getframe() result = None n = Integer() n.declare() i = Indexpointer() i.declare() DRIVER.simulate_statement(9, sys._getframe()) DRIVER.simulate_statement(10, sys._getframe()) n.assign(pascal.high(r)) DRIVER.simulate_statement(11, sys._getframe()) i.assign(Pointer(r)) i.assign(Integer(2) - Integer(1)) _for_end = n while True: DRIVER.simulate_statement(12, sys._getframe()) i.assign(i + Integer(1)) if i > _for_end: break DRIVER.simulate_statement(13, sys._getframe()) _straipass = self.straipass(r, i) DRIVER.simulate_function_return() DRIVER.simulate_statement(13, sys._getframe()) _straipass DRIVER.simulate_statement(14, sys._getframe()) r.frame = sys._getframe(1) n.destroy() i.destroy() return result
def inorder(self, bt): DRIVER.simulate_function_call('inorder', 7, sys._getframe()) bt = bt.clone() bt.declare() result = None DRIVER.simulate_statement(8, sys._getframe()) DRIVER.simulate_statement(9, sys._getframe()) if bt != Pointer(): DRIVER.simulate_statement(11, sys._getframe()) _inorder = self.inorder(bt.get()['lchild']) DRIVER.simulate_function_return() DRIVER.simulate_statement(11, sys._getframe()) _inorder DRIVER.simulate_statement(12, sys._getframe()) _visit = self.visit(bt) DRIVER.simulate_function_return() DRIVER.simulate_statement(12, sys._getframe()) _visit DRIVER.simulate_statement(13, sys._getframe()) _inorder = self.inorder(bt.get()['rchild']) DRIVER.simulate_function_return() DRIVER.simulate_statement(13, sys._getframe()) _inorder DRIVER.simulate_statement(15, sys._getframe()) bt.destroy() return result
def postorder(self, bt): bt.clone() Driver.simulate_function_call('postorder', 1, locals()) Result = None Driver.simulate_statement(2) Driver.simulate_statement(3) if bt != Pointer(): Driver.simulate_statement(5) bt.get()['value'].select() Driver.simulate_statement(6) _postorder = self.postorder(bt.get()['lchild']) Driver.simulate_function_return() Driver.simulate_statement(6) _postorder Driver.simulate_statement(7) bt.get()['value'].select() Driver.simulate_statement(8) _postorder = self.postorder(bt.get()['rchild']) Driver.simulate_function_return() Driver.simulate_statement(8) _postorder Driver.simulate_statement(9) bt.get()['value'].select() Driver.simulate_statement(10) _visit = self.visit(bt) Driver.simulate_function_return() Driver.simulate_statement(10) _visit Driver.simulate_statement(12) return Result
def run(self): DRIVER.simulate_program_entry('quicksort', 43) DRIVER.simulate_statement(44, sys._getframe()) first.assign(Pointer(qklist)) DRIVER.simulate_statement(44, sys._getframe()) last.assign(Pointer(qklist)) DRIVER.simulate_statement(45, sys._getframe()) first.assign(pascal.low(qklist)) DRIVER.simulate_statement(45, sys._getframe()) last.assign(pascal.high(qklist)) DRIVER.simulate_statement(46, sys._getframe()) _qksort = self.qksort(qklist, first, last) DRIVER.simulate_function_return() DRIVER.simulate_statement(46, sys._getframe()) _qksort DRIVER.simulate_statement(47, sys._getframe())
def run(self): DRIVER.simulate_program_entry('mergesort', 54) DRIVER.simulate_statement(55, sys._getframe()) first.assign(Pointer(meglist)) DRIVER.simulate_statement(55, sys._getframe()) last.assign(Pointer(meglist)) DRIVER.simulate_statement(56, sys._getframe()) first.assign(pascal.low(meglist)) DRIVER.simulate_statement(56, sys._getframe()) last.assign(pascal.high(meglist)) DRIVER.simulate_statement(57, sys._getframe()) pascal.setlength(buflist, last - first + Integer(1)) DRIVER.simulate_statement(58, sys._getframe()) _mergesort = self.mergesort(meglist, buflist.get(), first, last) DRIVER.simulate_function_return() DRIVER.simulate_statement(58, sys._getframe()) _mergesort DRIVER.simulate_statement(59, sys._getframe())
def run(self): DRIVER.simulate_program_entry('inorder', 23) DRIVER.simulate_statement(24, sys._getframe()) root.assign(Pointer(bintree)) DRIVER.simulate_statement(25, sys._getframe()) _inorder = self.inorder(root) DRIVER.simulate_function_return() DRIVER.simulate_statement(25, sys._getframe()) _inorder DRIVER.simulate_statement(26, sys._getframe())
def run(self): DRIVER.simulate_program_entry('postorder', 21) DRIVER.simulate_statement(22, sys._getframe()) root.assign(Pointer(bintree)) DRIVER.simulate_statement(23, sys._getframe()) _postorder = self.postorder(root) DRIVER.simulate_function_return() DRIVER.simulate_statement(23, sys._getframe()) _postorder DRIVER.simulate_statement(24, sys._getframe())
def qksort(self, r, s, t): DRIVER.simulate_function_call('qksort', 8, sys._getframe()) r.frame = sys._getframe() s = s.clone() s.declare() t = t.clone() t.declare() result = None k = Indexpointer() k.declare() DRIVER.simulate_statement(11, sys._getframe()) DRIVER.simulate_statement(12, sys._getframe()) k.assign(Pointer(r)) DRIVER.simulate_statement(13, sys._getframe()) if s < t: DRIVER.simulate_statement(15, sys._getframe()) _qkpass = self.qkpass(r, s, t, k) DRIVER.simulate_function_return() DRIVER.simulate_statement(15, sys._getframe()) _qkpass DRIVER.simulate_statement(16, sys._getframe()) _qksort = self.qksort(r, s, k - Integer(1)) DRIVER.simulate_function_return() DRIVER.simulate_statement(16, sys._getframe()) _qksort DRIVER.simulate_statement(17, sys._getframe()) _qksort = self.qksort(r, k + Integer(1), t) DRIVER.simulate_function_return() DRIVER.simulate_statement(17, sys._getframe()) _qksort DRIVER.simulate_statement(19, sys._getframe()) r.frame = sys._getframe(1) s.destroy() t.destroy() k.destroy() return result
def straipass(self, r, i): DRIVER.simulate_function_call('straipass', 16, sys._getframe()) r.frame = sys._getframe() i = i.clone() i.declare() result = None x = Integer() x.declare() j = Indexpointer() j.declare() DRIVER.simulate_statement(20, sys._getframe()) DRIVER.simulate_statement(21, sys._getframe()) j.assign(Pointer(r)) DRIVER.simulate_statement(22, sys._getframe()) r[Integer(0)].assign(r[i]) DRIVER.simulate_statement(23, sys._getframe()) j.assign(i - Integer(1)) DRIVER.simulate_statement(24, sys._getframe()) x.assign(r[i]) DRIVER.simulate_statement(25, sys._getframe()) while x < r[j]: DRIVER.simulate_statement(27, sys._getframe()) r[j + Integer(1)].assign(r[j]) DRIVER.simulate_statement(28, sys._getframe()) j.assign(j - Integer(1)) DRIVER.simulate_statement(30, sys._getframe()) r[j + Integer(1)].assign(r[Integer(0)]) DRIVER.simulate_statement(31, sys._getframe()) r.frame = sys._getframe(1) i.destroy() x.destroy() j.destroy() return result
# -*- coding: utf-8 -*- # # This script is generated by Algorithm Elf 1.2.1 import sys import pascal from aftype import DRIVER, datapool from aftype import Char, Integer, Boolean, Real from aftype import String, Array from aftype import Enum, Set, Record, Pointer from aftype import Queue, Tree, Indexpointer root = Pointer() root.declare() class AlgorithmInstance(object): def __init__(self): bintree.declare() root.declare() def inorder(self, bt): DRIVER.simulate_function_call('inorder', 7, sys._getframe()) bt = bt.clone() bt.declare() result = None DRIVER.simulate_statement(8, sys._getframe()) DRIVER.simulate_statement(9, sys._getframe()) if bt != Pointer(): DRIVER.simulate_statement(11, sys._getframe())
def __init__(self, value=None, cls=Integer): Pointer.__init__(self, cls=cls) self.frame = sys._getframe(1)
def merge(self, rs, s, m, n, rn): DRIVER.simulate_function_call('merge', 25, sys._getframe()) rs = rs.clone() rs.declare() s = s.clone() s.declare() m = m.clone() m.declare() n = n.clone() n.declare() rn.frame = sys._getframe() result = None i = Indexpointer() i.declare() j = Indexpointer() j.declare() k = Indexpointer() k.declare() ki = Integer() ki.declare() DRIVER.simulate_statement(29, sys._getframe()) DRIVER.simulate_statement(30, sys._getframe()) i.assign(Pointer(rs)) DRIVER.simulate_statement(30, sys._getframe()) j.assign(Pointer(rs)) DRIVER.simulate_statement(30, sys._getframe()) k.assign(Pointer(rs)) DRIVER.simulate_statement(31, sys._getframe()) i.assign(s) DRIVER.simulate_statement(31, sys._getframe()) j.assign(m + Integer(1)) DRIVER.simulate_statement(31, sys._getframe()) k.assign(s - Integer(1)) DRIVER.simulate_statement(32, sys._getframe()) while (i <= m) and (j <= n): DRIVER.simulate_statement(34, sys._getframe()) k.assign(k + Integer(1)) DRIVER.simulate_statement(35, sys._getframe()) if rs[i] <= rs[j]: DRIVER.simulate_statement(37, sys._getframe()) rn[k].assign(rs[i]) DRIVER.simulate_statement(38, sys._getframe()) i.assign(i + Integer(1)) else: DRIVER.simulate_statement(42, sys._getframe()) rn[k].assign(rs[j]) DRIVER.simulate_statement(43, sys._getframe()) j.assign(j + Integer(1)) DRIVER.simulate_statement(46, sys._getframe()) if i <= m: ki.assign(k + Integer(1) - Integer(1)) _for_end = n while True: DRIVER.simulate_statement(47, sys._getframe()) ki.assign(ki + Integer(1)) if ki > _for_end: break DRIVER.simulate_statement(48, sys._getframe()) rn[ki].assign(rs[i + ki - k - Integer(1)]) DRIVER.simulate_statement(49, sys._getframe()) if j <= n: ki.assign(k + Integer(1) - Integer(1)) _for_end = n while True: DRIVER.simulate_statement(50, sys._getframe()) ki.assign(ki + Integer(1)) if ki > _for_end: break DRIVER.simulate_statement(51, sys._getframe()) rn[ki].assign(rs[j + ki - k - Integer(1)]) DRIVER.simulate_statement(52, sys._getframe()) rs.destroy() s.destroy() m.destroy() n.destroy() rn.frame = sys._getframe(1) i.destroy() j.destroy() k.destroy() ki.destroy() return result
def val(x): pass def write(f, *args): s = f.value for p in args: s = "{0} {1}".format(s, p.value) print s, def writeln(f, *args): write(f, *args) print if __name__ == '__main__': p1 = Pointer(Integer) print p1.name new(p1) p1.get().assign(Integer(123)) print p1.get() s = String(String("123")) p1.assign(s) p1.get().assign(String("456")) print p1.get() write("123") writeln("123456:", 6, 7) write("aaa") write("bbb")