2015-08-15 93 views
1

我想编写一个在Visual Studio编译我的项目之前运行的程序。 它只需要从特定文件夹(/ sdk)中的文件中提取所有函数,类,结构体,枚举项的类型,名称和参数,并将其复制到新文件夹中(/ sdkmin)解析C++并提取所有使用的类型和函数

所以我基本上想要一个程序来缩小我的项目使用的sdk。

是否有任何像样的库允许我这样做,而无需编写我自己的解析器/词法分析器/其他?

+1

嗯,听起来像你想编写自己的,特殊用途,C++编译器;或者至少是解析阶段。这应该需要,哦,一个人可能要5 - 10年才能完成。 –

+0

如果您在完整的“sdk”编译程序之后查看符号表*?这会给你一个列表,但从原始源提取这样的列表是非平凡的任务。 –

+0

也许ctags,绝对是libclang。 – lvella

回答

2

我认为你应该做的是看一些铿锵声工具,如“clang-format”,“include-what-you-use”等等,它们建立在铿锵AST前端的东西上,做各种有趣的事情的东西。这将为您提供词法分析器和解析器,如果您从头开始,确实需要很长时间。

Github上镜的位置:https://github.com/llvm-mirror/clang