Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
 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())
Exemplo n.º 5
0
 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())
Exemplo n.º 6
0
 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())
Exemplo n.º 7
0
 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())
Exemplo n.º 8
0
    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
Exemplo n.º 9
0
    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
Exemplo n.º 10
0
# -*- 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())
Exemplo n.º 11
0
 def __init__(self, value=None, cls=Integer):
     Pointer.__init__(self, cls=cls)
     self.frame = sys._getframe(1)
Exemplo n.º 12
0
    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
Exemplo n.º 13
0
    
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")