首先并遵循以下语法
First and follow in the following grammar
给出如下语法:-
E->E+T|T
T->T*F|F
F->id
我已经尝试找到第一个并跟随。谁能验证一下是否正确???
First(E)={id}
First(T)={id}
First(F)={id}
Follow(E)={+,id}
Follow(T)={+}
Follow(F)={id,*}
第一组正确,
FOLLOW(A) of non-terminal A is the set of terminal symbols that can follow in the
derivation sequence
FOLLOW(E),检查它在生产右侧的位置。它在
E->E+T
推导这个产生式时,E后面的是'+','$'(End of Input)也加在start symbol后面
FOLLOW(E) ={+,$}
FOLLOW(T),在三个作品的右边
E-> E+T E->T T->T*F
FOLLOW(T)={*} U FOLLOW(E)={*,+,$}
FOLLOW(F),在两个作品的右边
T->T*F T->F
FOLLOW(F)=FOLLOW(T)={*,+,$}
如果你正在做这个练习来计算 LL(1) 解析 table 那么首先消除左递归并继续。
给出如下语法:-
E->E+T|T
T->T*F|F
F->id
我已经尝试找到第一个并跟随。谁能验证一下是否正确???
First(E)={id}
First(T)={id}
First(F)={id}
Follow(E)={+,id}
Follow(T)={+}
Follow(F)={id,*}
第一组正确,
FOLLOW(A) of non-terminal A is the set of terminal symbols that can follow in the
derivation sequence
FOLLOW(E),检查它在生产右侧的位置。它在
E->E+T
推导这个产生式时,E后面的是'+','$'(End of Input)也加在start symbol后面
FOLLOW(E) ={+,$}
FOLLOW(T),在三个作品的右边
E-> E+T E->T T->T*F
FOLLOW(T)={*} U FOLLOW(E)={*,+,$}
FOLLOW(F),在两个作品的右边
T->T*F T->F
FOLLOW(F)=FOLLOW(T)={*,+,$}
如果你正在做这个练习来计算 LL(1) 解析 table 那么首先消除左递归并继续。