1
0
Fork 0

Add support for variables in interpreter

This commit is contained in:
Vili Sinervä 2025-02-03 18:01:39 +02:00
parent 520357d930
commit 1ed2ac97cc
No known key found for this signature in database
GPG key ID: DF8FEAF54EFAC996
4 changed files with 136 additions and 63 deletions

View file

@ -1,12 +1,13 @@
use std::io;
use interpreter::interpret;
use interpreter::Interpreter;
use parser::parse;
use tokenizer::tokenize;
mod ast;
mod interpreter;
mod parser;
mod symtab;
mod token;
mod tokenizer;
mod value;
@ -18,10 +19,15 @@ pub fn compile(code: &str) {
pub fn start_interpreter() {
let lines = io::stdin().lines();
#[allow(clippy::manual_flatten)]
for line in lines {
if let Ok(code) = line {
println!("{}", interpret(&parse(&tokenize(&code))));
let tokens = tokenize(&code);
let ast = parse(&tokens);
let mut interpreter = Interpreter::new();
let val = interpreter.interpret(&ast);
println!("{}", val);
}
}
}