4 releases
0.4.0 | Feb 18, 2024 |
---|---|
0.3.2 | Feb 18, 2024 |
0.3.1 | Feb 17, 2024 |
0.3.0 | Feb 17, 2024 |
#478 in Programming languages
17KB
385 lines
bf-derivatives-tools
Let's create your own brainfuck derivative.
Install
cargo install bf-derivatives-tools
After installation, two commands will be available.
- bfi
- brainfuck derivative interpreter
- bft
- brainfuck derivative translator
Usage
Edit the json file and write grammar rules
- the following example is quoted from http://kmaebashi.com/zakki/lang0003.html
vim jojo-grammar.json
{
"rshift": "ふるえるぞハート!",
"lshift": "燃えつきるほどヒート!!",
"inc": "オラ",
"dec": "無駄",
"write": "ァ!",
"read": "やれやれだぜ",
"loop_begin": "おまえの次のセリフは「",
"loop_end": "」という!"
}
Grammar json file format:
JSON item | brainfuck command |
---|---|
rshift | > |
lshift | < |
inc | + |
dec | - |
write | . |
read | , |
loop_begin | [ |
loop_end | ] |
Run the program
Original brainfuck
bfi path/to/brainfuck/code/file
Your brainfuck derivative
vim hello.jojo
ふるえるぞハート!
オラオラオラオラオラオラオラオラオラオラオラオラオラオラオラオラ
おまえの次のセリフは「燃えつきるほどヒート!!オラオラオラオラオラオラ
ふるえるぞハート!無駄」という!
燃えつきるほどヒート!!オラオラオラオラオラオラオラオラァ!
無駄無駄無駄ァ!
オラオラオラオラオラオラオラァ!ァ!
オラオラオラァ!ふるえるぞハート!
オラオラオラオラオラオラオラオラオラオラオラオラオラオラオラオラ
おまえの次のセリフは「ふるえるぞハート!オラオラ燃えつきるほどヒート!!無駄」という!
ふるえるぞハート!オラオラオラオラオラオラオラオラオラオラオラオラァ!
無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄ァ!
燃えつきるほどヒート!!燃えつきるほどヒート!!オラオラオラオラオラオラオラオラァ!
無駄無駄無駄無駄無駄無駄無駄無駄ァ!
オラオラオラァ!
無駄無駄無駄無駄無駄無駄ァ!
無駄無駄無駄無駄無駄無駄無駄無駄ァ!
ふるえるぞハート!
ふるえるぞハート!
オラオラオラオラオラオラオラオラオラオラオラオラオラオラァ!
Run interpreter
bfi path/to/hello.jojo -g path/to/jojo-grammar.json
Output:
hello, world.
Translate bf code -> bf-derivative code
bft path/to/bf-code-file/ -t path/to/bf-derivative-grammar.json
Translate bf-derivative code -> bf code
bft path/to/bf-derivative-code-file/ -f path/to/bf-derivative-grammar.json
The results will be output to stdout.
Uninstall
cargo uninstall bf-derivatives-tools
Dependencies
~4–6MB
~105K SLoC