Смешение фаз лексера и синтаксического анализа в одной фазе иногда делает синтаксические анализаторы Parsec менее читаемыми, но также замедляет их. Одним из решений является использование Alex в качестве токенизатора, а затем Parsec в качестве парсера потока токенов.
Это хорошо, но было бы еще лучше, если бы я мог избавиться от Алекса, потому что он добавляет одну фазу предварительной обработки в конвейер компиляции, плохо интегрируется с "IDE" haskell и т. Д. Мне было интересно, было ли такое что-то вроде EDSL на Haskell для описания токенизаторов, очень в стиле Алекса, но в виде библиотеки.