В настоящее время я ищу лексер / парсер, который генерирует код Scala из грамматики BNF (файл ocamlyacc
с приоритетом и ассоциативностью). Я совершенно сбит с толку, поскольку почти ничего не нашел о том, как это сделать.
Для разбора я нашел scala-bison
(с которым у меня много проблем при работе). Все остальные инструменты - это просто парсеры Java, импортированные в Scala (например, ANTLR
).
Для лексинга я ничего не нашел.
Я также нашел знаменитые комбинаторы парсеров из Scala, но (поправьте меня, если я ошибаюсь), даже если они довольно привлекательны, они занимают много времени и памяти, в основном из-за возвраты .
Итак, у меня есть два основных вопроса:
- Почему люди, кажется, концентрируются только на _parser комбинаторах?
- Какое ваше самое лучшее предложение лексера / генератора синтаксических анализаторов для использования с Scala?