Parsing 一个好的ocaml解析器?

Parsing 一个好的ocaml解析器?,parsing,ocaml,parsec,Parsing,Ocaml,Parsec,我正在寻找一个好的ocaml解析库,它不是flex/bison的衍生物。理想情况下,我想要一个与parsec类似的一元组合器库,但我找不到任何东西 我会使用haskell,但为haskell制作llvm绑定比我最初想象的更令人厌烦 干杯 杜安,通过谷歌。(其中还列出了和,其中列出了几个更相关的声音库。) 当我用ML编写一个combinator解析器时,由于值限制和急切求值,使用起来相当麻烦,这迫使您扩展语法规则。据说Ocaml对值限制更为宽松,不过——也许你可以省去一些痛苦。在Ocaml世界中,

我正在寻找一个好的ocaml解析库,它不是flex/bison的衍生物。理想情况下,我想要一个与parsec类似的一元组合器库,但我找不到任何东西

我会使用haskell,但为haskell制作llvm绑定比我最初想象的更令人厌烦

干杯

杜安,通过谷歌。(其中还列出了和,其中列出了几个更相关的声音库。)

当我用ML编写一个combinator解析器时,由于值限制和急切求值,使用起来相当麻烦,这迫使您扩展语法规则。据说Ocaml对值限制更为宽松,不过——也许你可以省去一些痛苦。

在Ocaml世界中,这是接下来两个最常见的选择。在以前的文章中已经详细描述了这两种方法


一元解析器组合器在OCaml中相对较少,这主要是因为有几个更高级、效率更高的库可用。

您想要OCaml的解析器作为输入语言,还是想要OCaml作为实现语言的解析器生成器/hi duane,作为对同一事物感兴趣的人,我想知道您是否最终找到了一个合适的库,以及它是如何为您工作的。我正在学习解析器组合器。当你说“有几个级别更高、效率更高的库可用”时,你指的是哪一个?谢谢。另外,它们与FParsec相比如何?我指的是camlp4、Ocamlex、ulex、ocamlyacc、dpygen、menhir、ocfgc、aurochs和其他。我发现ocamlex和ocamlyacc的解析速度通常是F#可用的任何东西(如fslex、fsyacc和FParsec)的几倍。我是一个解析器组合器新手,但在中,FParsec似乎并不强迫您进行eta扩展(而F#具有值限制和急切的求值)。如果我错了,请纠正我。谢谢。这是递归或相互递归的结果。并不是所有的东西都能自然地用克莱恩星来表达。不过,我已经有十多年没有这样做了——很难记住这些问题。@Mauricio:F#有计算表达式的单子式概念;这种语法上的摇摆可以让你隐藏所有的不愉快。