Я ищу предложения для портативных легких библиотек, написанных на C++
, которые поддерживают выражение и оценку математических и бизнес-правил. Я понимаю, что C++
не предоставляет такую функциональность в STL
.
Основное требование следующее:
Выражения, которые будут оцениваться, будут состоять из чисел и строк и переменных, представляющих числа или строки.
Ожидается, что некоторые из выражений будут оцениваться много раз в секунду (1000-2000 раз), следовательно, существует потребность в высокопроизводительных оценках выражений.
Первоначально проект в моей компании, мы кодируем все бизнес-правила как классы, полученные из базового класса выражения. Проблема в том, что этот подход не очень хорошо масштабируется по мере увеличения числа выражений.
Я искал googled, но большинство "библиотек", которые я мог найти, - довольно простые примеры алгоритма шунтирующего двора, большинство парсеров выражения, выполняют синтаксический анализ и оценку на одном и том же этапе, что делает их непригодными для непрерывных переоценок и большинство поддерживаемых номеров.
Что я ищу:
- Библиотека, написанная на С++ (С++ 03 или С++ 11)
- Стабильный/производство достойный
- Быстрые оценки
- Portable (win32/linux)
- Любые предложения по созданию высокопроизводительных бизнес-правил.
Пример бизнес-правила:
'rule_result = (Остальные_имиты < min_items) и (элемент == "пляжный мяч" )'