文档详情

[第四章 语法分析 自上而下 3.0.ppt

发布:2017-01-07约1.59万字共60页下载文档
文本预览下载声明
如:M[X,a]={X—>UVW},就用WVU(U在顶)替换栈顶的X作为输出; 如:M[X,a]=error,则调用error程序。 对第3)条, X∈VN,查分析表M的元素M[X,a] Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 分析表格式 E E′ T T′ F id E —> TE′ T —> FT′ F —>id + E′—> +TE′ T′—> ε * T′—> *FT′ ( E —> TE′ T —> FT′ F —>(E) ) E′—> ε T′—> ε # E′—> ε T′—> ε E —> TE′ E′—> +TE′|ε T —> FT′ T′—> *FT′ |ε F —>(E)|i Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 例4.5 按预测分析程序,对于输入 id+id*id 所作动作如下所示: 栈 输 入 输 出 1 #E id+id*id# 2 #E′T id+id*id# E—>TE′ 3 #E′T′F id+id*id# T—>FT′ 4 #E′T′id id+id*id# F—>id 5 #E′T′ +id*id# 6 #E′ +id*id# T′—>ε 7 #E′T′+ +id*id# E′—> +TE′ #E′T id*id# #E′T′F id*id# T—> FT′ M[ E, id ] = E —>TE′ M[ T, id ] = T —>FT′ 左部出栈,右部反序压栈 ! M[F, id ] = F —>id 匹配,id出栈 输入串指针后移 X a E id T id F id id id Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 栈 输 入 输 出 10 #E′T′id id*id# F—>id 11 #E′T′ *id# 12 #E′T′F* *id# T′—>*FT′ 13 #E′T′F id# 14 #E′T′id id# F—> id 15 #E′T′ # 16 #E′ # T′—>ε # # E′—>ε 有: X=a=#,分析成功。 id id X a T ′ id * * F id id id T’ # E’ # # # Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 结论: ①输出的产生式就是最左推导的产生式。栈中放右 部,等待与α匹配; ②表指出(栈顶,a)时,如何扩充树,出错马上发 现。 实质: 栈:残缺规范句型 表:指出VN按哪一条扩充,依赖于VT 上述分析过程生成的语法树: Evaluation only. Create
显示全部
相似文档