编译原理递归下降语法分析器C++简单实现
1.递归下降分析法的功能
语法分析器的功能是利用函数之间的递归调用模拟语法树自上而下的构造过程。
2.递归下降分析法的前提
改造文法:消除二义性、消除左递归、提取左因子,判断是否为LL(1)文法。
3.递归下降分析法实验设计思想及算法
为G的每个非终结符号U构造一个递归过程,不妨命名为U。U的产生式的右边指出这个过程的代码结构:
(1)若是终结符号,则和向前看符号对照,若匹配则向前进一个符号;否则出错。
(2)若是非终结符号,则调用与此非终结符对应的过程。当A的右部有多个产生式时,可用选择结构实现, 具体为:(1)对于每个非终结符号U->u1|u2|…|un处理的方法如下
U( )
{