我是靠谱客的博主 现实裙子,最近开发中收集的这篇文章主要介绍php实现ll1文法分析,LL(1)文法的判断,递归下降分析程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文法 G(S):

(1)S -> AB

(2)A ->Da|ε

(3)B -> cC

(4)C -> aADC |ε

(5)D -> b|ε

验证文法 G(S)是不是 LL(1)文法.

SELECT(A ->Da)=FIRST(Da)={b,a}

SELECT(A ->ε)=FOLLOW(A)=FIRST(B) U FIRST(D) U FIRST(C) U FOLLOW(C)={c,b,a,#}

SELECT(C -> aADC)=FIRST(aADC)={a}

SELECT(C -> ε)=FOLLOW(C)={#}

SELECT(D -> b)=FIRST(b)={b}

SELECT(D -> ε)=FOLLOW(D)={a,#}

因为SELECT(A ->Da)与SELECT(A ->ε)的交集不为空集

所以文法 G(S)不是 LL(1)文法

2.法消除左递归之后的表达式文法是否是LL(1)文法?

消除左递归:

E-->TE'

E'-->+TE' | ε

T-->FT'

T'-->*FT' | ε

F-->(E) | i

SELECT(E'-->+TE' )=FIRST(+TE')={+}

SELECT(E'-->ε )=FOLLOW(E')={#}

SELECT(T&

最后

以上就是现实裙子为你收集整理的php实现ll1文法分析,LL(1)文法的判断,递归下降分析程序的全部内容,希望文章能够帮你解决php实现ll1文法分析,LL(1)文法的判断,递归下降分析程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部