Liblik adalah antarmuka C untuk keluarga kompiler C Clang. Ini menyediakan API yang relatif kecil yang memaparkan fasilitas untuk parsing kode sumber ke pohon sintaks abstrak (AST), memuat AST yang sudah dibaringkan, melintasi AST, mengasosiasikan lokasi sumber fisik dengan elemen-elemen di dalam AST, dan fasilitas lain yang mendukung alat pengembangan berbasis dentingan.
Antarmuka C ke Clang ini tidak akan pernah memberikan semua representasi informasi yang disimpan dalam C ++ AST Clang, juga tidak boleh: Maksudnya adalah untuk mempertahankan API yang relatif stabil dari satu rilis ke yang berikutnya, hanya menyediakan fungsionalitas dasar yang diperlukan untuk mendukung alat pengembangan.
Anda dapat menemukan artikel tentang Liblik untuk Delphi di blog saya.
Neslib.Clang memanfaatkan liblik dalam dua cara:
Unit Neslib.Clang.Api penyedia terjemahan header untuk liblik versi 14.0. Anda dapat menggunakan terjemahan header ini karena Anda akan menggunakan Liblik dari bahasa C. Dokumentasi untuk API C dapat ditemukan di sini: https://lat.llvm.org/doxygen/index.html
Unit Neslib.Clang memberikan abstraksi tingkat yang lebih tinggi dari Liblik API. Ini memberikan model kelas tipis di atas Liblik API, membuatnya lebih mudah digunakan dari Delphi. Selain itu, ini menyediakan manajemen memori otomatis sehingga Anda tidak perlu khawatir tentang sumber daya apa yang akan dirilis dan kapan.
Dokumentasi untuk unit Neslib.Clang dapat ditemukan di file atau on-line neslib.clat.chm di https://neslib.github.io/neslib.clat.
Karena DLL Clang sangat besar (64+ MB), neslib.lang hanya dikirimkan dengan versi 32-bit dari DLL ini. Jika Anda lebih suka menggunakan versi 64-bit, maka Anda harus mengunduh LLVM versi 64-bit dari halaman unduhan LLVM (pastikan untuk memilih versi yang cocok dengan versi neslib.clat ini).
Setelah instalasi, Anda akan menemukan libclang.dll di direktori bin. Anda juga perlu menyalin DLL runtime VC ( msvcp140.dll dan vcruntime140.dll ) dari direktori itu.
Neslib.Clat dilisensikan di bawah lisensi BSD yang disederhanakan. Lihat lisensi.txt untuk detailnya.