【发布时间】:2016-07-05 12:16:58
【问题描述】:
我已经用 clang 实现了一个 AST 递归访问器,我想区分变量声明。我想知道变量声明是全局的,或者变量声明是否带有函数体。两者都会为我完成这项工作。 有什么想法吗?
谢谢。
【问题讨论】:
标签: c++ clang abstract-syntax-tree llvm-clang
我已经用 clang 实现了一个 AST 递归访问器,我想区分变量声明。我想知道变量声明是全局的,或者变量声明是否带有函数体。两者都会为我完成这项工作。 有什么想法吗?
谢谢。
【问题讨论】:
标签: c++ clang abstract-syntax-tree llvm-clang
您可以在您的 AST 访问者中访问 VarDecl,然后您可能想要使用来自 VarDecl 的 Api here 的 isLocalVarDecl()、isLocalVarDeclOrParm()、isFunctionOrMethodVarDecl()、isStaticDataMember()、hasLocalStorage() 或 hasGlobalStorage() 等函数.
【讨论】: