mod ast;
mod interpreter;
mod lexer;
mod parser;
mod token;
mod types;
mod value;
use std::env;
use std::fs;
use interpreter::Interpreter;
use lexer::Lexer;
use parser::Parser;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() <= 1 {
panic!(".bmla file not supplied");
}
let filename = &args[1];
if !filename.ends_with(".bmla") {
panic!("Must be .bmla file");
}
let contents = fs::read_to_string(filename).expect("Could not open .bmla code file.");
let parser = Box::new(Lexer::new(contents));
let parser = Parser::new(parser);
let mut interpreter = Interpreter::new(parser);
interpreter.interpret();
}