如:f((x+y)*4))+4-(z-5)
f代表函数,其内部运算结果为其参数,解析方式如下:
        f((x+y)*4))+4-(z-5)
               /     \
    f((x+y)*4))+4   z-5
         /      \     
 f((x+y)*4))   4     
解析到不存在括号为止,函数包含其内


求:具体方法

解决方案 »

  1.   

    http://topic.csdn.net/u/20100617/10/b7ca5dae-3ad9-4d1b-94a9-7aa14d85a8a6.html
      

  2.   

    我现在要做的不是对公式的解析运算,只是对公式解析,其规则和用于运算的解析不一样,相较而言简单些,但是这个我不晓得要怎么弄,它不存在转中缀,转后缀的问题,说白了,就是对公式的分解,但是遵从运算的优先级,其中包含了函数:
    式子如此:(f(x+y)*3)-5+(o-a),函数可看做是一个变量来处理
    分解如下:
                       (f(x+y)*3)-5+(o-a)
                       /           |      \
                  (f(x+y)*3)-5   +     o-a
                    /    |   \         / | \       
               f(x+y)*3  -    5        0 - a
               /   |  \
            f(x+y) *   3一直解析到个位就不在解析
      

  3.   

    给你个现成的把
    http://irony.codeplex.com/当然irony已经实现了一些常规语法的分析,想你的要求利用irony自己定义一下token的规则就可以完成
      

  4.   

    想这种东西内部一定是 中缀或后缀表达式分析 算法当然如果你不想玩算法,实际也有很多现成解析工具(毕竟编译原理,编译器这东西是基础的基础了)比较经典的工具有lex、yacc、antlr,irony