pyparsing operatorPrecedence:将parseAction添加到括号块的功能

时间:2013-10-18 00:04:45

标签: python pyparsing operator-precedence

我有一个非常简单的解析器来实现布尔功能,我已经为不同的操作添加了类作为parseAction。

parseExpr = pp.operatorPrecedence(term,
           [
              (not_, 1, pp.opAssoc.RIGHT, ClassNotOperation),
              (pp.Optional(and_, default="AND"), 2, pp.opAssoc.LEFT, ClassAndOperation),
              (or_, 2, pp.opAssoc.LEFT, ClassOrOperation),
           ])

这有助于我按照正确的顺序解析以下内容

  

(A或B)和C

但是,如果我想在块级别添加一些操作,有没有什么方法可以将parseActions附加到括号块?

1 个答案:

答案 0 :(得分:3)

不使用标准API。如果您想要特殊版本的operatorPrecedence(现在重命名为infixNotation),请将该例程从pyparsing Python代码复制到您的本地脚本中,并进行所需的任何修改。