34 releases
0.3.16 | Mar 15, 2024 |
---|---|
0.3.15 | Mar 3, 2024 |
0.3.14 | Feb 28, 2024 |
0.2.8 | Dec 17, 2023 |
0.1.7 | Nov 28, 2023 |
#159 in Programming languages
1,434 downloads per month
1.5MB
385 lines
The Iron Mind Interpreter
A BrainF*ck interpreter and code execution visualizer written in Rust
Installation Instructions
Cargo
cargo install ironmind
Homebrew
First brew tap jadens-arc/tap
Then brew install ironmind
Snapcraft
snap install ironmind
Usage
Sample program:
myfile.bf
++++++++++++[>++++++<-]>. H
>++++++++++[>++++++++++<-]>+. e
>+++++++++[>++++++++++++<-]>.. l (printed twice)
>++++++++++[>+++++++++++<-]>+. o
>++++[>+++++++++++<-]>. (comma)
>++++[>++++++++<-]>. (space)
>++++++++[>+++++++++++<-]>-. W
>++++++++++[>+++++++++++<-]>+. o
>++++++++++[>+++++++++++<-]>++++. r
>+++++++++[>++++++++++++<-]>. l
>++++++++++[>++++++++++<-]>. d
>++++[>++++++++<-]>+. (exclamation)
>+++[>+++<-]>+. (new line)
Run Program
ironmind myfile.bf
Output:
Hello, World!
Visualize Execution
ironmind -v myfile.bf
Output:
Build Instructions
System Dependencies
- Rust
- Cargo
Rust Dependencies (These install automatically)
- Clap for processing command line arguments and flags
- Cursive for TUI
Build Notes
- Cursive is a wrapper around the ncurses linux library
- If this library isn't present on your machine then it must be installed before ironmind can be built
- On debian systems ncurses can be installed using
sudo apt install libncurses5-dev libncursesw5-dev
Run for Debugging / Testing
git clone https://github.com/Jadens-arc/Ironmind
cd Ironmind
cargo run myfile.bf
To run automated tests run
cargo test
Tests are found in src/tests
Compiling Executable
git clone https://github.com/Jadens-arc/Ironmind
cd Ironmind
cargo build --release
The executable will be found at target/release/ironmind
Run using ./ironmind
Feel free to move it to a Bin/
directory if you want
If you do move it, you can use ironmind myfile.bf
anywhere on your system
Also, I found this really cool BrainF*ck program from 2005 that outputs 99 Bottles of Beer by Andrew Paczkowski
Definitely worth checking out
Dependencies
~8MB
~134K SLoC