Bazı büyük C++ projelerini analiz ediyorum. Gerçekten ihtiyacım olan tek işlev, işlev çağrılarını bulmak.Ayrıştırma C++ kodu - CSCope
Bunun için şu anda cscope
kullanıyorum, ama büyük bir sorun keşfettim - öyle görünüyor ki, cscope
, örn. object.function()
.
Yani, bir şekilde cscope
ayarlarının değiştirilmesi mümkün mü? Veya, C++'yi cscope
ile uyumlu bir şekilde ayrıştırmak mümkün değilse, lütfen "daha iyi donanımlı" başka bir ayrıştırıcıyı önerebilir misiniz?
Böyle yanı basitçe mümkün olduğunca cscope
kullanıyorum:
cscope -k -L3importantFunc path_to_some_file
ayrı ayrı veritabanı oluşturarak değilim, ben belirli bir dosya için bu şekilde yeterli olması gerektiğini düşünüyorum.
Zaten clang denedim ama koşullu-derleme bloklar halinde kapalı fonksiyonlar için bakmak mümkün değildir çünkü, çok daha iyi değildi.
https://github.com/Andersbakken/rtags –
vahşi bir tahmin olarak, konu cscope C C dili ayrıştırma değil içindir ki olabilir ++? –
Önişlemciyi ayrıştırmadan önce kaynak kod üzerinde çalıştırırsanız, endişelenmeniz gereken bir önişlemci koşullu engellemeniz yoktur. Engelli pp koşullu bloklarının içinde işlev çağrıları bulmak ister misiniz? Koşullu blok, işlev üstbilgi satırının etrafına sarılırsa ne olur? Ya argüman listesinin bölümleri etrafına sarılırsa? –