Как я могу узнать о комбинаторах парсеров?

Я нашел несколько ресурсов по этой теме, но все они требуют глубокого понимания SmallTalk или Haskell , ни о чем я не знаю.

Ответов (10)

Решение

Вот несколько библиотек комбинаторов парсеров на более распространенных языках:

Я написал 8 длинных записей в блоге о комбинаторах монадического синтаксического анализатора на C# и F #; см. здесь для первого.

См. Также FParsec (Parsec для F #)

Если вы знаете Python, есть PyParsing .

Chrise Double написал комбинатор парсеров на Javascript .

http://www.codecommit.com/blog/scala/the-magic-behind-parser-combinators

Я нашел интересную статью о реализации комбинатора парсеров на C# . Он также ссылается на некоторые более общие статьи по этому вопросу.

В статье в Википедии по этому поводу также есть общее объяснение концепции.

Кей Хорстманн прочитал 4 лекции по синтаксическому синтаксическому анализатору на Scala с упражнениями. Существует пример разбора внешних DSLs в Scala здесь .

Вот ссылка на доклад (слайды и сценарий) о комбинаторах монадического синтаксического анализатора в C++.

В сети есть несколько замечательных статей, описывающих комбинаторы синтаксического анализатора на C#, но нет поддерживаемого репозитория исходного кода, поэтому я создал его по адресу:

http://code.google.com/p/sprache/

Кто-то, знакомый с комбинаторами синтаксического анализатора, вероятно, мог бы многое сделать для его улучшения (пожалуйста, сделайте шаг вперед, если это звучит как вы :))

Для меня эта статья была чрезвычайно полезной. Это почти языковой нейтральный. Просто кое-где ссылаются на Гофера .