如何将ANTLR 4正面连接到GCC Generic / GIMBLE?

时间:2016-11-12 16:13:20

标签: gcc compiler-construction antlr antlr4

我正在使用ANTLR v4编写DSL前端,我想加入GCC框架。目标是使用C语言AST来利用GCC框架的其余部分。

我还没有找到任何信息或预先存在的工作来使用如何继续的示例。我正在寻找的是如何将ANTLR 4 AST移动到GCC Generic / GIMBLE。

ANTLR 4不支持C语言目标,因此我必须将C ++目标整合到GCC C语言框架中。

感谢帮助

1 个答案:

答案 0 :(得分:0)

将ANTLR的C ++实现粘贴到GCC中,以便GCC调用它可能是一个简单的步骤。 [不要期望容易;海湾合作委员会希望成为海湾合作委员会,而不是你您可以从GCC Melt获得一些帮助,这是一个与GCC机器接口的软件包。]

为任意(例如,您的自定义DSL)语言生成的AST不会轻易移动(轻松)"到C AST或GCC Gimple(不是GIMBLE)框架。

你必须在本质上构建你的DSL-AST到C-AST翻译器,或者你的DSL-AST到Gimple翻译器。没有先验的理由相信建立这样的翻译很容易;例如,你没有告诉我们你的DSL是"就像C一样,除了......"。所以,你将不得不建立一个翻译。如果没有证据证明这很简单,那么您必须将DSL概念转换为C概念。您的DSL越好("非C-like")就越难以实现。

此SO链接更详细地讨论了翻译背后的问题:What kinds of patterns could I enforce on the code to make it easier to translate to another programming language?