- 1、本文档共116页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 算术表达式的SLR分析表 I0 *I1 *I2 I3 I4 I5 I6 I7 I8 *I9 I10 I11 i + * ( ) # E T F s5 s4 1 2 3 I1 中有 S’ ? E.和 E ? E.+ T, 这是冲突, Follow(S’)={ # } 不包括 ‘+’, 于是如果当前符号是‘+’, 则移入 ‘+’ ; 如果当前符号是 ‘#’ 则接受; 其它情况是出错。 s6 acc I2 中有 E ? T.和 T ? T.* F, 这是冲突, Follow(E)={+, ), # } ,其中没有 ‘*’, 于是如果当前符号是 ‘*’,则移入 ‘*’ ; 如果当前符号是 ‘+’, ‘)’ 或 ‘#’ 则用 E ? T进行规约,其它情况是出错。 s7 r2 r2 r2 I3 中只有规约项目 T ? F..我们可用两种方式处理,一种是对 Follow(T)={+, ), # } 中的符号用填写 r3 ,其它符号则是错误,另外一种方法像 LR(0)一样,对所有的符号均填入 r3 。 r4 r4 r4 r4 s5 s4 8 2 3 r6 r6 r6 r6 s5 s4 9 3 s5 s4 10 s6 s11 I9 中包括 E ? E+T.和 T ? T.* F, 是冲突, Follow(E)={+, ), # } 不包括 ‘*’,所以如果 当前符号是 ‘*’, 则移入 ‘*’ ; 如果当前称号是 ‘+’, ‘)’或 ‘#’ 则用产生式E ? T规约; 其它情况则是错误。 r1 s7 r1 r1 r3 r3 r3 r3 r5 r5 r5 r5 * * 用优先级解决冲突 在 OPG分析中,非终极符都没有什么区别,所以实际上在下面的文法中 : E ? E+E | E*E | (E) | i 是用操作符的优先级来分析的。 如何用SLR(1)来分析这个文法? E’ ? .E E ?.E+E E ?.E*E E ?.(E) E ?.i I0 E E’ ? E. E ? E.+E E ? E.*E I1 ( E’ ?(.E) E ?.E+E E ?.E*E E ?.(E) E ?.i I2 i E ? i. I3 + E ? E+.E E ?.E+E E ?.E*E E ?.(E) E ?.i I4 * E ? E* .E E ?.E+E E ?.E*E E ?.(E) E ?.i I5 E E ?( E.) E ? E.+E E ? E.*E I6 ( i E E ? E+ E. E ? E.+E E ? E.*E I7 ( I2 i I3 E E ? E* E. E ? E.+E E ? E.*E ( i I8 ) E’ ?(E). I9 + I4 * + * + * ? ? ? * * 用优先级解决冲突 用优先级来解决冲突, SLR(1) 分析表如下: i + * ( ) # E I0 s3 s2 1 I1 s4 s5 acc I2 s3 s2
文档评论(0)