Crate cranefack

source ·
Expand description

Basic usage

Run program with interpreter

    use cranefack::{parse, optimize_with_config, OptimizeConfig, Interpreter};

    // Parse program
    let mut program = parse("++[<].")?;

    // Optimize with optimization level 2
    optimize_with_config(&mut program, &OptimizeConfig::o2());

    // Create new interpreter reading from stdin and writing to stdout
    let mut interpreter = Interpreter::new(std::io::stdin(), std::io::stdout());

    // Execute program
    interpreter.execute(&program);

Run program with jit

    use cranefack::{parse, optimize_with_config, OptimizeConfig, CompiledJitModule};

    // Parse program
    let mut program = parse("++[<].")?;

    // Create optimization config for level 2
    let opt_level = OptimizeConfig::o2();

    // Optimize with optimization level 2
    optimize_with_config(&mut program, &opt_level);

    // Compile program into module
    let module = CompiledJitModule::new(&program, &opt_level)?;

    // Execute compiled module reading from stdin and writing to stdout
    module.execute(std::io::stdin(), std::io::stdout());

Structs

Enums

Traits

Functions