У меня есть динамически генерируемые логические выражения, например:
- (A или B) и (C или D)
- A или (A и B)
- А
- empty - означает True
Заполнители заменяются булевыми. Должен ли я,
- Преобразуйте эту информацию в выражение Python, например
True or (True or False)
иeval
it? - Создайте двоичное дерево, где node является объектом
bool
илиConjunction
/Disjunction
и рекурсивно оценивает его? - Преобразовать его в вложенные S-выражения и использовать парсер Lisp?
- Что-то еще?
Предложения приветствуются.