Хороший анализатор ocaml?[закрыто]
Вопрос
Я ищу хорошую библиотеку синтаксического анализа ocaml, которая не является производной от flex / bison.В идеале мне бы хотелось иметь библиотеку монадических комбинаторов, подобную parsec, но я ничего не могу найти.
Я бы использовал haskell, но создание привязок llvm для haskell оказывается более утомительным занятием, чем я первоначально думал.
Ваше здоровье,
Дуэйн
Решение
Вот одна библиотека, через Google.(Что также привело к это и это, в котором перечислены несколько более релевантных библиотек.)
Когда я писал синтаксический анализатор combinator на ML, он оказался довольно громоздким в использовании из-за ограничения значений и нетерпеливой оценки, что вынудило вас значительно расширить свои грамматические правила.Говорят, что Ocaml более спокойно относится к ограничению значений, хотя - возможно, вы будете избавлены от части этой боли.
Другие советы
В мире OCaml, парсеры на основе потоков и Camlp4 ( Камлп4 ) это следующие две наиболее распространенные альтернативы.Оба были подробно описаны в предыдущем Журнал OCaml Статьи.
Комбинаторы монадических синтаксических анализаторов сравнительно редки в OCaml, в основном потому, что доступно несколько высокоуровневых и значительно более эффективных библиотек.