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

时间:2014-07-24 04:52:13

标签: c++ parsing abstract-syntax-tree

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

我一直在四处寻找,看起来Bison解析器可能能够为我做到这一点。我试图找到一个开源解析器,但所有谷歌都会给我带来的是Bison的C ++包装器,而不是C ++的野牛解析器。键入" C ++解析器"通过为C ++编写的其他所有解析器的结果也失败了。

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

2 个答案:

答案 0 :(得分:8)

clang可以执行此操作:

clang -Xclang -ast-dump -fsyntax-only test.cc

see the docs

答案 1 :(得分:3)

您可以使用GCC-XML生成一个相当容易解析的大多数(但不是全部)C ++代码的XML表示。