С#/.NET Генераторы Lexer

Я ищу приличный лексический генератор сканера для С#/.NET - что-то, что поддерживает категории символов Unicode, и генерирует несколько читаемый и эффективный код. Кто-нибудь знает об одном?


EDIT: поддержка для категорий Unicode, а не только символов Юникода. В настоящее время существует только 1421 символа только категории Lu (Letter, Uppercase), и мне нужно очень точно сопоставлять различные категории, и скорее не будем писать нужные ему наборы символов.

Кроме того, фактический код должен - это исключает вещи, которые генерируют двоичный файл, который затем используется с драйвером (т.е. GOLD)


EDIT: ANTLR пока не поддерживает категории Unicode. Для него существует открытая проблема, поэтому он может когда-нибудь соответствовать моим потребностям.

Ответ 1

GPLEX, похоже, поддерживает ваши требования.

Ответ 2

Два решения, которые приходят на ум, ANTLR и Gold. ANTLR имеет графический дизайнер, основанный на графическом интерфейсе, и отличный примерный проект в С# можно найти здесь.

Ответ 3

Я согласен с @David Robbins, ANTLR, вероятно, ваш лучший выбор. Однако для сгенерированного кода ANTLR требуется отдельная библиотека времени выполнения, чтобы использовать сгенерированный код, потому что существует некоторый синтаксический анализ строк и другие общие общности библиотек, на которые основан сгенерированный код. ANTLR генерирует лексер и парсер.

На стороне примечания: ANTLR отлично... Я написал 400-строчную грамматику для генерации более 10 тыс. Или С# кода для эффективного анализа языка. Это включало встроенную проверку ошибок для всех возможных вещей, которые могли бы ошибиться при анализе языка. Попытайтесь сделать это вручную, и вы никогда не поспеваете за ошибками.