Я думаю, что вам лучше всего будет GPLEX / GPPG, это самая близкая вещь к Yacc / Lex для C #, о которой я знаю, и вам все равно придется переносить свои действия на C #.
Я также использовал Coco / R, ANTLR (конечно), а совсем недавно играл с Irony.net, fslex / fsyacc (F #) и fparsec (F #).
Вот несколько ссылок
Генератор парсеров Gardens Point
У меня нет технической причины использовать его против другого: я играю с ними в основном для развлечения. Я действительно создал несколько DSL для рабочих проектов много лет назад, но я вручную накатал на них сканеры / парсеры (тогда я работал в основном на Паскале и обнаружил, что TP Lex / Yacc не подходит моим вкусам, и DSL были достаточно простыми). Я обнаружил, что FParsec и Irony мне больше всего подходят, так как другие нахожу несколько «беспорядочными» (лишенными элегантности).
ANTLR - очень зрелый (и отличный) генератор синтаксического анализатора / лексера. Первоначально он создавал код Java, но теперь может работать с несколькими языками, включая C # .
Взгляните на расширения "Managed babel", там есть порт lex и yacc в классическом стиле.
http://msdn.microsoft.com/en-us/library/bb165037 (VS.80) .aspx