Syntax 编译-LL1语法
我正在研究编译器的魔力,但我不了解结果 以下是语法:Syntax 编译-LL1语法,syntax,compilation,compiler-construction,grammar,ll,Syntax,Compilation,Compiler Construction,Grammar,Ll,我正在研究编译器的魔力,但我不了解结果 以下是语法: S -> A # A -> B G D E B -> + | - | EPSILON C -> c C | EPSILON G -> c C D -> . C | EPSILON E -> e B G | EPSILON 当我试图找到第一组和第二组时,我得到的结果与使用在线预测器时得到的结果不同 以下是给出的结果: Non-terminal Symbol / Follow Set S
S -> A #
A -> B G D E
B -> + | - | EPSILON
C -> c C | EPSILON
G -> c C
D -> . C | EPSILON
E -> e B G | EPSILON
当我试图找到第一组和第二组时,我得到的结果与使用在线预测器时得到的结果不同
以下是给出的结果:
Non-terminal Symbol / Follow Set
S $
A #
B c
C e, ., #
G ., #
D e, #
E #
为什么G{e,,}的follow集不是?
因为我理解的是,根据A规则,D跟随G,所以我们加上。,但它也可能是ε,所以我们移动到E,它可以是E,但它也可能是ε,所以我们移动到,关于S规则
我错过了什么
我在使用了工具,您对以下G集的计算是正确的 黑客工具有问题。下面是一个显示相同错误的较短语法:
S -> a B C a
B -> b
C -> EPSILON
很明显,a在B的FOLLOW集合中,但工具报告该集合为空。谢谢。我曾经