[Fikir] Import Sözdizimi ve Modül Çözümleme #81
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#81
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 ana kadar tüm tasarım tek dosyalı programları (
examples/fibonacci.sqt) hedefliyor. Ama gerçek projeler birden fazla dosyaya bölünür. saQut'a "başka bir dosyadaki fonksiyon/struct'ı kullan" diyebilmek için bir import (içe aktarma) sözdizimi gerekir.Gelişme (Olası Yaklaşımlar)
import "util.sqt"— dosya yolu tabanlı, C'nin#include'una benzer ama metin yapıştırma değil, sembol tablosu seviyesinde birleştirme (her dosya kendi AST'sine sahip kalır, sembol çözümleme dosyalar arası genişler).import util→util.sqtveyautil/dizini arar), Go/Python tarzı.class/namespace yok — modül adı, dosya adına eşlenebilecek doğal bir "isim alanı" (namespace) adayı olabilir:util.helper()gibi nokta-erişimi.Açık Sorular
İmza/Yorum: Bu, "Faz 5: Modüller" için doğal bir başlangıç noktası olabilir — ama Faz 0-4 (tek dosya, fibonacci) bitmeden ele alınmamalı.