Academia
Academia

Reputation: 4124

LL(1) parser generator in OCaml

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

Upvotes: 3

Views: 1732

Answers (4)

user1524750
user1524750

Reputation:

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.

Upvotes: 1

Rémi
Rémi

Reputation: 8342

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

Upvotes: 1

camlspotter
camlspotter

Reputation: 9040

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.

Upvotes: 1

Keith Irwin
Keith Irwin

Reputation: 5668

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.

Upvotes: 4

Related Questions