我即将开始开发应用程序的子组件,以使用C ++对象的操作数来评估数学函数。这将通过用户界面访问,以提供拖放,适当类型的反馈,然后执行按钮。
我对使用flex和bison非常感兴趣,看了解方程式解析等,无论是在这里还是在更远的地方。我不确定的是,当您尝试使用自定义C ++类型进行解析时,flex / bison是否合适?很明显,正常的解析是用文本解决的,这与想要的也完全不同,所以也看到了人们的想法,看看我是不是想把一个方形钉挂在圆孔里。
您怎么看?
修改
以下人们提供的链接中有一些非常好的信息来源。一个看起来很有希望但尚未被提及的是Boost.Spirit。我正在看一下今天早些时候的例子,如果你已经下载并感兴趣,那么在boost / libs / spirit / examples目录中有一些基于信息的计算器示例。他们的主页是here。
答案 0 :(得分:2)
请结帐muparser
答案 1 :(得分:1)
Flex和Bison是解析算术表达式,方程式等的正确工具。
以下是一些例子:
答案 2 :(得分:0)
当然听起来像圆孔中的方形钉(除非我误解了这个问题):
Flex将创建一个状态机来标记流,在您的情况下 - 内容已经被标记化
Bison听起来更有意义,因为它可以处理运算符优先级,但与它相结合对于相对较小的好处来说太麻烦了。