解析後に C++ ファイルを解析するgcc プラグインを作成しています。プラグインはクラスをウォークスルーし、それらに関する情報を生成します。プラグインは機能しています。これがクラスをウォークスルーする方法です。
cp_binding_level* level(NAMESPACE_LEVEL(nameSpace));
for (decl = level->names; decl != 0; decl = TREE_CHAIN(decl)) {
tree type(TREE_TYPE(decl));
tree_code dc(TREE_CODE(decl));
tree_code tc;
if (dc == TYPE_DECL&& tc == RECORD_TYPE &&
!DECL_IS_BUILTIN (decl) && DECL_ARTIFICIAL (decl)) {
//Now we know this is a class
//Do something
}
}
彼が分析できるクラスと分析できないクラスを選択したいと思います。私の最初のアイデアは、クラスを解析するときに読み取る何らかの注釈を追加し、それを分析するかどうかを決定することです。
私は C++ で何らかの注釈を使用したことがないので、これが可能かどうかはわかりません。もしそうなら、どのようにそれらを使用し、プラグイン内で注釈を取得することをお勧めしますか? そうでない場合、必要なことを行う良い方法はありますか?