我目前正在尝试将数学表达式解析为表达式树。但是我被困在需要实现功能和否定的阶段。我不明白使用 Shutting-Yard 算法的逻辑。
我目前想做的是支持
- 否定,如 -(x+5)
- 函数调用,例如 min(x,y)
- 函数名称后的幂,如 cos^2(x)
- 隐式乘法,如 2x 与 2*x 相同
- 科学计数法
- 常数 e 和 pi
有人可以告诉我提示如何实现这一点吗?
我目前正在尝试将数学表达式解析为表达式树。但是我被困在需要实现功能和否定的阶段。我不明白使用 Shutting-Yard 算法的逻辑。
我目前想做的是支持
有人可以告诉我提示如何实现这一点吗?
可以在此处找到调车场算法的有效PSR-0 兼容实现: https ://github.com/andig/php-shunting-yard/tree/dev 。它支持常量、自定义函数等。