#configurable #zero-dependency #features #reset #machine #virtual #brainfuck-vm

rainfuck

一个可配置、强大、无依赖的Brainfuck解释器!

1 个稳定版本

1.0.0 2024年1月20日

#8#zero-dependency


用于 rainfuck-cli

MIT 协议

16KB
218

Rainfuck

一个可配置、最小化、强大的Brainfuck解释器库!Rainfuck除非你指定了一个需要依赖的特征,否则不使用任何依赖!

示例

use rainfuck::BrainfuckVM;

// A simple cat program. (Just repeats what you type.)
fn main() {
    let mut vm = BrainfuckVM::new();
    vm.prompt_display = String::from("[TYPE]: ");

    vm.process(",[.,]");
}
use rainfuck::BrainfuckVM;

// Run some stuff, then reset the virtual machine.
fn main() {
    let mut vm = BrainfuckVM::new();
    assert!(vm == BrainfuckVM::new());

    vm.process("++++++++[>+>+<<-]>>[<<+>>-]");
    assert!(vm.cells[0..4] == [8, 8, 0, 0]);

    vm.reset();
    assert!(vm == BrainfuckVM::new());
}

lib.rs:

Rainfuck

一个可配置、最小化、强大的Brainfuck解释器库!Rainfuck除非你指定了一个需要依赖的特征,否则不使用任何依赖!

示例

use rainfuck::BrainfuckVM;

// A simple cat program. (Just repeats what you type.)
fn main() {
    let mut vm = BrainfuckVM::new();
    vm.prompt_display = String::from("[TYPE]: ");

    vm.process(",[.,]");
}
use rainfuck::BrainfuckVM;

// Run some stuff, then reset the virtual machine.
fn main() {
    let mut vm = BrainfuckVM::new();
    assert!(vm == BrainfuckVM::new());

    vm.process("++++++++[>+>+<<-]>>[<<+>>-]");
    assert!(vm.cells[0..4] == [8, 8, 0, 0]);

    vm.reset();
    assert!(vm == BrainfuckVM::new());
}

依赖项

~205KB