1

ユーザーがフォーマットを使用して特定の文字列基準を除外できるようにするプログラムがあります

(someType != 'a' AND someType != 'b') OR (anotherType = 'abc' AND somethingElse = 'cns')

これを解析するためにANTLR 4を使用することを検討しています。各グループは常に OR で区切られ、各内部グループは常に AND で区切られます。

私はジュニア開発者であり、これが私たちが進みたいルートである場合は、本を読んで ANTLR4 を学びます。ANTLR4 がこれを処理することを確認したいだけです。

基本的に、式がこの文法に基づいて true または false に評価されるかどうかを知りたいのです。

4

1 に答える 1

3

Antlr は式を評価しません。それらを解析します。

解析結果の「評価」はあなた次第です。通常、ノード構築アクションを文法規則に関連付けます。これにより、ANTLR はツリーの構築を支援し、ツリーに移動して評価します。

あなたが本当に卑劣な人なら、おそらくセマンティック アクションで式の評価を行うことができます。値を渡すことは、作成されたノードを渡すことにいくらか似ています。値を渡すにはより多くの労力が必要です。私は ANTLR でこれを行う方法を説明する人ではありません。

于 2013-10-15T20:53:59.813 に答える