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

Parsing OCaml中的LL(1)解析器生成器,parsing,ocaml,generator,top-down,Parsing,Ocaml,Generator,Top Down,我正在寻找OCaml中的LL(1)解析器生成器。。。有人能帮我吗?好吧,LALR解析器可以解析一个严格的语言超集,它可以被LL解析器解析。所以我建议只使用ocamlyacc,它与Ocaml一起提供,是一个LALR(1)解析器生成器。这可能需要对语法进行一些小的重写,但应该不会太难。Planck LL(n)parser combinator库: 它是作为我的玩具项目开始的,没有实际的用户,但我可以用Planck实现OCaml语法词法分析器/解析器,它与原始版本100%兼容 我不建议使用它,但如果你

我正在寻找OCaml中的LL(1)解析器生成器。。。有人能帮我吗?

好吧,LALR解析器可以解析一个严格的语言超集,它可以被LL解析器解析。所以我建议只使用ocamlyacc,它与Ocaml一起提供,是一个LALR(1)解析器生成器。这可能需要对语法进行一些小的重写,但应该不会太难。

Planck LL(n)parser combinator库:

它是作为我的玩具项目开始的,没有实际的用户,但我可以用Planck实现OCaml语法词法分析器/解析器,它与原始版本100%兼容


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

camlp4中包含的流解析器是(据我所知)LL(1)解析器。看见

我听说了一些好消息

主页顶部显示:

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

Menhir与ocamlyacc有90%的兼容性。Menhir接受并编译传统ocamlyacc语法规范。结果解析器运行并生成正确的解析树。

它不是被称为?;-)OCaml/SML也有LEX/YACC工具,我确信有许多解析器生成器/组合器库。我不太清楚这篇文章在寻找什么——也许做些调查,然后说“像这样,但不是那样”?拜托。LALR(ocamlyacc)是LR(menhir)的严格子集;LR不是LL的超集,反之亦然!!