# Maguyva'da Pascal ve Delphi: unit ve sınıf grafları

Canonical source: https://maguyva.ai/tr/languages/pascal

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, Pascal ve Delphi unit'lerini AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları uses ifadelerini, sınıfları ve yordamları değiştirmeden önce haritalayabilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .pas, .pp
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- İlk yazarları çoktan ayrılmış Delphi veya Lazarus/Free Pascal uygulamalarını sürdüren ekipler.
- Derin sınıf hiyerarşileri, arayüzler ve büyük ortak unit'ler içeren Object Pascal kod tabanları.
- İlk teslimatın unit'lerin ve bağımlılıklarının haritası olduğu modernizasyon veya taşıma projeleri.

## Ajan iş akışları

- Ortak bir unit değişmeden önce onu `uses` ifadesinde listeleyen her unit'i listelemek.
- Bir temel formdan veya bileşenden kalıtım alan sınıfları ve geçersiz kıldıkları yöntemleri bulmak.
- Parametreleri değişmeden önce bir rutini çağıran yordamları izlemek.

## Bir Pascal kod tabanının neden önce bir haritaya ihtiyacı vardır

Delphi ve Free Pascal uygulamaları çoğu zaman her şeyin kullandığı birkaç büyük unit etrafında büyür. Formlar temel formlardan, bileşenler temel bileşenlerden kalıtım alır ve iş kuralları onlarca ekranın çağırdığı yordamlarda yaşar. Kod dosya dosya kolayca okunur, ama değişiklikler bağımlılıklarda ters gider.

Maguyva ajana önce unit ve sınıf yapısını verir; böylece ajan herhangi bir şey yazmadan önce bir değişikliğin neye dokunduğunu söyleyebilir.

## Maguyva Pascal'dan neleri çıkarır

Maguyva `.pas` ve `.pp` kaynak unit'lerini kapsar. Yordam ve fonksiyon tanımları çağrılabilir semboller olarak çıkarılır; `procedure`, `function`, `var` ve `const` anahtar sözcükleri tanım adlarından kaldırılır. Sınıflar ve arayüzler yapısal aramada tür tanımı olarak seçilebilir.

İçe aktarmalar `uses` ifadelerinden gelir; anahtar sözcük kaldırılır, böylece graf unit adlarını saklar. Çağrılar üye önekleri, argümanlar ve dış parantezler çıkarılarak normalleştirilir; bu nedenle `Self.Save(x)` olarak yazılmış bir çağrı `Save` olarak saklanır.

Graf çağrıları, kalıtımı, arayüz uygulamasını, geçersiz kılmaları, örneklemeyi, tür referanslarını, okuma ve yazmaları ve istisna tetikleme ve işleme kenarlarını kaydeder. Yaklaşık 107 çalışma zamanı kütüphanesi rutini (`WriteLn`, `ReadLn`, `Inc`, `Dec`, `Ord` ve benzerleri) ilişkilerden filtrelenir.

## Örnek ajan istemleri

- "Hangi unit'ler `DataModuleMain` kullanıyor ve ondan neleri çağırıyorlar?" (gelen yönde `dependency_search`)
- "Hangi formlar `TBaseEditForm` sınıfından kalıtım alıyor ve hangi yöntemleri geçersiz kılıyor?" (`find_symbol`, ardından `dependency_search`)
- "Bir faturanın, düğme işleyicisinden veritabanı unit'ine kadar nasıl kaydedildiğini açıkla." (`get_task_context`)

## Bilinen sınırlar

- Yalnızca `.pas` ve `.pp` Pascal ile eşlenir. `.dpr` ve `.dfm` gibi Delphi proje ve form dosyaları uzantı listesinde yer almaz; bu nedenle form düzenleri ve proje bağlantıları grafın dışında kalır.
- Yöntemler serbest yordamlarla aynı sözdizimini kullanır; bu nedenle `structural_search` aracındaki `methods` ön ayarı hiçbir şey seçmez. `functions` ön ayarını kullanın.
- Filtrelenen çalışma zamanı kütüphanesi rutinlerine yapılan çağrılar graf kenarı olarak görünmez. Bunlar için `text_pattern_search` kullanın.

## Sonraki adımlar

[Hızlı başlangıç](/tr/docs/quickstart) ile bir repo bağlayın, ardından destek matrisi için [uyumluluk sayfasına](/tr/docs/compatibility) bakın. Uygulama C kütüphanelerine bağlanıyorsa [C rehberini](/tr/languages/c) de okuyun.

## Motor ayrıntıları

- Pascal desteği `.pas` ve `.pp` unit'lerini kapsar. `.dpr` ve `.dfm` gibi Delphi proje ve form dosyaları uzantı listesinde yer almaz.
- `uses` ifadeleri içe aktarma ilişkisi olur; çağrılar üye önekleri, argümanlar ve dış parantezler çıkarılarak normalleştirilir.
- Uygulama kodunun öne çıkması için `WriteLn`, `Inc` ve `Ord` gibi yaklaşık 107 çalışma zamanı kütüphanesi rutini ilişkilerden filtrelenir.

## Yararlı MCP giriş noktaları

- `find_symbol`: Tanıma ve referanslara ihtiyacınız olduğunda bir sınıf, form veya yordam adıyla kullanın.
- `dependency_search`: Hangi unit'lerin ve alt sınıfların ona bağlı olduğunu görmek için ortak bir unit'te veya temel sınıfta gelen yönde dolaşım kullanın.
- `get_task_context`: "Bir faturanın, düğme işleyicisinden veritabanı unit'ine kadar nasıl kaydedildiğini açıkla" gibi istemler için kullanın.
