Инструменты разбора Haskell - yacc: lex :: happy :? - PullRequest
9 голосов
/ 01 мая 2009

Итак, похоже, что Happy - надежная замена yacc в Haskell. Есть ли такой же надежный генератор лексеров, чтобы заменить лекс / флекс?

Ответы [ 2 ]

14 голосов
/ 01 мая 2009

Алекс? http://www.haskell.org/alex/

инструмент для генерации лексических анализаторов в Haskell, с описанием токенов, которые должны быть распознаны в форме регулярных выражений. Это похоже на инструмент lex или flex для C / C ++ ...

Алекс является частью платформы Haskell , поэтому, если вы установите платформу, у вас автоматически будет работать Алекс.

Алекс тоже на Hackage. Если у вас есть инструмент cabal-install (который также поставляется с платформой Haskell), вы можете собрать и установить последнюю версию Alex с помощью

    cabal install alex

Чтобы узнать, какая последняя версия Alex, и отдельно загрузить исходный код, перейдите на страницу HackageDB Алекса .

Алекс также может быть предварительно упакован для вашей ОС ...

5 голосов
/ 02 мая 2009

Happy: Yacc :: Alex: Lex

Или используйте одну из библиотек gazillion parser и lexer combinator.

...