Возникла необходимость разбирать простенькие выражения, вводимые пользователем. Написал только что BNF, теперь хочу получить парсер этой грамматики на C#. Задача, скорее всего, одноразовая, поэтому связываться с коммерческими пакетами не хочется. Быстрый поиск в гугле ничего интересного не дал. Вручную писать не хочется.
Вот и сама грамматика —
QUERY ::= RULE [, RULE]
RULE ::= NUMBER | RANGE | COMPARISON
RANGE ::= NUMBER '..' NUMBER
COMPARISON ::= {'<' | '>'} NUMBER
NUMBER ::= [whitespace] [sign] [digits] [.digits] [ {d | D | e | E}[sign]digits]
Есть ли какие-нибудь идеи?
Заранее спасибо.