【问题标题】:ASTMatcher for class instance with Initialization and the member function call具有初始化和成员函数调用的类实例的 ASTMatcher
【发布时间】:2019-01-19 18:26:16
【问题描述】:

我在获取以下实体的 ASTMatcher 时遇到了困难。第一个是类的实例。

Vec v1(1.0,1.0,1.0);
Vec v2(2.0,2.0,2.0);

理想情况下,我可以拥有一个匹配两个实例的匹配器。

第二种是捕获成员函数vec_add的调用及其隐式参数v1和显式参数v2

Vec v3 = v1.vec_add(v1);
Vec v4 = v1.vec_add(v2);

【问题讨论】:

    标签: clang-ast-matchers


    【解决方案1】:

    我想出了第一种的解决方案:

    declStmt(containsDeclaration(0, varDecl(hasInitializer(cxxConstructExpr(argumentCountIs(3))))))
    

    第二种解决办法是

    callExpr(callee(namedDecl(hasName("vec_add"))))
    

    现在我有点知道如何思考设计了。 请继续关注我的博客!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多