// 符号表与作用域管理：
// - 支持嵌套作用域（块/函数/全局）
// - 变量/函数/参数/常量的注册、查找与遮蔽规则

#include "sem/SymbolTable.h"

void SymbolTable::Add(const std::string& name,
                      SysYParser::VarDeclContext* decl) {
  table_[name] = decl;
}

bool SymbolTable::Contains(const std::string& name) const {
  return table_.find(name) != table_.end();
}

SysYParser::VarDeclContext* SymbolTable::Lookup(const std::string& name) const {
  auto it = table_.find(name);
  return it == table_.end() ? nullptr : it->second;
}
