Libclangは、ClangのCファミリーのコンパイラへのCインターフェイスです。ソースコードを抽象的な構文ツリー(AST)に解析するための施設を公開する比較的小さなAPIを提供し、すでに並べられたASTをロードし、ASTを通過し、物理ソースの位置をAST内の要素と関連付け、Clangベースの開発ツールをサポートするその他の施設を提供します。
ClangへのこのCインターフェイスは、ClangのC ++ ASTに保存されているすべての情報表現を決して提供しません。また、リリースから次のリリースまで比較的安定したAPIを維持することは、開発ツールをサポートするために必要な基本機能のみを提供することです。
私のブログで、 DelphiのLibclangに関する記事を見つけることができます。
neslib.clangは2つの方法でlibclangをレバレッジします。
ユニットNeslib.Clang.ApiプロバイダーLibclangバージョン14.0のヘッダー翻訳。これらのヘッダー翻訳を使用して、c言語からlibclangを使用するためです。 C APIのドキュメントは、https://clang.llvm.org/doxygen/index.htmlにあります。
ユニットNeslib.Clang 、Libclang APIのより高いレベルの抽象化を提供します。 Libclang APIの上に薄いクラスモデルを提供し、Delphiから使いやすくなります。さらに、自動メモリ管理を提供するため、どのリソースをリリースするかを心配する必要はありません。
Neslib.Clangユニットのドキュメントは、neslib.clang.chmファイルにあるか、https://neslib.github.io/neslib.clangのオンラインで見つけることができます。
Clang DLLは非常に大きい(64+ MB)ため、Neslib.ClangはこれらのDLLの32ビットバージョンのみを搭載しています。 64ビットバージョンを使用する場合は、LLVMダウンロードページからLLVMの64ビットバージョンをダウンロードする必要があります(このNeslib.Clangバージョンに一致するバージョンを選択してください)。
インストール後、binディレクトリにlibclang.dllがあります。また、そのディレクトリからVCランタイムDLL( msvcp140.dllおよびvcruntime140.dll )をコピーする必要があります。
Neslib.Clangは、簡素化されたBSDライセンスの下でライセンスされています。詳細については、license.txtを参照してください。