Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析自定义类型的数学函数 我将开始开发一个应用程序的子组件,用C++对象的操作数来评估数学函数。这将通过用户界面访问,以提供拖放、适当类型的反馈以及执行按钮_C++_Architecture_Parsing_Bison - Fatal编程技术网

解析自定义类型的数学函数 我将开始开发一个应用程序的子组件,用C++对象的操作数来评估数学函数。这将通过用户界面访问,以提供拖放、适当类型的反馈以及执行按钮

解析自定义类型的数学函数 我将开始开发一个应用程序的子组件,用C++对象的操作数来评估数学函数。这将通过用户界面访问,以提供拖放、适当类型的反馈以及执行按钮,c++,architecture,parsing,bison,C++,Architecture,Parsing,Bison,我非常有兴趣使用flex和bison来完成这项工作,在这里和更远的地方,我已经研究了方程解析等。我不确定的是,当你试图用自定义C++类型解析Flex/BySee是合适的吗?很明显,正常的语法分析是用文本进行的,这与我们想要的有很大的不同,所以也看看人们是怎么想的,看看我是不是想把一个方形的钉子放在一个圆形的洞里 你觉得怎么样 编辑 人们在下面提供的链接中有一些非常好的信息来源。一个看起来很有希望但尚未被提及的是Boost.Spirit。今天早些时候我查看了一些示例,如果您下载了boost并感兴趣

我非常有兴趣使用flex和bison来完成这项工作,在这里和更远的地方,我已经研究了方程解析等。我不确定的是,当你试图用自定义C++类型解析Flex/BySee是合适的吗?很明显,正常的语法分析是用文本进行的,这与我们想要的有很大的不同,所以也看看人们是怎么想的,看看我是不是想把一个方形的钉子放在一个圆形的洞里

你觉得怎么样

编辑


人们在下面提供的链接中有一些非常好的信息来源。一个看起来很有希望但尚未被提及的是Boost.Spirit。今天早些时候我查看了一些示例,如果您下载了boost并感兴趣,boost/libs/spirit/examples目录中有一些基于计算器的示例。他们的主页是。

对我来说,听起来就像是一个圆孔里的方钉(除非我严重误解了这个问题):

Flex将创建一个状态机来标记流,在您的例子中,内容已经标记化了


Bison听起来有点相关,因为它可以处理运算符优先级,但是与它集成会带来太多的痛苦,因为相对较小的好处。

请检查Flex和Bison是解析算术表达式、方程等的正确工具

以下是几个例子:

  • 。它使用C(而不是C++),但您可以对其进行readapt
  • 。将Flex和BiSun集成到一个现代C++程序中的“框架”。以算术计算器为例

如果你试图解析描述数学函数的文本,使用自定义C++类型将它们转换成一些表示,那么这正是Flex/BySee设计的。但是你说你想做的事情不涉及文本,所以我不确定解析是从哪里开始的。谢谢你的评论。用户界面将包含一些文本,因为用户将能够输入类型的“等式”,类似于Excel函数对话框。这是对输入的解析,以及对我认为Flex/BySun可能有用的真实C++对象的后续转换/操作。谢谢答案。我认为你理解这个问题,只是它不是适合这份工作的工具组合(很遗憾!)。非常有趣的链接,谢谢。我今天要看一看这个。谢谢,我看到了顶部链接,但没有看到模板版本。我会把这个列入可能的名单。不客气!:)请投票选出有帮助的答案,并尽可能选择最有帮助的(如果有的话)作为被接受的答案。