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的一部分,其设计也更加模块化,更易于扩展.