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 に答える