如何解析C++来创建AST?

bit*_*ise 4 c++ parsing abstract-syntax-tree

我正在尝试解析C++代码,并创建一个AST.我想要做的是提取一些简单的反射信息(类名,成员变量及其类型等).我不需要编译代码,也不需要生成二进制文件.我正在寻找最简单的方法来做到这一点.理想情况下,我想在一个静态库中使用一个小的解析器,没有依赖关系.

我一直在环顾四周,似乎Bison解析器可以为我做这个.我试图找到一个开源解析器,但所有谷歌都会给我带来的是Bison的C++包装器,而不是C++的野牛解析器.通过为C++编写的其他所有解析器提供结果,输入"C++解析器"也会失败.

是否有一个开源项目可以满足我的需求?

per*_*eal 8

clang 可以做到这一点:

clang -Xclang -ast-dump -fsyntax-only test.cc
Run Code Online (Sandbox Code Playgroud)

看到了文档.