#include "irgen/IRGen.h"

#include <memory>
#include <stdexcept>

#include "SysYParser.h"
#include "ir/IR.h"

std::unique_ptr<ir::Module> GenerateIR(SysYParser::CompUnitContext& tree,
                                       const SemanticContext& sema) {
  auto module = std::make_unique<ir::Module>();
  IRGenImpl gen(*module, sema);
  gen.Gen(tree);
  return module;
}
