// 极简符号表：记录局部变量定义点。
#pragma once

#include <string>
#include <unordered_map>

#include "SysYParser.h"

class SymbolTable {
 public:
  void Add(const std::string& name, SysYParser::VarDeclContext* decl) {
    table_[name] = decl;
  }
  bool Contains(const std::string& name) const {
    return table_.find(name) != table_.end();
  }
  SysYParser::VarDeclContext* Lookup(const std::string& name) const {
    auto it = table_.find(name);
    return it == table_.end() ? nullptr : it->second;
  }

 private:
  std::unordered_map<std::string, SysYParser::VarDeclContext*> table_;
};
