0
是否可以使用綁定串上一個表達式中的其他類似下面的代碼:寫作鏘AST匹配器
expr(declRefExpr().bind("id"), hasDesendent(declRefExpr(has("id")));
基本上使用一個節點的綁定ID字符串找到其他節點。
是否可以使用綁定串上一個表達式中的其他類似下面的代碼:寫作鏘AST匹配器
expr(declRefExpr().bind("id"), hasDesendent(declRefExpr(has("id")));
基本上使用一個節點的綁定ID字符串找到其他節點。
是的,有可能使用equalsBoundNode
用法:
expr(declRefExpr().bind("id"), hasDesendent(declRefExpr(equalsBoundNode("id")));
比較2節點的最佳方法是綁定不同的id string
,然後在回調方法中比較它們。
這在這tutorial解釋。
在上面的鏈接,你可以找到下面的代碼:
const VarDecl *IncVar = Result.Nodes.getNodeAs<VarDecl>("incVarName");
const VarDecl *CondVar = Result.Nodes.getNodeAs<VarDecl>("condVarName");
if (!areSameVariable(IncVar, CondVar))
return;
這段代碼的目的是來比較綁定變量的回調函數incVarName
和condVarName
節點。