diatom 0.5.2

The diatom programming language
Documentation
use include_dir::{include_dir, Dir};

use crate::Interpreter;

static EXAMPLES: Dir = include_dir!("$CARGO_MANIFEST_DIR/examples");

#[test]
fn test_examples() {
    for example in EXAMPLES.find("*.dm").unwrap() {
        let example = example.as_file().unwrap();
        println!(
            "Testing {}: ",
            example.path().file_name().unwrap().to_str().unwrap()
        );
        let code = example.contents_utf8().unwrap();
        let mut interpreter = Interpreter::new(vec![]);
        interpreter
            .exec(code, example.path().as_os_str())
            .map_err(|err| println!("{err}"))
            .expect("Example test failed");
    }
}

#[test]
fn test_overflow() {
    let mut interpreter = Interpreter::new(vec![]);
    interpreter
        .exec_repl("Int::MIN.abs()")
        .map_err(|err| println!("{err}"))
        .expect("Test failed");
}

#[test]
fn test_for_macro() {
    let mut interpreter = Interpreter::new(vec![]);
    interpreter
        .exec_repl("fn = begin for i in 1..5 do end end")
        .map_err(|err| println!("{err}"))
        .expect("Test failed");
}