私は Clang ツールを作成しており、プログラムの AST へのアクセスを指定して文字列リテラルを評価する方法を理解しようとしています。次のプログラムがあるとします。
class DHolder {
public:
DHolder(std::string s) {}
};
DHolder x("foo");
Clang ツールに次のコードがあります。
const CXXConstructExpr *ctor = ... // constructs `x` above
const Expr *expr = ctor->getArg(0); // the "foo" expression
???
ツールで文字列リテラルのExpr
表現から実際の C++ 文字列に変換するにはどうすればよいですか? "foo"
私は次のようなことをしようとしました:
// From ExprConstant.cpp
Evaluate(result, info, expr);
result
しかし、パラメータとパラメータを初期化する方法がわかりませんinfo
。
手がかりはありますか?