是否可以使用BNF语法创建LL解析器?

时间:2015-08-11 22:33:46

标签: parsing grammar bnf ll

我在谷歌上看知道是否有可能使用BNF语法创建一个LL解析器,但我在维基百科上看到他们使用类似

的东西
S → F
S → ( S + F )
F → a

这不是BNF语法。是否可以使用BNF语法创建LL解析器,或者您只能使用LL语法?

感谢' S

1 个答案:

答案 0 :(得分:0)

是的,你可以。 BNF只是表示无上下文语法的符号。粗略地:: =是箭头,左边显示的<symbol>是非终端的&#34;文字&#34;是终端符号(见here

考虑到并非所有无上下文语法都是LL(1),有些语法没有LL解析器。

如果你使用一个解析器生成器,你会发现你的语法是LL还是LL。但如果不是,那么可能很难纠正它(特别是如果你没有语言理论的背景)。