数据表达式
可以包含特定函数来
. 表示等级关系
() 表示函数或方法
@表示属性引用
[]表示索引引用
##表示字符串引用
+ - * / 四则运算用实现
+ 操作符也用于字符串连接
除##内文字不能包含中文
比如 #http://#&News.ImagesNews.Content(page(rid))@ImgUrl其中News.ImageNews 表示到一个特定的类(这个有一个), Content()表示前面类的实现方法
page()为定义好的函数,rid为函数的参数,@ImgUrl表示前面结果的属性引用。如何实现这样的一个表达式解析,请各位高人给些思路指导,最好能详细些。我以前做过用逆波兰表达式实现包含变量四则运算,现在主要是函数,参数这块的解析不知道处理。

解决方案 »

  1.   

    修改下示例
    #http://#+News.ImagesNews.Content(page(rid))@ImgUrl对老兄的回答不明白,能不能说的详细些
      

  2.   

    #http://#&News.ImagesNews.Content(page(rid).ToString())@ImgUrl#http://#&News.ImagesNews.Content(M1(M2(M3(obj)))))
    这样的情况有吗?也就是说方法是否可以套方法,或者带有返回值的方法是否可以作为参数?
      

  3.   

    源来做的是这样的2+5*(2-1)+[p]/3我是按单个字符分析,其中特殊的只有变量,但因为写到了[]内,所比较好找到开始,结束,现在是想让函数整体压进去,如add(1,2)。
      

  4.   

    http://www.codeproject.com/KB/cs/math_expressionsevaluator.aspx自己定义几个Token即可另外一个可以参考的开源项目是http://www.codeplex.com/irony