本报告为广东工业大学计算机专业学生在“编译原理”课程中的设计作业,包含编译器的设计与实现、词法语法分析等内容,附有完整源代码。适合相关课程学习参考。
实验内容与要求:
1. **增加关键字**:在原有基础上加入ELSE、FOR、TO 和 DOWNTO。
2. **修改运算符**:将不等号# 修改为 <>。
3. **新增条件语句的 ELSE 子句**:
4. **扩充赋值运算**:引入 += 和 -= 运算符,用于简化代码中的常见操作。
5. **扩展循环结构(Pascal FOR 语句)**:
- `FOR <变量> := <表达式> TO <表达式> DO <语句>` :该语法表示从起始值到结束值的正向递增循环。步长默认为1。
- `FOR <变量> := <表达式> DOWNTO <表达式> DO <语句>`:此结构支持反方向(即负向)的循环,步长设定为-1。
**选做内容**
(1) **增加运算符**:
- 增加 ++ 和 -- 运算符以提供更直观和简洁的方式来操作变量。
(2) **扩展数据类型定义**
- 字符型:用于处理单个字符的数据。
- 实数型:支持浮点数值的存储与计算。
(3) **函数功能增强**:
- 引入具有返回值及相应返回语句的功能,使程序逻辑更加灵活和强大。
- 添加参数传递机制到自定义函数中以提高代码复用性。
(4) **数组类型扩展**
- 设计并实现一维数组的数据结构支持,这将允许用户创建、访问以及修改一系列连续存储的元素。