目的:熟练掌握自下而上的语法分析方法,并能用程序实现。
要求:1.使用如下文法: EE+T|T TT*F|F F(E)|id2.对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。
手工构造LR分析表,利用移进-归约分析算法(P69图3.12)输出(P70表3.8)对应的动作部分。
如:输入:id*+id/(id+id)#输出:移进 按F->id归约移进error……3.要有一定的错误处理功能。
即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。
例如:从形态0开始的记号流为:bm将b移进之后,栈里的情况应该为:0b2此时查表发现action[2,m]=error输出打印:error把A和形态1相继压入栈,用户指针后移到FOLLOW(A)对应的元素继续分析。
1