【发布时间】:2013-02-01 17:10:21
【问题描述】:
我正在尝试找到一个开源库(用C 或C++ 编写)来帮助我解析任意C/C++ 类型声明(例如void *(*(*foo[])( int, void * [] ))[123] 之类的声明),然后我将使用元模型.
谁能推荐一个开源的C/C++类型声明解析库?
注意:我不能使用 GPL 许可代码(例如 cdecl 工具),因为这是针对闭源应用程序的,我希望有一个更强大的解决方案来解决我自己编写的问题。
【问题讨论】:
-
有很多好的语法图就用 Bison gnu.org/software/bison
-
cdecl不是 GPL。它可能是公共领域:ridiculousfish.com/blog/posts/cdecl.html -
我认为 Clang 将其 C 和 C++ 解析代码作为一个不受许可问题影响的库。
-
也许您可以使用bitbucket.org/eliben/pycparser 库?它在 BSD 下获得许可,并与示例 cdecl 工具捆绑在一起。
-
我刚刚为此目的编写了自己的解析库:请参阅cpp-typename-parser。由于 C 数据类型是 C++ 数据类型的子集,因此这是一种可能的解决方案。