首先定义一个语法
自顶向下:
消除直接左递归:将A-A+b/b可以转换为A-bA‘ A‘-+bA’/空
消除间接左递归:为非终结符规定一个任意的顺序。用循环实现只能从小的到大的推导,就转换为直接左递归了。
无回溯的实现:构造First Fllow和First+。
先将起始符号推入栈中,对符号进行推导(根据Table表即相关First+来选择规则),将推导得到的除第一个符号外的符号推入栈,然后循环这个过程,当出现非终结符时,对输入进行匹配,然后处理下一个输入。
时间: 2024-10-17 13:27:04