Мне нужно проанализировать логическую строку поиска ключевых слов и операторов в запросе SQL, который будет выполнен из кода C #. Я думаю, что что-то вроде ANTLR - это то, что мне нужно для этой задачи, но я не уверен, как это сделать.
Есть ли хорошие уроки о том, как это сделать? А может мне нужен другой инструмент?
Пример того, что я имею в виду, ниже. Мне нужны только операторы AND и OR. Я также хотел бы иметь возможность использовать скобки.
входное выражение: (синий И зеленый) ИЛИ желтый
вывод:
ВЫБРАТЬ *
С таблицы
ГДЕ (СОДЕРЖИТ (Описание, «синий») И СОДЕРЖИТ (Описание, «зеленый»)) ИЛИ> СОДЕРЖИТ (Описание, «Желтый»
Если возможно, я бы также хотел поддерживать неявную вставку AND. Поэтому оператор по умолчанию, если он не указан, - это AND.
вход: зеленый (синий или желтый)
Выход:
ВЫБРАТЬ *
С таблицы
ГДЕ СОДЕРЖИТ (Описание, «зеленый») И (СОДЕРЖИТ (Описание, «синий») ИЛИ> СОДЕРЖИТ (Описание, «желтый»))