Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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!
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement