【发布时间】:2021-11-10 04:45:17
【问题描述】:
我需要使用 libclang 横向 AST。 我找到的所有解决方案都告诉我将 AST 转储到 .ast 文件中,然后使用该文件创建 translationUnit 以进行横向处理。
如果能够做到以下几点就太好了: 以编程方式为某些代码生成 AST,然后使用 CXUnsavedFile 来创建 translationUnit
【问题讨论】:
标签: compiler-construction clang libclang
我需要使用 libclang 横向 AST。 我找到的所有解决方案都告诉我将 AST 转储到 .ast 文件中,然后使用该文件创建 translationUnit 以进行横向处理。
如果能够做到以下几点就太好了: 以编程方式为某些代码生成 AST,然后使用 CXUnsavedFile 来创建 translationUnit
【问题讨论】:
标签: compiler-construction clang libclang
为了避免依赖转储在文件中的 AST, clang_parseTranslationUnit 可以如下使用
CXTranslationUnit unit = clang_parseTranslationUnit(
CXIndex index,
"path to file with code", nullptr, 0,
nullptr, 0,
CXTranslationUnit_None);
【讨论】: