Tag: shunting yard

Shunting-Yardvalidation表达式

我们使用Shunting-Yard算法来计算表达式。 我们可以通过简单地应用算法来validation表达式。 如果缺少操作数,错过匹配的括号和其他内容,它将失败。 然而,Shunting-Yard算法具有比人类可读中缀更大的支持语法。 例如, 1 + 2 + 1 2 1 2 + 是提供“1 + 2”作为Shunting-Yard算法输入的可接受方法。 ‘+ 1 2’和’1 2 +’不是有效的中缀,但标准的Shunting-Yard算法可以处理它们。 该算法并不真正关心顺序,它通过优先顺序抓取“最近”的操作数来应用运算符。 我们希望将输入限制为有效的人类可读中缀。 我正在寻找一种方法来修改Shunting-Yard算法以使用无效的中缀失败,或者在使用Shunting-Yard之前提供中缀validation。 有人知道任何已发表的技术吗? 我们必须支持基本运算符,自定义运算符,括号和函数(带有多个参数)。 我没有看到任何与在线基本操作员相关的东西。 谢谢