1

ただし、優先順位の規則を設定したいと思います (たとえば、乗算と加算の数学演算子、つまり * と +)。ただし、フラットな方法で。

見てみましょう: http://www.gregbugaj.com/?p=251 (要するに、式が複数式の追加であると述べることで上記の例を解決します)。

これは、ネスティング ルールを使用して優先順位が解決されるため、非常に深い解析ツリーを犠牲にしてジョブを実行します。解析と優先順位の宣言のための 1 つの (「フラット」) ルールが必要です (したがって、Yacc で解決されたように)。

質問: この (Yacc のような、つまりフラットな) アプローチを ANTLR でどのように実現できますか?

4

1 に答える 1

1

質問:この(Yaccのような、つまりフラットな)アプローチをANTLRでどのように実現できますか?

できません。

パーサーにASTを作成させると、「非常に深い解析ツリー」は存在しなくなります。次のQ&Aを参照してください:ANTLRを使用して構築されたASTを出力する方法は?

于 2012-07-23T09:34:37.923 に答える