OCaml中的LL(1)解析器生成器

时间:2011-11-09 19:32:13

标签: parsing ocaml generator top-down

我正在寻找OCaml中的LL(1)解析器生成器......任何人都可以帮我这个吗?

4 个答案:

答案 0 :(得分:2)

好吧,LALR解析器可以解析LL解析器可以解析的语言的严格超集。所以我建议简单地使用Ocaml附带的ocamlyacc,它是一个LALR(1)解析器生成器。这可能需要对语法进行一些小的改写,但这不应该太难。

答案 1 :(得分:1)

Planck LL(n)解析器组合子库:https://bitbucket.org/camlspotter/planck/overview

它已经开始作为我的玩具项目,并且没有实际用户,但我可以使用Planck实现OCaml语法词法分析器/解析器,它与原始文件100%兼容。

我不建议使用它,但如果你有兴趣...试试吧。

答案 2 :(得分:1)

包含在camlp4中的流解析器(据我所知)LL(1)解析器。看到 http://caml.inria.fr/pub/docs/manual-camlp4/manual003.html

答案 3 :(得分:0)

我听说过有关Menhir

的好消息

主页在顶部显示:

Menhir是OCaml编程语言的LR(1)解析器生成器。也就是说,Menhir将LR(1)语法规范编译为OCaml代码。 Menhir由FrançoisPottier和YannRégis-Gianas设计和实施。

Menhir与ocamlyacc 90%兼容。 Menhir接受并编辑了遗留的ocamlyacc语法规范。生成的解析器运行并生成正确的解析树。