第4次上机—语法阐发2目的:熟练操作自下而上的语法阐发方式,并能用C++法度圭表标准实现。
申请:1.使用如下文法: E®E+T|T T®T*F|F F®(E)|id2.对于纵情给定的输入串(词法暗号流)举行语法阐发,申请付与LR阐发器来实现。
手工结构LR阐宣告,行使移进-归约阐发算法(P69图3.12)输入(P70表3.8)对于应的行为部份。
如:输入:id*+id/(id+id)#输入:移进按F->id归约按T->F归约移进error……3.要有未必的差迟处置成果。
即对于差迟能揭示,并且能在未必水平上漠视尽量即便少的暗号来举行接下来的阐发。
譬如:从外形0末了的暗号流为:bm将b移进之后,栈里的情景应该为:0b2此时查表发现action[2,m]=error输入打印:error把A以及外形1相继压入栈,用户指针后移到FOLLOW(A)对于应的元素络续阐发。
4.行使P92页的表3.13的方式将差迟举行分类揭示,即给出详尽的侵蚀信息。
扩展:在已经有文法的底子上再加之减法“-”以及除了法“/”对于应的暴发式组成最终的文法。
从而使患上暗号流能够处置带括号的加、减、乘、除了四则运算。
2023/4/19 11:58:18
5KB
LR
1