这个仓库包含了北京邮电大学 2024-2025 秋季学期《编译原理与技术》课程实验——词法分析程序的相关代码和报告(见 Release)。
在本次实验中,我编写了两个 lex 源程序,对应 lex_made 下的 task1 和 task2,并利用 lex 编译程序自动生成词法分析程序,通过了头歌实践教学平台上的对应的所有测试用例。
在本次实验中,我使用 C++ 语言,设计并实现了一个支持 ISO C11 标准的 C 语言词法分析程序,见 cpp_made 目录下的 main.cpp。实验平台为头歌实践教学平台,使用的 C++ 语言标准为 ISO C++14。我成功通过了头歌实践教学平台上的所有基本要求测试案例和所有拓展要求测试案例。
各个 task 下均附带 Makefile,其中实现了程序的自动化测试,可用 make test 命令执行。
.
├── LICENSE # 项目许可证文件
├── README.md # 项目描述和说明的自述文件
├── cpp_made # 任务 3 C++ 相关文件目录
│ ├── Makefile # 构建 C++ 项目的 Makefile,可进行自动化测试
│ ├── src # C++ 代码的源文件目录
│ │ └── main.cpp # 主 C++ 源文件
│ └── test # 测试文件目录
│ ├── testdata<n>.ans # 测试用例 <n> 的预期输出
│ └── testdata<n>.in # 测试用例 <n> 的输入数据
└── lex_made # 词法分析器相关文件目录
├── task1 # 任务 1 目录
│ ├── Makefile # 构建任务 1 的 Makefile,可进行自动化测试
│ ├── src # 任务 1 的源文件目录
│ │ └── main.l # 任务 1 的主词法分析器源文件
│ └── test # 任务 1 的测试文件目录
│ ├── testdata<n>.ans # 测试用例 <n> 的预期输出
│ └── testdata<n>.in # 测试用例 <n> 的输入数据
└── task2 # 任务 2 目录
├── Makefile # 构建任务 2 的 Makefile,可进行自动化测试
├── src # 任务 2 的源文件目录
│ └── main.l # 任务 2 的主词法分析器源文件
└── test # 任务 2 的测试文件目录
├── testdata<n>.ans # 测试用例 <n> 的预期输出
└── testdata<n>.in # 测试用例 <n> 的输入数据