1
在我能找到优先权的大多数例子中,使用分组(oneOf)文字来设置相同的级别。采用这种方法,我将不得不查找其中的2个(或更多),然后继续评估。我想要做的是将操作员分开,直接知道它是哪一个并对其进行评估。pyparsing优先权划分
这就是我想实现什么,但优先级别现在是错误的
arith_prec = [
(subtract_op, 2, opAssoc.LEFT, ast.Substraction),
(add_op, 2, opAssoc.LEFT, ast.Addition),
(divide_op, 2, opAssoc.LEFT, ast.Division),
(multiplication_op, 2, opAssoc.LEFT, ast.Multiplication),
]
这是我收到了,但有与之相匹配的是其中两个(或更多)
plusop = oneOf(['+', '-'])
multop = oneOf(['*', '/'])
arith_prec = [
(plusop, 2, opAssoc.LEFT,),
(multop, 2, opAssoc.LEFT,),
]
有没有办法做到这一点?我已经使用oneOf和Or里面的arith_prec进行了测试,但没有用。
谢谢,所以我只好回到我开始的地方并从那里继续。 –
顺便说一句,你的操作优先级是倒退 - 'multop'应该先走。 – PaulMcG