私は研究目的でコンパイラをやっています。
C# コード生成を対象としたAntlrツールを使用します。
これまでのところ、私は文法を扱うことができます。レキシカル、シンタティック、私のテストは問題ありません。
私の目的は、CIL バイトコードを生成することです。私はそれに精通しています。
問題は...コードを「出力」する良い方法がわかりません。それを生成するためのアドバイス、例が欲しいです。
私が考えているのは、ノードに関連する大量のメソッドを持つクラス「コンパイラ」を作成し、ツリーが反復されるときにメソッドを呼び出すことです。
アイデア:
Class Compiler
{
private AppededStrings = "";
void CreateClass();
void EndClass();
void AddParam();
void setAtributeToTheClass("public");
... and so on ...
}
これは良いアプローチですか?これについて具体的に話しているトピックは見つかりませんでした。