У меня есть программа, которая перебирает несколько точек данных, выполняет операцию над каждой точкой данных и возвращает результат для каждой точки данных. Сказать,
for(int i=1;i<LEN-1;++i)
result[i]=operate(userfunc,i);
Внутри я могу определить несколько переменных, которые содержат значения различных соседей точки данных.
double operate(string userfunc, int i){
double next=data[i+1];
double prev=data[i-1];
double me=data[i];
userfunc(me,prev,next);
}
Я представляю, как пользователь предоставляет входную строку, содержащую математическую операцию, которую он хотел бы выполнить, а также переменные, с которыми он хотел бы работать, например:
0.5+me*min(prev,next)
Тогда мой вопрос заключается в том, существует ли библиотека, которая облегчила бы синтаксический анализ ввода пользователя. Мои текущие мысли включают использование Boost.Spirit или ряда регулярных выражений. Но, возможно, есть более простой способ.