TypeChecker

This commit is contained in:
2026-03-17 14:04:14 +01:00
parent 677521ca98
commit 69c254382d
3 changed files with 76 additions and 17 deletions

31
src/typechecker.rs Normal file
View File

@@ -0,0 +1,31 @@
use std::{cell::RefCell, rc::Rc};
use crate::{
analyzer::Analyzer,
parser::{Expr, Stmt},
tokenizer::ZernError,
};
pub struct TypeChecker {
analyzer: Rc<RefCell<Analyzer>>,
}
type Type = String;
impl TypeChecker {
pub fn new(analyzer: Rc<RefCell<Analyzer>>) -> TypeChecker {
TypeChecker { analyzer }
}
pub fn typecheck_stmt(&mut self, stmt: &Stmt) -> Result<(), ZernError> {
match stmt {
_ => todo!(),
}
}
pub fn typecheck_expr(&mut self, expr: &Expr) -> Result<Type, ZernError> {
match expr {
_ => todo!(),
}
}
}