Skip to content

numanarif0/CppCommentParser

Repository files navigation

CppCommentParser

Kod Yorumu ve Gereksinim Doğrulama Aracı

C/C++ kaynak dosyalarındaki Doxygen tarzı yorumları ve fonksiyon imzalarını ayrıştırıp, bunları bir gereksinim listesiyle karşılaştıran GTKmm tabanlı masaüstü uygulaması.


Hakkında

CppCommentParser, C/C++ kaynak dosyalarını tarayarak fonksiyonların üzerindeki /** ... */ biçimindeki Doxygen yorumlarını ve fonksiyon imzalarını (ad, dönüş tipi, parametreler) çıkarır. Ardından bu bilgileri CSV formatındaki bir gereksinim (requirement) dosyasıyla karşılaştırarak uyumsuzlukları tespit eder.

Amaç, kodun dokümantasyonunun ve fonksiyonlarının, belirlenen yazılım gereksinimleriyle uyumlu olup olmadığını otomatik olarak denetlemektir. Sonuçlar grafik arayüzde listelenir ve dışa aktarılabilir.


Özellikler

  • Toplu dosya işleme — Birden fazla kaynak dosyayı tek seferde seçip tarayabilirsiniz.
  • Gereksinim karşılaştırması — CSV dosyasındaki gereksinimler önbelleğe alınır ve her fonksiyonla eşleştirilir.
  • Doxygen yorum ayrıştırma — Fonksiyon üzerindeki blok yorumları otomatik olarak yakalanır.
  • Çoklu iş parçacığı (multithreading) — Dosyalar arka planda paralel işlenir, arayüz bloklanmaz.
  • Dışa aktarma — Tespit edilen uyumsuzluklar CSV ve PDF olarak kaydedilebilir.

Nasıl Çalışır?

  1. Gereksinim CSV dosyası okunur ve bellekte önbelleğe alınır.
  2. Seçilen her kaynak dosya satır satır taranır.
  3. Bir fonksiyon imzası bulunduğunda, hemen üzerindeki Doxygen yorum bloğu (/** ... */) çıkarılır.
  4. İmza ayrıştırılır: fonksiyon adı, dönüş tipi ve parametreler belirlenir.
  5. Elde edilen bilgiler gereksinimlerle karşılaştırılır ve uyumsuzluklar (issue) listelenir.

Gereksinim CSV Biçimi

Gereksinim dosyası aşağıdaki sütunları içerir:

Requirement_ID,Title,Description,Status,Source_File,Function_Name
HL_CONQ_CAN_SR5,"Transmit CAN Message","Transmits a CAN message using a specific message box.",Implemented,can.c,canTransmit

Teknoloji Yığını

  • Dil: C++17
  • Arayüz: GTKmm 4.0
  • Derleme: CMake + Ninja
  • Eşzamanlılık: std::thread, std::mutex, Glib::Dispatcher

Proje Yapısı

CppCommentParser/
├── main.cpp           # Uygulama giriş noktası (GTKmm Application)
├── MainWindow.hpp/.cpp# Arayüz mantığı, dosya seçimi, dışa aktarma
├── Parser.hpp/.cpp    # Yorum/imza ayrıştırma ve gereksinim karşılaştırma
├── window.ui          # GTK arayüz tanımı
├── style.css          # Arayüz stilleri
├── CMakeLists.txt     # Derleme yapılandırması
├── build_and_run.sh   # Derleme ve çalıştırma betiği
└── gereksinim.csv     # Örnek gereksinim dosyası

Kurulum ve Çalıştırma

Gereksinimler

  • C++17 destekli bir derleyici
  • GTKmm 4.0 (pkg-config ile bulunabilir olmalı)
  • CMake 3.25+ ve Ninja

Hızlı çalıştırma

Hazır betik ile derleyip çalıştırmak için:

chmod +x build_and_run.sh
./build_and_run.sh

Manuel derleme

mkdir build && cd build
cmake -G "Ninja" ..
ninja
./cmtParser        # Windows'ta: cmtParser.exe

İletişim

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors