You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
在这个题目中,要求你完成一个针对算术表达式的语法分析器。该算术表达式的上下文无关文法是:
E -> E + T
| E - T
| T
T -> T * F
| T / F
| F
F -> num
| (E)
请下载我们提供的C代码框架,并把其中缺少的部分补充完整。
代码下载地址:
http://staff.ustc.edu.cn/~bjhua/mooc/exp.zip
第五单元作业 语法分析(Part II):台式计算器的设计与实现
在这个题目中,你将实现一个简单的台式计算器。这个台式计算器的功能像在最后一个讲义中演示的例子一样:即用户可以在控制台上交互输入算术表达式,你的程序判断该表达式是否合法,不合法的话报错并退出运行。
你的程序涉及表达式的部分要支持如下的表达式:
E -> n
| E + E
| E - E
| E * E
| E / E
| (E)
其中n是任意的非负整数(注意:在我们演示的例子中,n只是单个字符的整数,所以这个地方你需要做些扩展,这些扩展同时需要涉及修改词法分析yylex函数)。
如果在Linux系统上,那么bison应该是默认安装可用的;如果你需要在Windows上完成,你可以下载Windows平台上的bison:
http://staff.ustc.edu.cn/~bjhua/mooc/bison.exe
注意:1。安装目录不能包含空格汉字等特殊字符;2。安装完成后把安装目录加到环境变量中。