根据本文的规则:
- 如果 A 是开始非终结符,则将 EOF 放入 FOLLOW(A)
找到右侧带有 A 的产生式:- 对于每个产生式 X → αAβ,将 FIRST(β) − {EPSILON } 放入 FOLLOW(A)
- 如果 EPSILON 在 FIRST(β) 中,则将 FOLLOW(X) 放入 FOLLOW(A)
- 对于每个产生式 X → αA,将 FOLLOW(X) 放入 FOLLOW(A)
我的语法中有下一段:
...
A -> C B
B -> , A
C -> EPSILON
C -> =
B -> ;
...
当我尝试根据规则 4 计算 FOLLOW(B) 时,我必须计算 FOLLOW(A),反之亦然。所以我有 StackOverflowException 因为自递归。
我应该怎么办?