有没有办法为我自己发明的语言编写前端?
假设我知道正则表达式,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,优化并转储到装配。
我见过两种方法:
如果有人知道,请告诉我。任何帮助表示赞赏。