24 lines
450 B
Rust
24 lines
450 B
Rust
|
mod tokenizer;
|
||
|
use tokenizer::*;
|
||
|
|
||
|
mod parser;
|
||
|
use parser::*;
|
||
|
|
||
|
mod executor;
|
||
|
use executor::*;
|
||
|
|
||
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||
|
let source = std::fs::read_to_string("src/test.lisp").unwrap();
|
||
|
|
||
|
let mut tokenizer = Tokenizer::new(source);
|
||
|
let tokens = tokenizer.tokenize()?;
|
||
|
let mut parser = Parser::new(tokens);
|
||
|
let instructions = parser.parse();
|
||
|
|
||
|
let mut state = LispState::new();
|
||
|
|
||
|
state.execute(instructions)?;
|
||
|
|
||
|
Ok(())
|
||
|
}
|