第五章自上而下的语法分析.pptVIP

  • 2
  • 0
  • 约7.13千字
  • 约 50页
  • 2017-11-09 发布于江西
  • 举报
第五章自上而下的语法分析

构造递归下降分析程序: 构造递归下降分析程序时,每个函数名是相应的非终结符,函数体则是根据规则右部符号串的结构编写。 当遇到终结符a 时,则编写语句 if (当前读来的输入符号==a) 读下一个输入符号; 当遇到非终结符A 时,则编写语句调用A(); 当遇到A →ε规则时,则编写语句 if (当前读来的输入符号 FOLLOW(A) ) error() ; 当某个非终结符的规则有多个候选式时,按LL(1)文法的条件能唯一地选择一个候选式进行推导。 文法的扩展BNF表示(Extended BNF,EBNF)的产生式事实上已经可以被看作是程序的抽象。用某种程序设计语言表示出来,并且加上适当的数据结构与基本函数,就形成了非终结符的递归下降子程序。 递归下降分析: 递归下降分析程序 例:对文法G: Sym:输入串指针IP所指符号; Advance:把IP调至下一个输入符号; Error:出错诊断程序 即E有两个候选;第一个候选的开头终结符为+,第二个候选为ε。这就是说,当E面临输入符号“+”时就令第一个候选进入工作,而当面临任何其它符号时,E就自动认为获得了匹配。递归函数E就是根据这一原则设计的。 例如,我们将递归函数的调用以栈的形式模拟来分析输入串 # i1*(i2+i3)# 的语法分析过程;在此,“#”为输入串i1*( i2+i3

文档评论(0)

1亿VIP精品文档

相关文档