1
0
Fork 0

Add initial tests for type checker

This commit is contained in:
Vili Sinervä 2025-02-04 16:09:05 +02:00
parent 50bc35753a
commit b0420a9a5f
No known key found for this signature in database
GPG key ID: DF8FEAF54EFAC996
5 changed files with 280 additions and 33 deletions

View file

@ -4,6 +4,7 @@ use interpreter::interpret;
use parser::parse;
use symtab::SymTab;
use tokenizer::tokenize;
use type_checker::type_check;
mod ast;
mod interpreter;
@ -11,12 +12,13 @@ mod parser;
mod symtab;
mod token;
mod tokenizer;
//mod type_checker;
mod type_checker;
mod variable;
pub fn compile(code: &str) {
let tokens = tokenizer::tokenize(code);
parser::parse(&tokens);
let tokens = tokenize(code);
let ast = parse(&tokens);
type_check(&ast, &mut SymTab::new_type_table());
}
pub fn start_interpreter() {
@ -27,7 +29,7 @@ pub fn start_interpreter() {
let tokens = tokenize(&code);
let ast = parse(&tokens);
let val = interpret(&ast, &mut SymTab::new());
let val = interpret(&ast, &mut SymTab::new_val_table());
println!("{}", val);
}
}