#!/usr/bin/env python3
import sys
class Env(object):
def __init__(self, package, myMoney = 0, value = 10):
self.package = package
self.myMoney = myMoney
self.value = value
def __repr__(self):
return '<myMoney: {self.myMoney} value: {self.value}>'
def install_package():
def addMoney(env):
return env.myMoney + env.value
def removeMoney(env):
return env.myMoney - env.value
return {"Add Money": addMoney,
"Remove Money": removeMoney,
"quit": lambda x: sys.exit()}
# Eval
def interp(x, env):
return Env(env.package, env.package[x](env))
# Print
def display(env):
print(env.myMoney)
return env
if __name__ == '__main__':
env = display(Env(install_package()))
while True:
try:
env = display(interp(input(), env))
except KeyError:
env
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKaW1wb3J0IHN5cwoKY2xhc3MgRW52KG9iamVjdCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgcGFja2FnZSwgbXlNb25leSA9IDAsIHZhbHVlID0gMTApOgogICAgICAgIHNlbGYucGFja2FnZSA9IHBhY2thZ2UKICAgICAgICBzZWxmLm15TW9uZXkgPSBteU1vbmV5CiAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCiAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgcmV0dXJuICc8bXlNb25leToge3NlbGYubXlNb25leX0gdmFsdWU6IHtzZWxmLnZhbHVlfT4nCgpkZWYgaW5zdGFsbF9wYWNrYWdlKCk6CiAgICBkZWYgYWRkTW9uZXkoZW52KToKICAgICAgICByZXR1cm4gZW52Lm15TW9uZXkgKyBlbnYudmFsdWUKICAgIGRlZiByZW1vdmVNb25leShlbnYpOgogICAgICAgIHJldHVybiBlbnYubXlNb25leSAtIGVudi52YWx1ZQogICAgcmV0dXJuIHsiQWRkIE1vbmV5IjogYWRkTW9uZXksCiAgICAgICAgICAgICJSZW1vdmUgTW9uZXkiOiByZW1vdmVNb25leSwKICAgICAgICAgICAgInF1aXQiOiBsYW1iZGEgeDogc3lzLmV4aXQoKX0KCiMgRXZhbApkZWYgaW50ZXJwKHgsIGVudik6CiAgICByZXR1cm4gRW52KGVudi5wYWNrYWdlLCBlbnYucGFja2FnZVt4XShlbnYpKQoKIyBQcmludApkZWYgZGlzcGxheShlbnYpOgogICAgcHJpbnQoZW52Lm15TW9uZXkpCiAgICByZXR1cm4gZW52CgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgZW52ID0gZGlzcGxheShFbnYoaW5zdGFsbF9wYWNrYWdlKCkpKQogICAgd2hpbGUgVHJ1ZToKICAgICAgICB0cnk6CiAgICAgICAgICAgIGVudiA9IGRpc3BsYXkoaW50ZXJwKGlucHV0KCksIGVudikpCiAgICAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICAgICBlbnYK