【发布时间】:2021-08-19 23:22:48
【问题描述】:
来自main(),我希望用户通过命令行输入一个数学函数(I,e:2xy)。从那里开始,我最初想遍历字符串并解析出不同的算术运算符 x、y 等。但是,对于更复杂的函数,这可能会变得相当复杂(例如:(2x^2)/5 + sqrt(x^4) )。有没有更通用的方法可以解析像这样的数学函数字符串?
【问题讨论】:
-
1.使用可能存在的数学解析器/评估器库之一。 2. 使用 lex/flex 和 yacc/bison(或其他一些词法分析器和解析器生成器)实现解析器 3. 滚动你自己的解析器
-
您在下面有很好的答案,但首先您需要定义一个formal grammar。仅从四个操作开始,然后尝试阅读有关词法分析器和解析器的信息。
标签: c math command-line-arguments