编写自定义GCC语言前端

时间:2016-12-20 22:39:53

标签: gcc compiler-construction

有没有办法为我自己发明的语言编写前端?

假设我知道正则表达式,yacc,lex和stuff,我只想知道如何将它绑定到现有的GCC。我想要这样的东西:

%% This is a comment
%% This is source of XD programming language
troll x = 1; %% 'troll' is an automatically guessed type
x+laugh[]; %% Will print some laughs and format the hard drive

这里,+表示C / C ++结构/类成员运算符,方括号是函数调用参数。分号与C中的含义相同。

如果我输入

,我怎么能绑定它呢?
gcc -o app app.troll

它会编译我的代码,可能使用类似的C中间版(反正可能没有注释):

// The type has been guessed... It's int!!!
int x = 1;
// We can't call a method on an `int`, so we make it an external one
__trollvm_laugh_int (x);

最后,它将转换为GENERIC / GIMPLE,优化并转储到装配。

我见过两种方法:

  • G ++(GNU C ++编译器,GCC的一部分)。它直接编译为GENERIC / GIMPLE
  • GPC(GNU Pascal编译器) - 将代码转换为C,然后最终调用GCC

如果有人知道,请告诉我。任何帮助表示赞赏。

0 个答案:

没有答案