def read(unFile):
with open(unFile) as f:
return len(f.read())
def toBF(num):
a = []
while num > 0 and num != 1:
b = 0
for _ in range(3):
b = 2*b + num % 2
num //= 2
a.append(b)
return a
def compile(bf, fl):
with open(fl, 'w') as c:
print>>c, "#include <stdio.h>"
print>>c, "char p[30000];"
print>>c, "int main(){"
for num in bf:
if num == 0:
print>>c, "p++;"
elif num == 1:
print>>c, "p--;"
elif num == 2:
print>>c, "*p++;"
elif num == 3:
print>>c, "*p--;"
elif num == 4:
print>>c, "putchar(*p);"
elif num == 5:
print>>c, "*p = getchar();"
elif num == 6:
print>>c, "while(*p){"
else:
print>>c, "}"
print>>c, "return 0; }"
def main():
from sys import argv
compile(toBF(read(argv[1])),argv[2])
main()
ZGVmIHJlYWQodW5GaWxlKToKICB3aXRoIG9wZW4odW5GaWxlKSBhcyBmOgogICAgcmV0dXJuIGxlbihmLnJlYWQoKSkKCmRlZiB0b0JGKG51bSk6CiAgYSA9IFtdCiAgd2hpbGUgbnVtID4gMCBhbmQgbnVtICE9IDE6CiAgICBiID0gMAogICAgZm9yIF8gaW4gcmFuZ2UoMyk6CiAgICAgIGIgPSAyKmIgKyBudW0gJSAyCiAgICAgIG51bSAvLz0gMgogICAgYS5hcHBlbmQoYikKICByZXR1cm4gYQoKZGVmIGNvbXBpbGUoYmYsIGZsKToKICB3aXRoIG9wZW4oZmwsICd3JykgYXMgYzoKICAgIHByaW50Pj5jLCAiI2luY2x1ZGUgPHN0ZGlvLmg+IgogICAgcHJpbnQ+PmMsICJjaGFyIHBbMzAwMDBdOyIKICAgIHByaW50Pj5jLCAiaW50IG1haW4oKXsiCiAgICBmb3IgbnVtIGluIGJmOgogICAgICBpZiBudW0gPT0gMDoKICAgICAgICBwcmludD4+YywgInArKzsiCiAgICAgIGVsaWYgbnVtID09IDE6CiAgICAgICAgcHJpbnQ+PmMsICJwLS07IgogICAgICBlbGlmIG51bSA9PSAyOgogICAgICAgIHByaW50Pj5jLCAiKnArKzsiCiAgICAgIGVsaWYgbnVtID09IDM6CiAgICAgICAgcHJpbnQ+PmMsICIqcC0tOyIKICAgICAgZWxpZiBudW0gPT0gNDoKICAgICAgICBwcmludD4+YywgInB1dGNoYXIoKnApOyIKICAgICAgZWxpZiBudW0gPT0gNToKICAgICAgICBwcmludD4+YywgIipwID0gZ2V0Y2hhcigpOyIKICAgICAgZWxpZiBudW0gPT0gNjoKICAgICAgICBwcmludD4+YywgIndoaWxlKCpwKXsiCiAgICAgIGVsc2U6CiAgICAgICAgcHJpbnQ+PmMsICJ9IgogICAgcHJpbnQ+PmMsICJyZXR1cm4gMDsgfSIKCmRlZiBtYWluKCk6CiAgZnJvbSBzeXMgaW1wb3J0IGFyZ3YKICBjb21waWxlKHRvQkYocmVhZChhcmd2WzFdKSksYXJndlsyXSkKCm1haW4oKQo=