ironmind

Crates.ioironmind
lib.rsironmind
version0.3.16
sourcesrc
created_at2023-11-27 04:28:09.11895
updated_at2024-03-15 01:17:17.993102
descriptionA Brainf*ck interpreter and code execution visualizer built in Rust
homepage
repositoryhttps://github.com/Jadens-arc/Ironmind
max_upload_size
id1049709
size1,516,034
Jaden Arceneaux (Jadens-arc)

documentation

README

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

Commit count: 0

cargo fmt