Visual Studio IntelliSense untuk VC ++ menyertakan parser EDG C ++ "lengkap" (juga digunakan oleh Intel dan lainnya). Karena C # Code DOM dapat diakses oleh addons (perbaiki saya jika saya salah), apakah C ++ Code DOM juga dapat diakses? Bisakah ini digunakan untuk menganalisis proyek VC ++ terbuka dalam lingkungan VS?
100
Jawaban:
The Visual C ++ Refactoring ekstensi mampu mengubah nama anggota proyek-lebar. Itu dibangun oleh MS tetapi jelas mereka menggunakan DOM Kode internal untuk mencapai ini. Jadi mungkin saja, saya belum tahu caranya.
The CppLister ekstensi mampu membaca database intellisense yang dibuat oleh VS untuk daftar berbagai anggota dalam kelas.
Anda selalu dapat menggunakan parser Clang C ++ open source (sebenarnya kompiler) dan membaca AST ke dalam Model Objek C #. Lihat CppSharp dan ClangSharp untuk C # binding ke Clang.
sumber
Saya tidak yakin apa itu "C ++ Code DOM", jika memang ada. Yang penting adalah bahwa MSVS menggunakan ujung depan EDG untuk mengurai dan menentukan arti simbol, untuk mendukung tindakan MSVS IDE. EDG IIRC membangun struktur data internalnya sendiri yang mewakili program; Saya tidak punya alasan untuk percaya bahwa struktur data tersebut adalah "C ++ Code DOM", atau bahwa mereka terlihat oleh Anda atau Anda akan dapat mengetahuinya di MSDN.
Masalah sebenarnya yang Anda nyatakan adalah Anda ingin menganalisis kode sumber C ++. Saya setuju, memiliki informasi ujung depan EDG akan menjadi bantuan yang signifikan untuk melakukan itu; Anda benar- benar tidak ingin mencoba menulis pengurai C ++ Anda sendiri (dan Anda memerlukan banyak hal setelah penguraian, google esai saya tentang "kehidupan setelah penguraian").
Jadi, Anda memiliki pilihan berikut:
sumber