FastFel解析一个公式的步骤

FastFel 查看源码后,理解的运算步骤:

1) 创建一个 FelEngine,FelEngine fel = new FelEngineIml();

2) 将表达式 exp 解析成为一个节点树 FelNode tree, fel.parse(exp);

3) 打印节点树FelNode tree,查看其结构。

可知其结构为 前缀表达式(波兰表达式),

如 a + b = + a b

a+(b+c) = + a + b c

a+(b-c)*d = + a * - b c d

4) 从树中获取 运算符节点。

当节点为  FunNode 时,且不为 . 时,此节点是运算符,

当节点为  VarAstNode 时,为变量节点

当节点为  ConstNode 时,为 常量节点

5)  得到所有的运算符节点,……

问题: 如何解析出表达式 的?是只能有已经解析的那么几个,还是可以自定义扩展?

posted @ 2017-03-10 09:43  panie2015  阅读(604)  评论(0编辑  收藏  举报