Makes Brainfucking Easier!
Project description
BFFuck
Makes brainfucking easier
The tools is an esoteric language that compiles to brainfuck, using algorithms in brainfuck algorithms.
Usage:
Run this in Python:
from bffuck import BFFuck
bff=BFFuck()
bf=bff.compile('Your code')
Note that if a BFFuck object is created and used, its status will change and therefore cannot compile another program.
Syntax
BFFuck currently supports the following syntax:
Comment:
# Comment
Variable definition:
<variable 1>=<variable 2>
or
<variable>=<number>
Addition:
add(x,<number>)
or
add(x,<variable>)
Subtraction:
sub(x,<number>)
or
sub(x,<variable>)
Multiplication:
mul(x,<number>)
or
mul(x,<variable>)
Modulo:
mod(x,<number>)
or
mod(x,<variable>)
While loop:
while(<variable or number>)
CODE
endwhile
I/O:
<variable>=in # Reads <variable> as decimal integer
<variable>=inc # Reads <variable> as ASCII character
out(<variable or number>) # Outputs <variable> as decimal integer
outc(<variable or number>) # Outputs <variable> as ASCII character
String output shortcut:
print(STRING) # Without quotes
# For instance
print(Hello World!)
If statement:
if(<variable or number>)
CODE
endif
if(<variable or number>)
CODE1
else
CODE2
endif
Comparison:
lt(x,<number>) # Compares x and the variable or number, if x is less than the variable or number, set x to 1, otherwise 0
or
lt(x,<variable>)
eq(x,<number>) # Compares x and the variable or number, if x is equal to the variable or number, set x to 1, otherwise 0
or
eq(x,<variable>)
Platform
BFFuck is in pure Python and therefore it supports any platform.
Constraints
Programs compiled from BFFuck needs you to have 8 bit cells that wrap.
Disadvantages
BFFuck currently has these disadvantages:
It's numbers are 8 bit numbers.You can choose 8-bit, 16-bit or 32-bit numbers using thebyte
keyword argument. But you need to run it on a 8-bit interpreter. REMEMBER: Using numbers with more bits is slower and increases the size of program largely!- It has some bugs.
The repository contains some examples, including a Hello World program, a cat program and an A+B program.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.