资源简介
这个里面的都是测试数据,总共得分5分。从控制台输入,不能从文件中读取。实现了基本功能,加分项目都没有去实现,没有函数数组这些的实现。这是用C++语言写的,新建parser类别要选C++,其他对于VS的配置和C语言一样。for语句用的是枚举所有情况,你可以自行修改。
对预备工作中自然语言描述的简化C编译器的语言特性的语法,设计上下文无关文法进行描述
借助Yacc工具实现语法分析器
考虑语法树的构造:
1.语法树数据结构的设计:节点类型的设定,不同类型节点应保存哪些信息,多叉树的实现方式
2.实现辅助函数,完成节点创建、树创建等功能
3.利用辅助函数,修改上下文无关文法,设计翻译模式
4.修改Yacc程序,实现能构造语法树的分析器
考虑符号表处理的扩充
1.完成语法分析后,符号表项应增加哪些标识符的属性,保存语法分析的结果
2.如何扩充符号表数据结构,Yacc程序如何与Lex程序交互,正确填写符号表项
以一个简单的C源程序验证你的语法分析器,可以文本方式输出语法树结构,以节点编号输出父子关系,来验证分析器的正确性,如下例:
main()
{
int a, b;
if (a == 0)
a = b + 1;
}
可能的输出为:
0 : Type Specifier, integer, Children:
1 : ID Declaration, symbol: a Children:
2 : ID Declaration, symbol: b Children:
3 : Var Declaration, Children: 0 1 2
4 : ID Declaration, symbol: a Children:
5 : Const Declaration, value:0, Children:
6 : Expr, op: ==, Children: 4 5
7 : ID Declaration, symbol: a Children:
8 : ID Declaration, symbol: b Children:
9 : Const Declaration, value:1, Children:
10: Expr, op: +, Children: 8 9
11: Expr, op: =, Children: 7 10
12: if statement, Children: 6 11
13: compound statement, Children: 3 12
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-17 20:20 语法分析\
文件 3943445 2016-12-06 22:47 语法分析\CPlus.zip
文件 850 2016-12-18 23:56 语法分析\ex.txt
文件 4556 2016-12-07 20:01 语法分析\mylexer.l
文件 14715 2016-12-06 22:53 语法分析\myparser.y
----------- --------- ---------- ----- ----
目录 0 2017-02-17 20:20 语法分析\
文件 3943445 2016-12-06 22:47 语法分析\CPlus.zip
文件 850 2016-12-18 23:56 语法分析\ex.txt
文件 4556 2016-12-07 20:01 语法分析\mylexer.l
文件 14715 2016-12-06 22:53 语法分析\myparser.y
- 上一篇:数据结构 C语言版 第2版 严蔚敏 李冬梅著 PDF
- 下一篇:编译原理简易C编译器
相关资源
- 编译原理简易C编译器
- C语言词法分析程序
- Lex和Yacc从入门到精通.pdf
- lex yacc 文献 资料
- ComplexMatrixMathLab(C++复数矩阵数学库,
- 南开大学C++考试题
- C语言实现一个编译器-编译原理南开大
- LEX实现一个C语言子集的词法分析器
- TMS FlexCel for VCL & FMX 6.21.0.0 XE10.2
- LEX与YACC实现C语言词法分析和语法分析
- 编译原理课程设计+报告用高级语言
- XLEX生成器--防LEX
- 使用C++书写的Lex源代码
- 一个简单的lex词法分析器
- YACC 中缀表达式到后缀表达式
- 一个Lex/Yacc完整的(可使用C++)
- C++实现的单纯形算法计算程序
- C语言上机考试经典100题--南开大学出
- MS FlexGrid Control
- MFC特强大CListCtrlEx支持插入控件、设置
- CGridListCtrlEx源码vc++
- 面向对象设计自定义一个示意性的复
- C语言实现matlab的butter函数(免comple
- 编译原理课程设计 使用lex和yacc
- 基于LEX的C语言词法分析器
- 三级,南开100道题
- 利用LEX自动生成词法分析程序
- 实现词法分析器
- 编译原理 C编译器
- 实现词法分析器
评论
共有 条评论