nbcl 0.4.0

Configuration language designed to be easy and understandable.
Documentation
use nbcl::NbclEngine;
use std::env;
use std::fs;

fn main() {
    let path = env::args().nth(1).unwrap_or_else(|| {
        eprintln!("usage: nbcl <file.nbl>");
        std::process::exit(1);
    });

    let source = fs::read_to_string(&path).unwrap_or_else(|e| {
        eprintln!("could not read {path}: {e}");
        std::process::exit(1);
    });

    let engine = NbclEngine::new();

    match engine.parse_str(&source) {
        Ok(ast) => match engine.evaluate_ast(ast) {
            Ok(evaled) => println!("{:#?}", evaled),
            Err(e) => println!("{}", e),
        },
        Err(e) => eprintln!("{}", e),
    }
}