mute/src/main.rs
Roman Godmaire b9b833bf5c Mal step 2
2023-09-19 08:17:13 -04:00

38 lines
752 B
Rust

use std::io::{self, Write};
use crate::env::core_environment;
mod env;
mod eval;
mod lexer;
mod parser;
fn main() {
let env = core_environment();
let mut input = String::new();
println!("MAL -- REPL");
loop {
print!("> ");
io::stdout().flush().expect("failed to write to stdout");
let bytes_read = io::stdin()
.read_line(&mut input)
.expect("failed to read from stdin");
if bytes_read == 0 {
break;
}
let tokens = lexer::read(&input).unwrap();
let ast = parser::parse(tokens).unwrap();
let res = eval::eval(&env, ast).unwrap();
for expr in res {
println!("{expr}")
}
input.clear();
}
}