Yantra adalah generator parser C++ yang membangun seluruh AST terlebih dahulu, lalu menjalani penelusuran top-down dalam lewatan terpisah, memanggil tindakan semantik. Tidak seperti kebanyakan generator parser LALR (Yacc, Bison, Lemon) yang menjalankan tindakan semantik selama parsing, Yantra mengizinkan tindakan dari suatu aturan induk untuk dijalankan sebelum anak-anaknya dikunjungi. Hal ini memungkinkan satu tata bahasa untuk mendefinisikan banyak penelusur, seperti satu yang menghasilkan C++ dan yang lain menghasilkan Java. Kelas AST dan penelusur dibuat secara otomatis. Yantra memiliki analyzer leksikal terintegrasi dengan dukungan mode untuk komentar bersarang, keluaran tunggal amalgaamasi opsional dengan main() yang dihasilkan, dan hanya memerlukan compiler C++23. Ia dilisensikan di bawah MIT dan saat ini berada pada versi 0.5.1, pra-1.0, dipelihara oleh satu pengembang.
Sebuah contoh tata bahasa kecil menunjukkan perilaku penelusuran top-down: saat mem-parsing "1 + 2 + 3", ia mencetak "Adding" terlebih dahulu (akar), diikuti oleh keluaran angka. Urutan ini hanya mungkin karena seluruh pohon ada sebelum tindakan apapun dieksekusi.
Keterbatasan yang dikenal tercatat di halaman GitHub proyek. Repositori tersedia di https://github.com/TantrixAuto/yantra, dengan masukan dan pertanyaan yang disambut baik oleh pemelihara.
Alat ini menggunakan CMake untuk pembangunan dan menghasilkan executable ycc untuk menghasilkan parser dari file tata bahasa.
Entitas kunci: Perusahaan: TantrixAuto
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing