cmpl_04.pptVIP

  • 12
  • 0
  • 约 72页
  • 2016-12-13 发布于河南
  • 举报
§4.1 语法分析器的功能 4.3.3 LL(1)分析条件 §4.6 LL(1)分析中的错误处理 相关概念:FOLLOW 集 【定义】 假设 S 是文法 G 的开始符号,对于 G 的任何非终极符 A,定义非终结符 A 的后继符号的集合: FOLLOW(A)={a |S ?...Aa...,a∈VT} 。 特别是,若S?...A,则规定 #∈FOLLOW(A)。 FOLLOW(A)是 G 的所有句型中紧接在 A 之后出现的终结符或 #。 这里 # 作为输入串的结束符。 * (1)文法不含左递归。 (2)对文法中的每一个非终极符 A, 若 A →α1|α2|...|αn 则 FIRST(αi)? FIRST(αj)=? (3)对文法中的每一个非终极符 A, 若它存在某个候选首符集包含 ε, 则 FIRST(A)? FOLLOW(A)=? 如果一个文法 G 满足以上条件,则称该文法 G 为 LL(1)文法。 满足构造不带回溯的自上而下分析的文法条件: 对LL(1)文法的自上而下分析过程假设要用非终极符 A 进行匹配,面临的输入符号是 a,A 的所有产生式为:A →α1|α2|...|αn 则: (1)若 a∈FIRST(αi), 则指派 αi 去执行匹配任务。 (2)若 a 不属于任何一个候选首符集, 则: 若 ε 属于某个FIRST(αi), 且 a∈FO

文档评论(0)

1亿VIP精品文档

相关文档