我想学习计算器的工作原理.例如,假设我们有中缀符号的输入,如下所示:
1 + 2 x 10 - 2
解析器必须遵守数学中的通用规则.在上面的例子中,这意味着:
1 +(2 x 10) - 2 = 19(而不是3 x 10 - 2 = 28)
然后考虑一下:
1 + 2 x((2/9)+ 7) - 2
它是否涉及抽象语法树?二叉树?如何确保操作顺序在数学上是正确的?我必须使用shunting-yard算法将其转换为后缀表示法吗?然后,我将如何用后缀表示法解析它?为什么要转换?
是否有教程显示如何构建这些相对简单的计算器?或者有人解释一下吗?