lispers/src/main.rs

22 lines
531 B
Rust

mod lisp;
mod parser;
use lisp::eval_prelude;
use parser::ExpressionStream;
fn main() {
let program = "((lambda (x y) (add (if (lt x 10) (add x 10) x) y)) 2 20)";
for r in ExpressionStream::from_char_stream(program.chars()) {
match r {
Err(err) => println!("ParserError: {:?}", err),
Ok(expr) => println!(
"{:?} \n vvvvvvvvvvv \n {:?}\n",
expr.clone(),
eval_prelude(expr)
),
}
}
println!("Interpreter Done!");
}