Вот новость-то! Там ссылка на статью, в которой рассматривается процесс создания небольшой библиотеки, что может разбирать произвольную контекстно-свободную грамматику. С приличной скоростью. С примерами для Хаскеля и Scala.
PS
Исходники:
http://www.ucombinator.org/projects/parsing/