Генератор парсера LL (1) в OCaml - PullRequest
2 голосов
/ 09 ноября 2011

Я ищу генератор парсера LL (1) в OCaml ... Кто-нибудь может мне помочь с этим?

Ответы [ 4 ]

2 голосов
/ 10 ноября 2011

Хорошо, парсеры LALR могут анализировать строгий расширенный набор языков, которые могут быть проанализированы парсерами LL.Поэтому я бы посоветовал просто использовать ocamlyacc, который поставляется с Ocaml и является генератором парсера LALR (1).Это может потребовать небольшого изменения грамматики, но это не должно быть слишком сложным.

1 голос
/ 10 ноября 2011

Анализатор потока, включенный в camlp4, является (насколько мне известно) анализатором LL (1). увидеть http://caml.inria.fr/pub/docs/manual-camlp4/manual003.html

1 голос
/ 10 ноября 2011

Библиотека комбинатора синтаксического анализатора Planck LL (n): https://bitbucket.org/camlspotter/planck/overview

Это началось как мой игрушечный проект, и нет реальных пользователей, но я мог бы реализовать синтаксический анализатор / синтаксический анализатор OCaml с Planck, которые равны 100% совместимы с оригиналами.

Я не рекомендую использовать его, но если вам интересно ... попробуйте.

0 голосов
/ 15 июня 2013

Я слышал хорошие вещи о Menhir

Домашняя страница вверху говорит:

Menhir - генератор синтаксического анализатора LR (1) для языка программирования OCaml,То есть Menhir компилирует спецификации грамматики LR (1) в код OCaml.Menhir был разработан и реализован Франсуа Поттье и Янном Регис-Джанасом.

Менгир на 90% совместим с ocamlyacc.Устаревшие спецификации грамматики ocamlyacc приняты и составлены Menhir.Полученные парсеры работают и выдают правильные деревья разбора.

...