Loading... * 预测分析是指能够根据当前输入未非终结符确定采用哪一种选择 * `递归`下降的预测分析是指为每一个非终结符写一个分析过程(函数),这个过程可能会`调用自己` ### 例. ##### 有下列产生式: *type* -> *simple* | **↑** **id** | **array** **[** *simple* **]** **of** *type* *simple*-> **integer** | **char** | **num dotdot num** 首先构造match函数,其作用是匹配当前的终结符,并将指针右移一位 ``` void match(terminal t){ if (lookahead == t) lookahead = nextToken(); else error(); } ``` 然后分别构造simple过程和type过程 ``` void simple(){ if (lookahead == integer) match(integer); else if (lookahead == char) match(char); else if (lookahead == num){ match(num); match(dotdot); match(num); } else error(); } ``` ``` void type(){ if (lookahead in FIRST(simple)) simple(); else if (lookahead == '↑'){ match('↑'); match(id); } else if (lookahead == array){ match(array); match('['); simple(); //递归 match(']'); match(of); type(); } else error(); } ``` 最后修改:2021 年 09 月 09 日 02 : 24 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信
1 条评论
《酷儿们》欧美剧高清在线免费观看:https://www.jgz518.com/xingkong/111714.html