From 4c2996027e15aec4cc8d0f2a7df1ef660c45b4e2 Mon Sep 17 00:00:00 2001 From: Lane0218 Date: Thu, 12 Mar 2026 15:37:27 +0800 Subject: [PATCH] =?UTF-8?q?style(doc):=20=E7=BB=9F=E4=B8=80=20Lexer=20Pars?= =?UTF-8?q?er=20=E7=9B=B8=E5=85=B3=E8=A1=A8=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 ++++++------ doc/Lab1-语法树构建.md | 8 ++++---- doc/Lab2-中间表示生成.md | 2 +- src/frontend/CMakeLists.txt | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b59a4f0..b843a5a 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,6 @@ ## 1. 实验介绍 -下面简要概述各实验的名称与主要目标: - | 实验 | 名称 | 任务/目标 | | --- | --- | --- | | Lab1 | 语法树构建 | 基于 SysY 源程序完成语法分析与语法树构建,并按约定输出语法树 | @@ -14,7 +12,7 @@ | Lab3 | 指令选择与汇编生成 | 将 IR 翻译为目标平台汇编代码(本项目以 ARM64/AArch64 为主) | | Lab4 | 寄存器分配与后端优化 | 为后端生成的虚拟寄存器分配物理寄存器,并完成 spill/reload、冗余指令消除与局部后端优化 | | Lab5 | 基本标量优化 | 实现常见的标量优化(如常量传播、死代码删除、简化 CFG 等) | -| Lab6 | 并行/循环优化 | 面向循环的优化(循环变换/并行化等),提升数值计算类程序性能 | +| Lab6 | 并行与循环优化 | 面向循环的优化(循环变换/并行化等),进一步提升程序性能 | ## 2. 实验环境配置 @@ -55,10 +53,12 @@ sudo apt install qemu-user ## 3. 编译与运行 -### 3.1 生成 ANTLR 代码 +### 3.1 生成 Lexer/Parser + +本仓库已内置 ANTLR jar:`third_party/antlr-4.13.2-complete.jar`。 +当前 CMake 只会收集构建目录中的 Lexer/Parser 生成文件,不会自动调用 ANTLR;因此首次构建前,需要先生成 Lexer/Parser 及相关生成文件。 -本仓库已内置 ANTLR jar:`third_party/antlr-4.13.2-complete.jar`。生成文件不提交到仓库,统一输出到构建目录下: -`build/generated/antlr4/`。 +生成文件不提交到仓库,统一输出到 `build/generated/antlr4/`。 ```bash mkdir -p build/generated/antlr4 diff --git a/doc/Lab1-语法树构建.md b/doc/Lab1-语法树构建.md index 67b79f6..76b55b5 100644 --- a/doc/Lab1-语法树构建.md +++ b/doc/Lab1-语法树构建.md @@ -1,4 +1,4 @@ -# Lab1:构建antlr规则生成语法树 +# Lab1:语法树构建 ## 1. 本实验定位 @@ -11,7 +11,7 @@ Lab1 聚焦前端第一步:词法/语法分析。 需要同学完成: 1. 依据 SysY 规范扩展文法 `src/antlr4/SysY.g4`。 -2. 通过构建流程让 ANTLR 重新生成 Lexer/Parser。 +2. 通过构建流程重新生成 Lexer/Parser。 3. 让更多合法 SysY 程序可以被解析通过(不再仅限当前最小样例)。 ## 3. Lab1 需要补充的内容 @@ -40,11 +40,11 @@ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j "$(nproc)" ``` -ANTLR 生成文件统一位于: +Lexer/Parser 生成文件统一位于: - `build/generated/antlr4/` -如需手动触发 ANTLR 生成: +如需手动生成 Lexer/Parser: ```bash mkdir -p build/generated/antlr4 diff --git a/doc/Lab2-中间表示生成.md b/doc/Lab2-中间表示生成.md index a6ad044..4c08c5c 100644 --- a/doc/Lab2-中间表示生成.md +++ b/doc/Lab2-中间表示生成.md @@ -1,4 +1,4 @@ -# Lab2:生成中间表示(IR) +# Lab2:中间表示生成 ## 1. 本实验定位 diff --git a/src/frontend/CMakeLists.txt b/src/frontend/CMakeLists.txt index 806fe3a..524fcd6 100644 --- a/src/frontend/CMakeLists.txt +++ b/src/frontend/CMakeLists.txt @@ -8,7 +8,7 @@ target_link_libraries(frontend PUBLIC ${ANTLR4_RUNTIME_TARGET} ) -# 自动纳入构建目录中的 ANTLR 生成源码(若存在) +# 自动纳入构建目录中的 Lexer/Parser 生成源码(若存在) file(GLOB_RECURSE ANTLR4_GENERATED_SOURCES CONFIGURE_DEPENDS "${ANTLR4_GENERATED_DIR}/*.cpp" )