ling-lang 2030.1.33

Ling - The Omniglot Systems Language
Documentation
mod builtins;
mod resolver;
mod scope;
mod symbol;
mod typeck;

use crate::core::LingResult;
use crate::parser::ast::Program;
use crate::semantic::typeck::TypeChecker;

#[derive(Clone, Debug, Default)]
pub struct SemanticAnalyzer {
    type_checker: TypeChecker,
}

impl SemanticAnalyzer {
    pub fn new() -> Self {
        Self { type_checker: TypeChecker::new() }
    }

    pub fn analyze(&mut self, program: &Program) -> LingResult<()> {
        self.type_checker.check(program)
    }
}