shunting-yard

    0热度

    1回答

    如何将此代码中的字符转换为字符串? InfixToPostfix必须能够接受字符串而不是字符,因此它可以接受两位数字和空格。有什么建议么?提前致谢。 import java.util.Stack; public class InfixToPostfix { private Stack operators = new Stack(); public InfixToPostfix() {

    0热度

    1回答

    我试图找出当实现shuting代码算法时,不同运算符的优先级是什么。 我的抽象语法树在中缀,我正在使用shuting码算法进行评估。这对算术运算符来说很好。我面临的问题是我不知道所有其他运营商的优先级。 从https://en.wikipedia.org/wiki/Shunting-yard_algorithm我可以看到,这些操作符的以下情况属实。数字是优先。 ^ 4 * 3 / 3 + 2

    1热度

    1回答

    如何将标准Shunting Yard Algorithm修改为包含'wall'符号,|,表示函数参数的结尾?也就是说,支持修改后缀符号(Reverse Polish Notation),允许使用任意数量的参数。 一对夫妇的改性后缀表示法的例子: ˚F(1,2)9⟶| 1 2 f 9 + f(1,2,3)+9⟶| 1 2 3 f 9 + 请,我正在寻找实际的修改,而不只是想法如何做到这一点。 调度场

    0热度

    3回答

    ,以创建一个计算器,我使用了Java程序的调度场算法(https://en.wikipedia.org/wiki/Shunting-yard_algorithm)。我差不多完成了,但我仍然需要执行功能。我遇到了一个问题:我想让计算器在放到一起时自动乘以像x和y这样的变量 - 例如:计算器将xy转换为x * y。另外,我希望计算器将(x)(y)转换为(x)*(y)和x(y)为x *(y)。我已经做了

    2热度

    1回答

    我正在构建一个高级数学解析器,想知道Shunting-Yard和其他可用解析器算法(如“Descent Parser”)知道我更喜欢将公式存储在RPN记法中。 由于提前,

    1热度

    1回答

    关于上下文,请首先阅读this question about Ternary Operators。 我正在构建自己的编程语言,允许您定义自定义运算符。因为我希望它尽可能少的编译器的内置插件越好,它应该允许自定义的三元运营商的定义,最好的形式 infix operator ? : { precedence 120 } 我(手写)表达式解析器会变成嵌套三元运营商进入操作符分隔的操作数列表。 a ?

    2热度

    1回答

    : #!/usr/bin/env python import sys import string import operator import signal class InvalidStackError(Exception): pass class BadParenError(Exception): pass def hook_ctrl_c(signal, frame):

    1热度

    1回答

    假设我有一个条件形式为“(a> b)或(c < d)”。我怎样才能将它转换成逆波兰表示法并计算它?我试着将“和/或”标记设置为最低优先级,并得到“a b c OR> d <”。这样对吗? 基本上我想添加条件功能到分路码算法的这个实现; http://eddmann.com/posts/shunting-yard-implementation-in-java/

    0热度

    2回答

    除了Dijkstra分流码算法将中缀转换为RPN之外,有没有其他方法?我试图通过将其与另一种转换方法进行比较来研究分流码算法的弱点和优点。任何链接到分流码算法的日记非常感谢。谢谢

    2热度

    1回答

    如何扩展分流码算法,它最初是为二元运算符支持条件三元运算符(“a?b:c”)? 我还没有看到这个答案,我有一个,所以我张贴它。