-
词法分析器
- 词法错误报告
- 文件名控制
- 行号控制
- 列号控制
- Flex自动生成
-
语法分析器
- 语法错误报告
-
语法检查
- 注册符号信息
- 注册类型信息
- 选择结构、循环结构完整、正确
- Break、Continue所在位置正确
- 本地符号引用是否正确
- 创建语法节点
- 构建语义树
- Bison自动生成
-
语义分析器
- 语义错误报告
-
语义分析
-
语义检查
- 隐式转换
- 括号匹配
- 关系表达式无歧义
- 表达式类型匹配
- 结构体、共用体引用正确
- 创建中间代码序列
- LLVM自动生成
-
中间代码生成器
- 寄存器分配
- 中间代码优化
- 中间代码转储
- LLVM自动生成
-
连接器
- 外部符号链接
- 代码合并
- 信息整合
- 输出字节码文件
- LLVM自动生成
-
文件对象
-
基本信息
- 文件名
- 绝对路径
- 文件句柄
- 文件长度
-
编译信息
- 当前行号
- 当前列号
- 当前所在文件
- 错误数
-
符号信息
-
结构体信息
- 结构体名称
- 结构体成员列表
- 结构体大小
-
共用体信息
- 共用体名称
- 共用体成员列表
- 共用体大小
-
Const常量信息
- Const名称
- Const值
-
函数信息
- 存储限定符
- 类型描述符
- 函数名
- 参数列表
- 局部变量大小