|
|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|