3

我有一个非常简单的解析器来实现布尔功能,我在其中添加了类作为 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 附加到括号块?

4

1 回答 1

3

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

于 2013-10-18T03:30:51.933 回答