LL(1) parser generator in OCaml

2019-07-15 07:56发布

I'm looking for a LL(1) parser generator in OCaml... Can anybody help me with this?

4条回答
老娘就宠你
2楼-- · 2019-07-15 08:10

Planck LL(n) parser combinator library: https://bitbucket.org/camlspotter/planck/overview

It has started as my toy project, and there is no actual users, but I could implement OCaml syntax lexer/parser with Planck which are 100% compatible with the originals.

I do not recommend to use it but if you are interested... try it.

查看更多
ら.Afraid
3楼-- · 2019-07-15 08:14

I have heard good things about Menhir

The home page says at the top:

Menhir is a LR(1) parser generator for the OCaml programming language. That is, Menhir compiles LR(1) grammar specifications down to OCaml code. Menhir was designed and implemented by François Pottier and Yann Régis-Gianas.

Menhir is 90% compatible with ocamlyacc. Legacy ocamlyacc grammar specifications are accepted and compiled by Menhir. The resulting parsers run and produce correct parse trees.

查看更多
淡お忘
4楼-- · 2019-07-15 08:17

Well, LALR parsers can parse a strict superset of the languages which can be parsed by LL parsers. So I would advise simply using ocamlyacc which ships with Ocaml and is an LALR(1) parser generator. This may require some minor rewriting of the grammar, but it shouldn't be too hard.

查看更多
Luminary・发光体
5楼-- · 2019-07-15 08:17

Stream parser as included in camlp4 are (at best of my knowledge) LL(1) parser. see http://caml.inria.fr/pub/docs/manual-camlp4/manual003.html

查看更多
登录 后发表回答