[Fikir] CLI'da AST Görüntüleme — Ağaç (Tree), Tablo ve --format=dot Seçenekleri #106
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#106
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Giriş (Nedir, Neden Önemli?)
Şu an
saqut astham JSON basıyor. JSON, makineler için ideal ama bir insanın "bu kod nasıl bir ağaca dönüşmüş" sorusuna hızlı cevap vermesi için okunması zor. "Programlanabilir derleyici" felsefesi hem makine-okur (JSON) hem insan-okur çıktıyı hak ediyor.Gelişme (Olası Yaklaşımlar)
saqut ast file --format=json(mevcut, varsayılan kalabilir),--format=tree: terminalde girintili/kutu-çizgili bir ağaç (örn.treekomutunun çıktısına benzer:├──,└──).--format=dot: Graphviz DOT formatı —saqut ast file --format=dot | dot -Tpng -o ast.pngile görsel AST diyagramı üretilebilir (#43'te zaten "AST görselleştirme" fikri vardı, bu onun somut hâli).--format=table: her düğümü satır olarak basan,tip | konum | değerkolonlarına sahip düz bir tablo —grep/awkile script'lenmesi kolay bir ara format.--color): düğüm tipine göre (Expression mavi, Statement sarı, Literal yeşil gibi) ANSI renk kodları —--optimizedile birlikte kullanılırsa, silinen düğümler kırmızı/üstü çizili gösterilebilir (DCE'nin görsel kanıtı).Açık Sorular
--format=tree/table/dotçıktıları AST'nin tam bilgisini mi taşır (her alan), yoksa "özet" mi (sadece tip + konum + kısa değer)? Tam JSON her zaman--format=jsonile erişilebilir kalmalı — diğerleri "insan için özet" olabilir.saqut symbolsve ileridesaqut iriçin de aynı bayrak isimleriyle tutarlı olmalı mı (örn. her komut--format=tree/json/dot/tabledesteklesin — CLI'da tek bir ortak altyapı,src/cli/format.hppgibi)?İmza/Yorum:
--format=dotözellikle düşük efor / yüksek "vitrin" değeri taşıyor — bir blog yazısında/README'de "işte saQut'un AST'si" diye gösterilebilecek bir görsel üretir.