Вопрос

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

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

Ваше здоровье,

Дуэйн

Это было полезно?

Решение

Вот одна библиотека, через Google.(Что также привело к это и это, в котором перечислены несколько более релевантных библиотек.)

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

Другие советы

В мире OCaml, парсеры на основе потоков и Camlp4 ( Камлп4 ) это следующие две наиболее распространенные альтернативы.Оба были подробно описаны в предыдущем Журнал OCaml Статьи.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top