feat(misc): 添加最小 main 入口以通过链接

master
Lane0218 3 months ago
parent 4655b98bde
commit 5123a3fc9e

@ -8,10 +8,7 @@ add_subdirectory(frontend)
add_subdirectory(irgen)
add_subdirectory(mir)
# `src/main.cpp` main
# `cmake --build` ALL
# cmake --build <build_dir> --target compiler
add_executable(compiler EXCLUDE_FROM_ALL
add_executable(compiler
main.cpp
)
target_link_libraries(compiler PRIVATE

@ -1,5 +1,30 @@
// 编译器入口:
// - 解析命令行参数(输入源文件、输出路径、输出类型、优化级别等)
// - 驱动完整流水线Frontend -> Middle-end -> Backend
// - 统一管理阶段产物输出(例如 .ll/.s 的输出开关)
#include <iostream>
#include <string>
static void PrintUsage(const char* argv0) {
std::cerr << "用法: " << (argv0 ? argv0 : "compiler") << " <input.sy> [options]\n";
std::cerr << "说明: 当前为工程骨架阶段,暂不执行完整编译流程,仅用于验证可编译/可链接。\n";
}
int main(int argc, char** argv) {
if (argc <= 1) {
PrintUsage(argv[0]);
return 0;
}
std::string input_path = argv[1];
if (input_path == "-h" || input_path == "--help") {
PrintUsage(argv[0]);
return 0;
}
// TODO: 后续在此接入完整流水线:
// 1) frontend: ANTLR 解析 + AST 构建
// 2) sem: 语义分析
// 3) irgen: AST -> IR
// 4) ir passes: 可选优化
// 5) mir/backend: AArch64 指令选择、寄存器分配、栈帧、汇编输出
(void)input_path;
return 0;
}

Loading…
Cancel
Save