1

言語によって定義されたソース コードをアセンブリに変換する非常に単純なトランスレータを作成したいと考えています。AST を生成するレクサーとパーサーは既に作成しています。ツリーをトラバースし、動的スコープを使用して宣言された変数などを追跡するツリー文法を作成しました。

問題は、複数のパスでツリーをトラバースする必要があるため、1 つのツリー文法を使用して単純にトランスレータを作成できないことです。最初のパスは意味解析で、2 番目のパスはアセンブリへの変換です。各パスは異なるツリー文法になります。

私の質問は、意味解析パスからのノード固有の情報をツリーに保存して、翻訳パスにアクセスできるようにするにはどうすればよいですか? ツリーに注釈を付けるにはどうすればよいですか? ツリー内の個々のノードに情報を割り当てる方法はありますか? このためにカスタム ツリー ノード クラスを作成する必要がありますか?

4

1 に答える 1

1

このためにカスタム ツリー ノード クラスを作成する必要がありますか?

はい。

見る:

于 2012-09-13T18:53:17.257 に答える