В настоящее время я ищу библиотеку java (или собственную библиотеку с API Java) для разбора и оценки формул.
Используя рекомендации здесь, я просмотрел многие библиотеки:
- JFormula
- JEval
- Symja
- СЭП
Но никто из них не выполняет мои потребности, а именно:
- Множественная оценка формулы с зависимостью между ними (формула всегда относится к переменной с использованием других переменных или числовых значений)
- Возможность изменить только одну формулу из, возможно, 50, с хорошими характеристиками, если изменяется только одна формала
- Не нужно обрабатывать зависимость переменных вручную
- Автоматическое обновление других зависимых переменных, если изменяется формула
- Возможность прослушивания измененной переменной
- не нужно иметь определенный формат для переменных (пользователь будет напрямую вводить имя и не хочет иметь сложную нотацию)
Может быть, пример будет лучше. Пусть говорят, что мы вошли в систему в следующем порядке:
- a = b + c
- c = 2 * d
- b = 3
- d = 2
Я хотел бы иметь возможность вводить эти 4 строки в этом порядке и запрашивать результат "a" (или "b" , что угодно). Тогда, если в пользовательском интерфейсе (в основном, табличная переменная < > formula) значение "b" изменено на "2 * d", библиотека автоматически изменит значение "b" и "a" и вернет меня (или обед событие или вызов функции) список изменений
Лучшая библиотека будет такой же, как JEP, но с возможностями переменных вне порядка и возможностью автоматической оценки зависимых переменных
Я знаю, что компиляторы и электронные таблицы используют такие механизмы, но я не нашел java или java-совместимые библиотеки, которые можно использовать непосредственно
Кто-нибудь знает кого-то?
EDIT: Точность: вопрос действительно о библиотеке, или, в конечном счете, о наборе библиотек для связи. Вопрос заключается в проекте в компании, и идея состоит в том, чтобы потратить минимальное время. Решение "сделай сам" уже оценено и не входит в круг вопросов.