Мне нужно найти быстрый, легкий анализатор выражений.
В идеале я хочу передать ему список пар имя / значение (например, переменные) и строку, содержащую выражение для оценки.Все, что мне нужно, это истинное / ложное значение.
Типы выражений должны быть такими:
varA == "xyz" and varB==123
По сути, это простой логический движок, выражение которого предоставляется во время выполнения.
ОБНОВЛЕНИЕ
Как минимум, он должен поддерживать ==,! =,>,> =, <, <= </p>
Что касается скорости, я ожидаю, что примерно 5 выражений будут выполняться за запрос.Мы увидим где-то в районе 100 / запросов в секунду.Наши текущие страницы, как правило, выполняются менее чем за 50 мс.Обычно в любом выражении участвуют только 2 или 3 переменные.Однако перед выполнением мне потребуется загрузить в анализатор приблизительно 30 единиц.
ОБНОВЛЕНИЕ 2012/11/5
Обновление о производительности.Мы внедрили nCalc почти 2 года назад.С тех пор мы расширили его использование так, что мы усредняем более 40 выражений, охватывающих более 300 переменных на постах.В настоящее время происходят тысячи обратных запросов в секунду с абсолютно нулевым снижением производительности.
Мы также расширили его, включив в него несколько дополнительных функций, опять же без потери производительности.Короче говоря, nCalc удовлетворил все наши потребности и превзошел наши ожидания.