二义文法的应用.pptx
文本预览下载声明
二义文法的应用4.84.6 二义文法的应用 二义文法的特点:二义文法决不是LR文法简洁、自然例 二义文法 E ? E + E | E ? E | (E) | id 非二义的文法: E ?E + T | T T ?T ? F | F F ? (E) | id 该文法有单个非终结符为右部的产生式4.6 二义文法的应用 二义文法的特点:二义文法决不是LR文法简洁、自然可以用文法以外的信息来消除二义语法分析的效率高(基于消除二义后得到的分析表)4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I7E ? E + E·E ? E·+ EE ? E·? E 4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I7E ? E + E·E ? E·+ E id + id + id E ? E·? E 面临+,归约 4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I7E ? E + E·E ? E·+ E id + id + id E ? E·? E id + id ? id 面临+,归约 面临?,移进4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I7E ? E + E·E ? E·+ E id + id + id E ? E·? E id + id ? id 面临+,归约 面临?,移进 面临 ) 和$,归约4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I8E ? E ? E· E ? E·+ E E ? E·? E 4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I8E ? E ? E· E ? E·+ E id ? id + id E ? E·? E 面临+,归约 4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I8E ? E ? E· E ? E·+ E id ? id + id E ? E·? E id ? id ? id 面临+,归约 面临?,归约 4.6 二义文法的应用 4.6.1 使用文法以外信息来解决分析动作冲突例 二义文法 E ? E + E | E ? E | (E) | id 规定: ?优先级高于+,两者都是左结合LR(0)项目集I8E ? E ? E· E ? E·+ E id ? id + id E ? E·? E id ? id ? id 面临+,归约 面临?,归约 面临 ) 和$,归约4.6 二义文法的应用 4.6.2 特殊情况产生式引起的二义性E ? E sub E sup EE ? E sub EE ? E sup EE ? {E}E ? c4.6 二义文法的应用 4.6.2 特殊情况产生式引起的二义性E ? E sub E sup EE ? E sub EE ? E sup EE ? {E}E ? c 从定义形式语言的角度说,第一个产生式是多余的4.6 二义文法的应用 4.6.2 特殊情况产生式引起的二义性E ? E sub E sup EE ? E sub EE ? E sup EE ? {E}E ? c 联系到语义处理,第一个产生式是必要的4.6 二义文法的应用 4.6.2 特殊情况产生式引起的二义性E ? E sub E sup EE ? E sub EE ? E sup EE ? {E}E ? c 对a sub i sup 2,需要下面第一种输出4.6 二
显示全部