有没有实现ll(k)到ll(1)的转换器?
发布于 2010-06-10 21:50:53
一般来说,没有,因为有些语言有ll(k)文法,但没有ll(1)文法。所以除非我错了,不是所有的ll(k)都可以转换成ll(1)。然而,这并没有说明这样一种工具的可能性,它将在可以做到的情况下工作。
左因子分解的规则是:
A := A B |
A C |
D |
E ;变成:
A := (D | E) (B | C)*或者如果您不允许()组和*
A := D A'
E A'
A' := B A' |
C A' |
nul ;技巧变成了如何处理操作规则的转换;如果您的语言支持它,lambdas可能会很方便。
https://stackoverflow.com/questions/3011830
复制相似问题