Предположим, что создаётся очень гибкий фильтр для таблицы, в котором логика прописыфвается оператором.
Пользователь открывает форму, в которой после некотроых манипуляций получает 5(в нашем примере) критериев:
- Содержит слово "дом"
- Заканчивается на "ться"
- Первое слово с большой буквы
- Содержит слово "сарай"
- Оканчивается на "!"
Учёт регистра сейчас во внимание не берём.
Далее выбирается столбец для применения фильтра (к примеру столбец "описание") , а в конце формы есть текстовое поле, в котором и прописывается логика фильтра, используя при этом критерии, приведённые выше.
К примеру это поле будет содержать что-то вроде "=(((1 и (2 или 4))или(2 и 3 и 4)) и 5)"
Вопрос вот в чём. Как это самое логическое выражение "=(((1 и (2 или 4))или(2 и 3 и 4)) и 5)" преобразовать в машинную логику?
Были мысли попробовать реализовать на питоне, где в ходе выполнения программа будет дописывать в исполняемый файл условия, основанные на введённой оператором логике, но, т.к. работаю преимущественно на С#, может там есть какая-то возможность это реализовать.
Надеюсь, понятно объяснил...