我一直在尝试找到这种上下文无关语法的“第一组”。我想出了2个答案,但我不确定它们是否正确。如果有人能解释如何生成该语法的第一组,我将不胜感激。
两个答案都以不同的方式编写,因为我读过的资料用不同的语法解释了它。
有问题的语法:
E1 -> E2+E1|E2
E2 -> num*E2|num
我的第一个答案:
| A -> α | FIRST(α) |
|:----------- |------------:|
| E1 -> E2+E1 | {num, num} |
| E1 -> E2 | {num, num} |
| E2 -> num*E2 | {num} |
| E2 -> num | {num} |
我的第二个回答:
FIRST(E1) = {num}
FIRST(E2) = {num}