LANG1 と LANG2 の 2 つの言語間のコンピューター言語翻訳プログラムを作成したいと考えています。具体的には、LANG1で書かれたコードをLANG2のソースコードに翻訳したいです。
LANG1 と LANG2 の両方に BNF Grammar があります。
LANG1 は私が自分で書いた小さな DSL であり、本質的には LANG2 の「より簡単な」バージョンです。
LANG1で書かれた入力文から、LANG2で文を生成できるようにしたいです。
LANG1 用のコンパイラーをコンパイル中ですが、次に何をすればよいかわかりません (LANG1 ステートメントを LANG2 ステートメントに変換するため)。
関連する手順についての私の理解は次のとおりです。
1. BNF for my DSL (LANG1) DONE
2. Reverse engineered the BNF for LANG2 DONE
3. Learning how to generate a compiler for LANG1 TODO
4. Translate LANG1 statements to LANG2 statements ???
LANG1 ステートメントから LANG2 ステートメントを生成するために必要な手順は何ですか?
私のコード ベースは C++ であるため、C または C++ で生成されたパーサーを使用できます。
PS: ANTLR3 を使用して、LANG1 のコンパイラを生成します。