生成树句法分析举例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
生成树句法分析举例
给定文法G=(V N , V T , P, S),其中V N ={S, A, B},V T ={a, b, c}, P :S ->aAc ,A ->aAc ,A ->bB ,B ->bB ,B ->b
则该文法的一个生成语句为:222*c b a S −→−
,若按自下而上的次序,生成式的使用依次为B ->b ,A ->bB ,A ->aAc ,S ->aAc ,对应于结点
B, A, A, S ,恰好是推导222*c b a S −→−
用到的生成规则。 对于a 2bc 是否能找到生成树?从下而上分析,若存在a 2bc 的生成树,树叶应为a, a, b, c ,因其最左边的叶是a ,从生成式P 中找其最近结点只能是S ->aAc 或A ->aAc ,继续分析有两种情况:
(1) 分析A ->aAc :如图(a),最左边叶a 上面的结点是A ,这
样第二片叶a 往上找不到推导。
(2) 分析S ->aAc :如图(b),因S 是根,从S 结点分叉的三个
直接后代只能是a 、A 和c ,但找不到使A 与a 、b 连接的推导,所以S 也不能是最左边叶a 上面的结点。
对a 2bc 做自上而下的分析:从S 出发,首先只能生成S ->aAc ,这时V N 中有元素A ,A 的生成式为A ->aAc 和A ->bB ,都不合适。