// 轻量日志接口。
#pragma once

#include <cstddef>
#include <exception>
#include <iosfwd>
#include <string>
#include <string_view>

void LogInfo(std::string_view msg, std::ostream& os);
void LogError(std::string_view msg, std::ostream& os);

std::string FormatError(std::string_view stage, std::string_view msg);
std::string FormatErrorAt(std::string_view stage, std::size_t line,
                          std::size_t column, std::string_view msg);
bool HasErrorPrefix(std::string_view msg, std::string_view stage);
void PrintException(std::ostream& os, const std::exception& ex);

// 打印命令行帮助信息（用于 `compiler --help`）。
void PrintHelp(std::ostream& os);
