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) 得到所有的运算符节点,……
问题: 如何解析出表达式 的?是只能有已经解析的那么几个,还是可以自定义扩展?
作者:panie