У меня есть выражение/формула, такая как
std::string expr="((A>0) && (B>5 || C > 10))";
Я провел некоторое исследование, и кажется, что если значения A, B, C известны, встраивая Lua или Python в программу на С++, есть функции eval
, которые могут заменить A, B и C и возвращать true
или false
.
Но что происходит, когда я не знаю всех значений? Скажем, что А известно и оно равно -1. Если A равно -1, то формула будет оцениваться как "ложная" независимо от значений B или C.
Можно ли оценить формулу, не зная всех переменных заранее? Например, если A равно 10, имеет смысл искать значение B и повторно оценивать снова. Как мы можем решить эти проблемы? Идеи?