From dba0d6adc0f73bd8a44cae826a418126b6e22cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E5=B3=BB=E9=82=91?= <2294450067@qq.com> Date: Mon, 11 May 2026 20:36:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E5=A4=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=8C=85=E5=90=AB=E8=B7=AF=E5=BE=84=E4=B8=BA=20includ?= =?UTF-8?q?e/=20=E5=89=8D=E7=BC=80=E4=BB=A5=E9=80=82=E9=85=8D=E8=AF=84?= =?UTF-8?q?=E6=B5=8B=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将所有源文件中的头文件包含路径从 'subdir/file.h' 改为 'include/subdir/file.h' - 适配评测系统将 include 目录内容复制到 /extlibs 的行为 - 使得 #include "include/ir/IR.h" 可以在 -I/extlibs 环境下找到 /extlibs/include/ir/IR.h --- src/frontend/AntlrDriver.cpp | 4 ++-- src/frontend/SyntaxTreePrinter.cpp | 2 +- src/ir/BasicBlock.cpp | 2 +- src/ir/Context.cpp | 2 +- src/ir/Function.cpp | 2 +- src/ir/GlobalValue.cpp | 2 +- src/ir/IRBuilder.cpp | 4 ++-- src/ir/IRPrinter.cpp | 4 ++-- src/ir/Instruction.cpp | 4 ++-- src/ir/Module.cpp | 2 +- src/ir/Type.cpp | 2 +- src/ir/Value.cpp | 2 +- src/ir/analysis/DominatorTree.cpp | 2 +- src/ir/passes/CFGSimplify.cpp | 2 +- src/ir/passes/CSE.cpp | 2 +- src/ir/passes/ConstFold.cpp | 2 +- src/ir/passes/ConstProp.cpp | 2 +- src/ir/passes/DCE.cpp | 2 +- src/ir/passes/LICM.cpp | 2 +- src/ir/passes/Mem2Reg.cpp | 2 +- src/ir/passes/PassManager.cpp | 2 +- src/irgen/IRGenDecl.cpp | 6 +++--- src/irgen/IRGenDriver.cpp | 6 +++--- src/irgen/IRGenExp.cpp | 6 +++--- src/irgen/IRGenFunc.cpp | 6 +++--- src/irgen/IRGenStmt.cpp | 6 +++--- src/main.cpp | 18 +++++++++--------- src/mir/AsmPrinter.cpp | 4 ++-- src/mir/FrameLowering.cpp | 4 ++-- src/mir/Lowering.cpp | 6 +++--- src/mir/MIRBasicBlock.cpp | 2 +- src/mir/MIRContext.cpp | 2 +- src/mir/MIRFunction.cpp | 4 ++-- src/mir/MIRInstr.cpp | 2 +- src/mir/RegAlloc.cpp | 4 ++-- src/mir/Register.cpp | 4 ++-- src/mir/passes/Peephole.cpp | 4 ++-- src/sem/Sema.cpp | 6 +++--- src/sem/SymbolTable.cpp | 2 +- src/utils/CLI.cpp | 4 ++-- src/utils/Log.cpp | 2 +- 41 files changed, 74 insertions(+), 74 deletions(-) diff --git a/src/frontend/AntlrDriver.cpp b/src/frontend/AntlrDriver.cpp index ee3c98c6..7281749c 100644 --- a/src/frontend/AntlrDriver.cpp +++ b/src/frontend/AntlrDriver.cpp @@ -1,5 +1,5 @@ // 调用前端解析流程,返回语法树。 -#include "frontend/AntlrDriver.h" +#include "include/frontend/AntlrDriver.h" #include #include @@ -9,7 +9,7 @@ #include "SysYLexer.h" #include "SysYParser.h" #include "antlr4-runtime.h" -#include "utils/Log.h" +#include "include/utils/Log.h" namespace { diff --git a/src/frontend/SyntaxTreePrinter.cpp b/src/frontend/SyntaxTreePrinter.cpp index 1ec0cabc..85175dc4 100644 --- a/src/frontend/SyntaxTreePrinter.cpp +++ b/src/frontend/SyntaxTreePrinter.cpp @@ -1,4 +1,4 @@ -#include "frontend/SyntaxTreePrinter.h" +#include "include/frontend/SyntaxTreePrinter.h" #include diff --git a/src/ir/BasicBlock.cpp b/src/ir/BasicBlock.cpp index 6fd9042a..b58a12d4 100644 --- a/src/ir/BasicBlock.cpp +++ b/src/ir/BasicBlock.cpp @@ -7,7 +7,7 @@ // - 指令追加与 terminator 约束主要在头文件中的 Append 模板里处理; // - 前驱/后继容器已经预留,但当前项目里还没有分支指令与自动维护逻辑。 -#include "ir/IR.h" +#include "include/ir/IR.h" #include diff --git a/src/ir/Context.cpp b/src/ir/Context.cpp index 91342c84..d0f70e99 100644 --- a/src/ir/Context.cpp +++ b/src/ir/Context.cpp @@ -1,5 +1,5 @@ // 管理基础类型、整型常量池和临时名生成。 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/Function.cpp b/src/ir/Function.cpp index d94a3b3f..da40fa6a 100644 --- a/src/ir/Function.cpp +++ b/src/ir/Function.cpp @@ -1,7 +1,7 @@ // IR Function: // - 保存参数列表、基本块列表 // - 记录函数属性/元信息(按需要扩展) -#include "ir/IR.h" +#include "include/ir/IR.h" namespace ir { diff --git a/src/ir/GlobalValue.cpp b/src/ir/GlobalValue.cpp index adb45479..4601058b 100644 --- a/src/ir/GlobalValue.cpp +++ b/src/ir/GlobalValue.cpp @@ -1,7 +1,7 @@ // GlobalValue 占位实现: // - 具体的全局初始化器、打印和链接语义需要自行补全 -#include "ir/IR.h" +#include "include/ir/IR.h" namespace ir { diff --git a/src/ir/IRBuilder.cpp b/src/ir/IRBuilder.cpp index e3994a79..75eba359 100644 --- a/src/ir/IRBuilder.cpp +++ b/src/ir/IRBuilder.cpp @@ -2,11 +2,11 @@ // - 管理插入点(当前基本块/位置) // - 提供创建各类指令的便捷接口,降低 IRGen 复杂度 -#include "ir/IR.h" +#include "include/ir/IR.h" #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace ir { IRBuilder::IRBuilder(Context& ctx, BasicBlock* bb) diff --git a/src/ir/IRPrinter.cpp b/src/ir/IRPrinter.cpp index 41804221..24a2f3c9 100644 --- a/src/ir/IRPrinter.cpp +++ b/src/ir/IRPrinter.cpp @@ -2,7 +2,7 @@ // - 将 IR 打印为 .ll 风格的文本 // - 支撑调试与测试对比(diff) -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include @@ -12,7 +12,7 @@ #include #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace ir { diff --git a/src/ir/Instruction.cpp b/src/ir/Instruction.cpp index be13b535..541bf93f 100644 --- a/src/ir/Instruction.cpp +++ b/src/ir/Instruction.cpp @@ -1,11 +1,11 @@ // IR 指令体系: // - 二元运算/比较、load/store、call、br/condbr、ret、phi、alloca 等 // - 指令操作数与结果类型管理,支持打印与优化 -#include "ir/IR.h" +#include "include/ir/IR.h" #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace ir { User::User(std::shared_ptr ty, std::string name) diff --git a/src/ir/Module.cpp b/src/ir/Module.cpp index fb8fd8ba..6a2a9e4f 100644 --- a/src/ir/Module.cpp +++ b/src/ir/Module.cpp @@ -1,6 +1,6 @@ // 保存函数列表并提供模块级上下文访问。 -#include "ir/IR.h" +#include "include/ir/IR.h" namespace ir { diff --git a/src/ir/Type.cpp b/src/ir/Type.cpp index ea64020d..3ed2400d 100644 --- a/src/ir/Type.cpp +++ b/src/ir/Type.cpp @@ -1,5 +1,5 @@ // 当前支持 void、i32、float 及其指针类型。 -#include "ir/IR.h" +#include "include/ir/IR.h" namespace ir { diff --git a/src/ir/Value.cpp b/src/ir/Value.cpp index b002b514..e2855c10 100644 --- a/src/ir/Value.cpp +++ b/src/ir/Value.cpp @@ -1,7 +1,7 @@ // SSA 值体系抽象: // - 常量、参数、指令结果等统一为 Value // - 提供类型信息与使用/被使用关系(按需要实现) -#include "ir/IR.h" +#include "include/ir/IR.h" #include diff --git a/src/ir/analysis/DominatorTree.cpp b/src/ir/analysis/DominatorTree.cpp index a2301727..30f66d91 100644 --- a/src/ir/analysis/DominatorTree.cpp +++ b/src/ir/analysis/DominatorTree.cpp @@ -1,4 +1,4 @@ -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/CFGSimplify.cpp b/src/ir/passes/CFGSimplify.cpp index 76fbc24c..d4359e0c 100644 --- a/src/ir/passes/CFGSimplify.cpp +++ b/src/ir/passes/CFGSimplify.cpp @@ -2,7 +2,7 @@ // - 删除不可达块、合并空块、简化分支等 // - 改善 IR 结构,便于后续优化与后端生成 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/CSE.cpp b/src/ir/passes/CSE.cpp index 1b4c67c6..dc0ccc1d 100644 --- a/src/ir/passes/CSE.cpp +++ b/src/ir/passes/CSE.cpp @@ -7,7 +7,7 @@ // 3. 删除重复的表达式计算 // 4. 注意处理 phi 函数和控制流汇合点 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/ConstFold.cpp b/src/ir/passes/ConstFold.cpp index 23343d72..02568df6 100644 --- a/src/ir/passes/ConstFold.cpp +++ b/src/ir/passes/ConstFold.cpp @@ -2,7 +2,7 @@ // - 折叠可判定的常量表达式 // - 简化常量控制流分支(按实现范围裁剪) -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/ConstProp.cpp b/src/ir/passes/ConstProp.cpp index 36704c7e..c1a18acb 100644 --- a/src/ir/passes/ConstProp.cpp +++ b/src/ir/passes/ConstProp.cpp @@ -4,7 +4,7 @@ // - 简化冗余 PHI 节点(所有入边都是同一个值) // - 常与 ConstFold、DCE、CFGSimplify 迭代配合使用 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/DCE.cpp b/src/ir/passes/DCE.cpp index e1dcd116..7684d5fc 100644 --- a/src/ir/passes/DCE.cpp +++ b/src/ir/passes/DCE.cpp @@ -4,7 +4,7 @@ // - 通常与 CFG 简化配合使用 // - 采用"标记 + 清扫"思路 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/LICM.cpp b/src/ir/passes/LICM.cpp index 9e5aea64..5d8e5073 100644 --- a/src/ir/passes/LICM.cpp +++ b/src/ir/passes/LICM.cpp @@ -1,4 +1,4 @@ -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/Mem2Reg.cpp b/src/ir/passes/Mem2Reg.cpp index c004ba63..d5d05b5b 100644 --- a/src/ir/passes/Mem2Reg.cpp +++ b/src/ir/passes/Mem2Reg.cpp @@ -2,7 +2,7 @@ // - 将局部变量的 alloca/load/store 提升为 SSA 形式 // - 使用标准的支配边界 + PHI 节点插入算法 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/ir/passes/PassManager.cpp b/src/ir/passes/PassManager.cpp index 5e54191c..1e0d4851 100644 --- a/src/ir/passes/PassManager.cpp +++ b/src/ir/passes/PassManager.cpp @@ -1,6 +1,6 @@ // IR Pass 管理骨架。 -#include "ir/IR.h" +#include "include/ir/IR.h" #include #include diff --git a/src/irgen/IRGenDecl.cpp b/src/irgen/IRGenDecl.cpp index 3fa452e7..662cee8b 100644 --- a/src/irgen/IRGenDecl.cpp +++ b/src/irgen/IRGenDecl.cpp @@ -1,12 +1,12 @@ -#include "irgen/IRGen.h" +#include "include/irgen/IRGen.h" #include #include #include #include "SysYParser.h" -#include "ir/IR.h" -#include "utils/Log.h" +#include "include/ir/IR.h" +#include "include/utils/Log.h" namespace { diff --git a/src/irgen/IRGenDriver.cpp b/src/irgen/IRGenDriver.cpp index ff944126..98203c26 100644 --- a/src/irgen/IRGenDriver.cpp +++ b/src/irgen/IRGenDriver.cpp @@ -1,10 +1,10 @@ -#include "irgen/IRGen.h" +#include "include/irgen/IRGen.h" #include #include "SysYParser.h" -#include "ir/IR.h" -#include "utils/Log.h" +#include "include/ir/IR.h" +#include "include/utils/Log.h" std::unique_ptr GenerateIR(SysYParser::CompUnitContext& tree, const SemanticContext& sema) { diff --git a/src/irgen/IRGenExp.cpp b/src/irgen/IRGenExp.cpp index 8c1c8043..f51b0403 100644 --- a/src/irgen/IRGenExp.cpp +++ b/src/irgen/IRGenExp.cpp @@ -1,11 +1,11 @@ -#include "irgen/IRGen.h" +#include "include/irgen/IRGen.h" #include #include #include "SysYParser.h" -#include "ir/IR.h" -#include "utils/Log.h" +#include "include/ir/IR.h" +#include "include/utils/Log.h" namespace { diff --git a/src/irgen/IRGenFunc.cpp b/src/irgen/IRGenFunc.cpp index 3401c50c..8d85de6a 100644 --- a/src/irgen/IRGenFunc.cpp +++ b/src/irgen/IRGenFunc.cpp @@ -1,11 +1,11 @@ -#include "irgen/IRGen.h" +#include "include/irgen/IRGen.h" #include #include #include "SysYParser.h" -#include "ir/IR.h" -#include "utils/Log.h" +#include "include/ir/IR.h" +#include "include/utils/Log.h" namespace { diff --git a/src/irgen/IRGenStmt.cpp b/src/irgen/IRGenStmt.cpp index fe336594..5f3999ce 100644 --- a/src/irgen/IRGenStmt.cpp +++ b/src/irgen/IRGenStmt.cpp @@ -1,10 +1,10 @@ -#include "irgen/IRGen.h" +#include "include/irgen/IRGen.h" #include #include "SysYParser.h" -#include "ir/IR.h" -#include "utils/Log.h" +#include "include/ir/IR.h" +#include "include/utils/Log.h" std::string IRGenImpl::NextBlockName(const std::string& prefix) { return prefix + std::to_string(++block_index_); diff --git a/src/main.cpp b/src/main.cpp index a845c880..880634ab 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,15 +4,15 @@ #include #include -#include "frontend/AntlrDriver.h" -#include "frontend/SyntaxTreePrinter.h" +#include "include/frontend/AntlrDriver.h" +#include "include/frontend/SyntaxTreePrinter.h" #if !COMPILER_PARSE_ONLY -#include "ir/IR.h" -#include "ir/passes/PassManager.cpp" -#include "irgen/IRGen.h" -#include "mir/MIR.h" -#include "sem/Sema.h" +#include "include/ir/IR.h" +#include "src/ir/passes/PassManager.cpp" +#include "include/irgen/IRGen.h" +#include "include/mir/MIR.h" +#include "include/sem/Sema.h" #endif -#include "utils/CLI.h" -#include "utils/Log.h" +#include "include/utils/CLI.h" +#include "include/utils/Log.h" #include "utils/Log.h" diff --git a/src/mir/AsmPrinter.cpp b/src/mir/AsmPrinter.cpp index 41479843..e3206919 100644 --- a/src/mir/AsmPrinter.cpp +++ b/src/mir/AsmPrinter.cpp @@ -1,10 +1,10 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include #include #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/mir/FrameLowering.cpp b/src/mir/FrameLowering.cpp index 34422b00..b8affdfa 100644 --- a/src/mir/FrameLowering.cpp +++ b/src/mir/FrameLowering.cpp @@ -1,9 +1,9 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/mir/Lowering.cpp b/src/mir/Lowering.cpp index 7d9fc63e..e52d6cf0 100644 --- a/src/mir/Lowering.cpp +++ b/src/mir/Lowering.cpp @@ -1,12 +1,12 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include #include #include #include -#include "ir/IR.h" -#include "utils/Log.h" +#include "include/ir/IR.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/mir/MIRBasicBlock.cpp b/src/mir/MIRBasicBlock.cpp index 8ae7b02d..85fa2e6c 100644 --- a/src/mir/MIRBasicBlock.cpp +++ b/src/mir/MIRBasicBlock.cpp @@ -1,4 +1,4 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include diff --git a/src/mir/MIRContext.cpp b/src/mir/MIRContext.cpp index 30c75c8c..d794bff0 100644 --- a/src/mir/MIRContext.cpp +++ b/src/mir/MIRContext.cpp @@ -1,4 +1,4 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" namespace mir { diff --git a/src/mir/MIRFunction.cpp b/src/mir/MIRFunction.cpp index c0fb0ff4..3b8a0ca5 100644 --- a/src/mir/MIRFunction.cpp +++ b/src/mir/MIRFunction.cpp @@ -1,9 +1,9 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/mir/MIRInstr.cpp b/src/mir/MIRInstr.cpp index b611e38a..f57937fa 100644 --- a/src/mir/MIRInstr.cpp +++ b/src/mir/MIRInstr.cpp @@ -1,4 +1,4 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include diff --git a/src/mir/RegAlloc.cpp b/src/mir/RegAlloc.cpp index ba086fe1..e24269c6 100644 --- a/src/mir/RegAlloc.cpp +++ b/src/mir/RegAlloc.cpp @@ -1,4 +1,4 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include #include @@ -7,7 +7,7 @@ #include #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/mir/Register.cpp b/src/mir/Register.cpp index 73c1a7f3..b47126fd 100644 --- a/src/mir/Register.cpp +++ b/src/mir/Register.cpp @@ -1,8 +1,8 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/mir/passes/Peephole.cpp b/src/mir/passes/Peephole.cpp index e59ea22f..7b005e2c 100644 --- a/src/mir/passes/Peephole.cpp +++ b/src/mir/passes/Peephole.cpp @@ -1,8 +1,8 @@ -#include "mir/MIR.h" +#include "include/mir/MIR.h" #include -#include "utils/Log.h" +#include "include/utils/Log.h" namespace mir { diff --git a/src/sem/Sema.cpp b/src/sem/Sema.cpp index 0c30422e..a5a885ce 100644 --- a/src/sem/Sema.cpp +++ b/src/sem/Sema.cpp @@ -1,4 +1,4 @@ -#include "sem/Sema.h" +#include "include/sem/Sema.h" #include #include @@ -9,8 +9,8 @@ #include #include "SysYBaseVisitor.h" -#include "sem/SymbolTable.h" -#include "utils/Log.h" +#include "include/sem/SymbolTable.h" +#include "include/utils/Log.h" namespace { diff --git a/src/sem/SymbolTable.cpp b/src/sem/SymbolTable.cpp index 6fe65b25..65fd3d41 100644 --- a/src/sem/SymbolTable.cpp +++ b/src/sem/SymbolTable.cpp @@ -1,6 +1,6 @@ // 维护局部变量声明的注册与查找。 -#include "sem/SymbolTable.h" +#include "include/sem/SymbolTable.h" void SymbolTable::EnterScope() { scopes_.emplace_back(); } diff --git a/src/utils/CLI.cpp b/src/utils/CLI.cpp index 3a2e42ad..f35d59f3 100644 --- a/src/utils/CLI.cpp +++ b/src/utils/CLI.cpp @@ -2,13 +2,13 @@ // compiler -S -o testcase.s testcase.sy // compiler -S -o testcase.s testcase.sy -O1 -#include "utils/CLI.h" +#include "include/utils/CLI.h" #include #include #include -#include "utils/Log.h" +#include "include/utils/Log.h" CLIOptions ParseCLI(int argc, char** argv) { CLIOptions opt; diff --git a/src/utils/Log.cpp b/src/utils/Log.cpp index e540ba88..ae902e62 100644 --- a/src/utils/Log.cpp +++ b/src/utils/Log.cpp @@ -1,6 +1,6 @@ // 格式化错误并统一打印异常与帮助信息。 -#include "utils/Log.h" +#include "include/utils/Log.h" #include #include