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