fix(ast): 删掉ast结构

This commit is contained in:
jing
2026-03-09 12:42:12 +08:00
parent d4f4b77b1e
commit 03bd6d88e3
20 changed files with 147 additions and 594 deletions

View File

@@ -19,14 +19,14 @@ class SemaVisitor {
explicit SemaVisitor(SymbolTable& table) : table_(table) {}
void CheckBlock(const ast::Block& block) {
for (const auto& decl : block.varDecls) {
table_.Add(decl->name);
if (decl->init) CheckExpr(*decl->init);
}
for (const auto& stmt : block.stmts) {
if (auto ret = dynamic_cast<ast::ReturnStmt*>(stmt.get())) {
for (const auto& item : block.items) {
if (auto decl = dynamic_cast<ast::VarDecl*>(item.get())) {
table_.Add(decl->name);
if (decl->init) CheckExpr(*decl->init);
continue;
}
if (auto ret = dynamic_cast<ast::ReturnStmt*>(item.get())) {
CheckExpr(*ret->value);
}
}
}