解析函数运算字符串方案征集,如:sin(MyDataBase.MyTable.IntField)*myfunc(cos(20*2+3),56)+23)

altaxa 2003-05-14 09:27:43
解析函数运算字符串方案征集,
如:sin(MyDataBase.MyTable.IntField)*myfunc(cos(20*2+3),56)+23)
其中,sin,cos,myfunc等是我定义的函数,共有几十个,此处之列句简单几个。他们的调用格式已知,MyDataBase是数据库名,MyTable是表名,IntField是字段名。+-*/=()这些符号的优先级已知。
请问用什么方法解析和计算这个表达式呢?
...全文
35 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
altaxa 2003-06-10
  • 打赏
  • 举报
回复
to fingster(天幕繁星)
C++的函数适配器?怎么用?能够详细说明
fingster 2003-06-04
  • 打赏
  • 举报
回复
用C++的函数适配器,怎么样?
altaxa 2003-06-04
  • 打赏
  • 举报
回复
Jupin(VxWorking) , HeadFile(HeadFile)
你们做过的东东能否发给我看看?多谢了。:)
saihuac@sohu.com
Jupin 2003-05-21
  • 打赏
  • 举报
回复
为每一个表达式生成一递归下降树,不断剪树叶子进行求解。
我写过一个编译原理课设原码,有这方面的代码。不过是CBuilder写的。
sevencat 2003-05-20
  • 打赏
  • 举报
回复
假如要求不高的话,
可以用树来解决。

基类:
class Iparsetree
{
int type;
virtual double cacl();
Iparsetree* bran1;
Iparsetree* bran2;
Iparsetree* bran3;
...
}
每个函数和操作符都定义一个树,
然后再用个scanner类来扫描并产生这些树
附:我水平有限,自己也没有实现过一个解释器。看的人家这么用的。
不过这样做效率也并不低

HeadFile 2003-05-20
  • 打赏
  • 举报
回复
找一个Flex++Bison++,自己做一个编译器都可以了。
不过这东西比较老了,我用它写过一个脚本语言的解释器。需要你些一个词法分析的文件,和语法分析的文件。就是学编译原理中的提到的Lex Yacc的C++。
altaxa 2003-05-14
  • 打赏
  • 举报
回复
sign!~~~~~csdn上好像没有什么高手啊
witcheese 2003-05-14
  • 打赏
  • 举报
回复
..

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧