MicroCorruption/18-Chernobyl/Code/crappy_python/caller_id.py

20 lines
439 B
Python

#!/usr/bin/env python3
"""
caller_id: Call a function with arbitrary parameters in microcorruption
"""
import re
preamble = "reset; break main; continue; unbreak main;"
while 1:
address, *args = re.split(r"[(,) ]",input("> "))
if address == "": break
print(f"{preamble} Let pc = {address}", end=";")
reg = 15
for arg in args:
if arg:
print(f"Let r{reg} = {arg}", end=";")
reg -= 1
print("\b ")