我现在有只能带简单变量和常用固定数学函数(sin,cos,tan,asin...)的表达式解析求值的源码,如一个表达式字符串:“A+B*3.0+sin(DDDD)-45.67”。
根据输入的表达式字符串,在一个判断函数里对表达式中每个变量作识别,然后在一个取值函数里对各变量代入值,即可求出整个运算表达式的值。现在这个功能不能满足我的需求,因为我的表达式中可能需要自已定义的函数,如float fnABBA(int a,float b),但这个表达式解析算法好像是不能解析“fnABBA(a,b)”,如何让它识别这是一个函数?且如何把形参和函数名一起放到它的解析求值函数里求值?怎么解析出“12.5+fnABBA(a,b,c)*0.5+sin(32.5)+A+B”这种带自定义函数的表达式?
哪位有此算法源码?很急用。必须用自定义的函数对传入不同的参数进行求出结果来才能和其它简单变量进行运算。先不考虑递归调用、指针传值、引用参数以及函数内部再调用其它自定义函数。直接根据传入的变量就可以解析求出函数值了。