在PHP中解析数学表达式

时间:2013-05-15 18:11:13

标签: parsing math expression expression-trees shunting-yard

我目前正在尝试将数学表达式解析为表达式树。 但我陷入了需要实现功能和否定的阶段。我不理解使用Shunting-Yard算法做的逻辑。

我目前想要做的是支持

  • 否定,如 - (x + 5)
  • 函数调用,如min(x,y)
  • 在功能名称之后加电,例如cos ^ 2(x)
  • 隐式乘法,如2x与2 * x
  • 相同
  • 科学记谱法
  • 常数e和pi

有人可以告诉我如何实现这个吗?

1 个答案:

答案 0 :(得分:1)

工作,可以在此处找到分流码算法的PSR-0兼容实现:https://github.com/andig/php-shunting-yard/tree/dev。 它支持常量,自定义函数等。