2008-11-21 3 views
13

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

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

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

Дуэйн

+0

Вы хотите, чтобы синтаксический анализатор OCaml в качестве языка ввода или генератор синтаксического анализатора с OCaml в качестве языка реализации/ – 2008-11-21 03:57:14

+0

hi duane, как кто-то заинтересован в том же, мне хотелось бы знать, нашли ли вы приличную библиотеку в конец, и как это сработало для вас. – 2009-11-01 10:10:04

ответ

11

Here's one library через Google. (Который также воспитывался this и this, в котором перечислены несколько более соответствующих звучащих библиотеках.)

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

+0

Я новичок новичка парсера, но, кажется, FParsec не заставляет вас расширять eta (а F # имеет ограничение по стоимости и нетерпеливую оценку). Пожалуйста, поправьте меня, если я ошибаюсь. Благодарю. – 2009-01-19 01:55:32

3

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

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

Смежные вопросы