Skip to content

Jadens-arc/Ironmind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Iron Mind Interpreter

ironmind

A BrainF*ck interpreter and code execution visualizer written in Rust

Crates.io Crates.io Crates.io ironmind

What is BrainF*ck

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: visualizer

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

About

An interpreter and code execution visualizer written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Contributors