我认为以下内容实际上是LL(1),但我不确定100%。我们是否能够证明这是LL(1)语法,然后,给出的第一和第二组是否正确?我不太确定如何真正地了解以下内容。
语法
expr :: =术语{addop术语}术语:: =因子{mulop factor}因子:: =变量|无符号号| (expr)变量:: =标识符addop :: = + | --mulop :: = * | /
第一组
First(expr)=标识符,无符号数字,(First(Term)=标识符,无符号数字,(First(Factor)=标识符,无符号数字,(First(变量)=标识符First(addop)= +,-First(mulop)= *,/
跟随组
Follow(Expr)= First(term)跟随(期限)=首要(因子)不明白该如何做以下套组的套组Follow(Factor)= First(“)”)=)关注(可变)跟随(addop)跟随(mulop)
第一组是正确的。
关注组:
FOLLOW(A) of non-terminal A is the set of terminal symbols that can follow in the derivation sequence
FOLLOW(expr):检查它在生产右侧出现的位置。它是有因子:=(expr),当我们在推导中采用此乘积时,expr之后是),而expr是起始符号。
FOLLOW(expr)={),$}
类似地,
FOLLOW(term) = FIRST(addop) U FOLLOW(expr) = {+,-,),$}
FOLLOW(factor) = FIRST(mulop) U FOLLOW(trem) = {*,/,+,-,),$}
FOLLOW(addop) = FIRST(term) = {identifier,unsigned number,(}
FOLLOW(multop) = FIRST(factor) = {identifier,unsigned number,(}
FOLLOW(Variable)= FOLLOW(factor) = {*,/,+,-,),$}
其中$是输入的结尾。
语法为LL(1)。前一组因子是不相交的,我们不需要检查以下组,因为没有ε产生。