59 lines
1.1 KiB
Python
59 lines
1.1 KiB
Python
from MaMaGUI import MaMaGUI
|
|
from MaMaMa import MaMaMa
|
|
|
|
if __name__ == "__main__":
|
|
prog = [
|
|
'cequal(26)',
|
|
'cleqR(11)',
|
|
'csub(-1,0,-1)',
|
|
'ujp(15)',
|
|
'csub(0,-1,0)',
|
|
'nzero(-1,3)',
|
|
'swp',
|
|
'pop',
|
|
'stop',
|
|
'pop',
|
|
'stop'
|
|
]
|
|
|
|
# Create and execute MaMa instance
|
|
machine = MaMaMa(prog, [1, 1, 1, 4, 6])
|
|
|
|
machine.add_macro('nzero', [
|
|
'ldo(n)',
|
|
'ldo(0)',
|
|
'sub',
|
|
'push(0)',
|
|
'equal(p)'
|
|
], ['n', 'p'])
|
|
|
|
machine.add_macro('cequal', [
|
|
'ldo(-1)',
|
|
'ldo(-1)',
|
|
'equal(p)'
|
|
], ["p"])
|
|
|
|
machine.add_macro('cleqR', [
|
|
'ldo(0)',
|
|
'ldo(-2)',
|
|
'leq(p)'
|
|
], ['p'])
|
|
|
|
machine.add_macro('csub', [
|
|
'ldo(n)',
|
|
'ldo(m-1)',
|
|
'sub',
|
|
'sto(s-1)'
|
|
], ['n', 'm', 's'])
|
|
|
|
machine.add_macro('swp', [
|
|
'ldo(-1)',
|
|
'ldo(-1)',
|
|
'sto(-2)',
|
|
'sto(-1)',
|
|
])
|
|
|
|
# Visualize finished execution using journal
|
|
gui = MaMaGUI(machine)
|
|
gui.display()
|