用gcc扩展c编程语言

cha*_*m15 12 c compiler-construction gcc translation programming-languages

我想编写自己的编程语言作为c编程语言的扩展.我正在发明的整个编程语言只是简单的转换为有效的c代码.例如:

namespace TcpConnection {
    void* connect(char *addr)
}
Run Code Online (Sandbox Code Playgroud)

会转化为:

void* TcpConnection_connect(char *addr)
Run Code Online (Sandbox Code Playgroud)

所做的一切都是简单的名称替换.这只是我想提供的扩展的一个例子.另一个简单的扩展是函数重载(这将连接到函数名称末尾的参数类型.

在任何情况下,结果都是完全有效的C代码.有没有办法在不进入gcc代码的情况下这样做?

use*_*368 14

您可以编写一个预处理器来解析您的语言并将其编译为C,然后将其传递给gcc.这就是C++早期实现的工作原理.但是,您可能更喜欢破解LLVM的clang,它旨在支持多种C系列语言,并且作为LLVM的一部分,其设计也更加模块化,更易于扩展.