我想在两种语言 LANG1 和 LANG2 之间创建一个计算机语言翻译器。更具体地说,我想将用 LANG1 编写的代码翻译成 LANG2 中的源代码。
我有 LANG1 和 LANG2 的 BNF 语法。
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++ 中生成的 Parser。
PS:我将使用 ANTLR3 为 LANG1 生成编译器