問題タブ [libclang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3767 参照

c++ - libclang を使用した一般化された属性の検査

次の例で、クラス メンバー関数の一般化された属性を解析したいと思います。

foolibclang C API を使用して、ソース内のと(および属性があるbarことを知ってfooいる)を区別したいと思います。interestingこれは可能ですか?API で使用されている概念を説明する例やドキュメントを見つけるのに苦労しています (参考文献を見つけましたが、概念が説明されていない場合は使いにくいです)。

0 投票する
1 に答える
1247 参照

c++ - clangで単一のcppファイルのASTを取得するには?

C++ はコンテキスト フリーではないため、ヘッダーがないと完全に正確になることはありません。

「AB(C);」の古典的な例を使用すると、関数宣言またはオブジェクト定義として認識できることを意味します。どちらでも構いません。ファイルを完全に解析する必要があります。

私はコードのセマンティック分析には興味がありません。構文上の分析だけであり、私の知る限り、clang の文法は最高のものの 1 つです。

問題は、いくつかのシナリオでは、clang がタイプを認識していないときにいくつかの宣言を回避していることですが、正しく解析できると思います。

次のケースを参照してください。class.cpp の内容:

clang コマンド ライン アプリケーションの実行:

コンストラクターと最後のメソッドを AST ノードとして認識しているだけです。

完全な AST ツリーを取得する方法はありますか?

ありがとう!

0 投票する
1 に答える
2891 参照

c++ - CLang Libtooling: clang::VarDecl、clang::FieldDecl、または clang::ParmVarDecl 内の変数のデータ型をフェッチする

私はCLang 3.5に取り組んでいます。C++ プロジェクトで宣言された変数に関する情報をフェッチしようとしています。

clang::VarDeclclang::FieldDeclまたはclang::ParmVarDeclオブジェクト内の変数のデータ型または修飾クラス名を取得するにはどうすればよいですか? ここで提供されているドキュメントの変数のデータ型またはクラス名を返すことができる関数を見つけようとしclang::VarDeclました。

http://clang.llvm.org/doxygen/classclang_1_1VarDecl.html

$LLVM/tools/clang/tools/clang-check/ClangCheck.cppcmd argを渡す--ast-dumpと、宣言されたすべての変数を含むすべてのASTノードに関するすべての情報が表示されるため、コードも調べてみました。そのすべての情報にどのようにアクセスするのだろうか。

私はASTMatchers自分の変数宣言を見つけるために使用しています。それらは次のとおりです。

宣言されたすべての変数のデータ型を取得する方法を教えてください。