【发布时间】:2015-03-18 20:48:06
【问题描述】:
我正在使用 clang 生成 AST。我有以下文件(lambda.cpp)要解析:
#include <iostream>
void my_lambda()
{
auto lambda = [](auto x, auto y) {return x + y;};
std::cout << "fabricati diem";
}
我正在使用以下命令解析它:
clang -Xclang -ast-dump -fsyntax-only lambda.cpp
问题在于,clang 也解析了标题内容。结果,我得到了相当大的(约 3000 行)文件,其中包含无用的(对我而言)内容。
生成 AST 时如何排除标头?
【问题讨论】:
-
当 clang 需要从标头中获取名称/定义/等以便为源文件生成 AST 时,您希望它做什么?
-
@MarkB 我一定表达得很糟糕。我想在解析过程中使用头文件,但在我的文件中只显示 AST - 没有来自头文件的 AST。
-
Header_gurads 不会做这项工作吗?
-
你真正想做什么?我已经使用了 clang python 后端,通过查看 ast 我知道你正在经历的痛苦。有几个选项可以组合你想要的东西。 iirc 您可以从 clang 获取行号信息并忽略之前的所有内容。
标签: c++ clang abstract-syntax-tree