Хороший парсер окамла?

Я ищу хорошую библиотеку для анализа ocaml, которая не является производным от flex/bison. В идеале, мне нужна библиотека монадических комбинаторов вдоль линий parsec, но я ничего не могу найти.

Я бы использовал haskell, но создание привязок llvm для haskell оказалось более утомительным, чем я думал изначально.

Приветствия,

Дуэйн

Ответы

Ответ 1

Здесь одна библиотека через Google. (Который также поднял этот и этот, в котором перечислены несколько более релевантно звучащие библиотеки.)

Когда я написал парсер парнера в ML, оказалось довольно громоздким в использовании из-за ограничения значения и нетерпеливой оценки, что заставило вас расширять ваши правила грамматики. Ocaml, как говорят, более расслаблен относительно ограничения стоимости, хотя, возможно, вы будете избавлены от этой боли.

Ответ 2

В мире OCaml анализаторы потока на основе и Camlp4 являются следующими двумя наиболее распространенными альтернативами. Оба они подробно описаны в предыдущих статьях OCaml Journal.

Компиляторы монодичного парсера сравнительно редко встречаются в OCaml, в основном потому, что доступно несколько более высокоуровневых и значительно более эффективных библиотек.