# python 3.4.3 # convert BF code to shorthand BF by by replacing 3 or more commands with a decimal number and the command # in the form +++++ becomes 5+ # ]]] becomes 3] prevch="" nextch="" counter=1 total_count=0 command_set="<>+-[],." file = open(input(("bf file: "), 'r') print() while True: nextch=file.read(1) if(not nextch): file.close() break if(nextch in command_set): total_count += 1 if(nextch != prevch): if(counter == 1): print(prevch, end="") elif(counter == 2): print(prevch, end="") print(prevch, end="") else: print(counter, end="") print(prevch, end="") counter=1 else: counter+=1 prevch = nextch if(counter == 1): print(prevch, end="") elif(counter == 2): print(prevch, end="") print(prevch, end="") else: print(counter, end="") print(prevch, end="") print() print() print(total_count, "Commands") """ Sample input BF code, Hello World implementations from the Esoteric Programming Language Wiki ++++++++++[>+++++++>++++++++++>+++>+< <<<-]>++.>+.+++++++..+++.>++.<<++++++ +++++++++.>.+++.------.--------.>+.>. bf_l2s.py returns: 10+[>7+>10+>3+>+4<-]>++.>+.7+..3+.>++.<<15+.>.3+.6-.8-.>+.>. 111 Commands bf_s2l.py returns the original program (without formatting), and it runs too! """