Yantra: C++ İçin Yeni Nesil Parser

Yantra: C++ İçin Yeni Nesil Parser

✨ Popüler

Tüm AST'yi önce inşa edip yukarıdan aşağıya gezen modern bir LALR(1) parser ve lexer üreticisi.

⚡ Weezir Radar Keşfi 💻 Web App 💰 Free 🛠 Açık Kaynak 📍 Global ⚡ Weezir Score: 85/100
⚡ Weezir Radar
👁️ 21 Okunma
Kısa Özet:

Yantra, geleneksel araçların aksine semantik aksiyonları ayrıştırma sırasında değil, tüm Soyut Sözdizim Ağacı (AST) oluştuktan sonra çalıştırır. C++23 standartlarını kullanan bu araç, tek dosyalı amalgamated çıktı modu ve entegre lexer desteğiyle öne çıkıyor.

📰 Hikayesi ve Doğuşu

Yacc, Bison ve Lemon gibi geleneksel LALR parser üreticileri, semantik aksiyonları kurallar daraldıkça bottom-up (aşağıdan yukarıya) mantıkla çalıştırır. Bu durum, kuralın eylemi çalıştırıldığında üst düğümün (parent) henüz bilinmemesine yol açar ve geliştiricileri karmaşık manuel AST sınıfları yazmaya iter. Renjipanicker tarafından geliştirilen Yantra, tam da bu kısıtlamayı aşmak için doğdu.

⚡ Nasıl Çalışıyor & Mimari Detaylar

Yantra, veriyi işlerken önce tüm AST yapısını kurar ve ardından top-down (yukarıdan aşağıya) bir geçişle (walk) özelleştirilmiş semantik aksiyonları tetikler. Bu sayede üst kuralın eylemi, çocuk düğümleri ziyaret edilmeden önce çalışabilir. Dahili mod desteğine sahip entegre lexer, UTF-8/Unicode girdileri doğrudan destekler. İsteğe bağlı amalgamated modu sayesinde tüm parser'ı ve entegre bir main() fonksiyonunu tek bir .cpp dosyasında toplayabilir.

💡 Neden Radarımıza Girdi?

C++ standart kütüphanesi dışında hiçbir dış bağımlılığı olmaması, projeyi mevcut projelere entegre etmeyi son derece pratik kılıyor. Aynı gramer tanımından birden fazla walker (örneğin biri C++, diğeri Java yayan) üretilebilmesi ve push-based (akış tabanlı) lexer yapısı, derleyici yazım süreçlerine taze bir soluk getiriyor.

🚀 Nasıl Denenir & Kaynaklar

Projeyi derlemek için C++23 destekleyen bir derleyici ve CMake yeterlidir. Depoyu klonladıktan sonra build adımlarını takip ederek ycc çalıştırılabilirini elde edebilirsiniz: git clone git@github.com:TantrixAuto/yantra.git && cd yantra && mkdir build && cd build && cmake .. && cmake --build . komutlarıyla derleme işlemini tamamlayabilirsiniz.

📌 Doğrulanmış Kaynak & Şeffaflık

Bu içerik, Hacker News (Show HN) üzerinde keşfedilmiş ve WeezirTech editörleri tarafından bağımsız geliştirici kültürünü desteklemek amacıyla özgün Türkçe olarak incelenmiştir.

🧑‍💻 Bu projenin geliştiricisi siz misiniz?

Projenizi resmi olarak sahiplenerek bilgilerinizi güncelleyebilir, yeni sürümleri duyurabilir ve doğrudan profilinize bağlayabilirsiniz.

💬 Yorumlar ve Değerlendirmeler 0

Deneyimlerinizi veya sorularınızı toplulukla paylaşın.

Yeni Yorum ve Puan Bırakın

★ ★ ★ ★ ★
Henüz yorum yapılmamış. İlk değerlendirmeyi siz bırakın! ✨