Asama 0.2 — Add line/column tracking to Lexer #35
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?
Goal: Lexer updates current line and column on every nextChar() call.
Files to modify:
Requirements:
Success criteria:
PR Açıklaması: [Aşama 0] Kaynak Konum Takibi ve AST Geliştirmeleri
Açıklama
Bu PR, derleyicinin hata yakalama ve kod analizi yeteneklerini artırmak için kritik olan "Source Location Tracking" (Kaynak Konum Takibi) sistemini tanıtır. Ayrıca Parser tarafında dilin esnekliğini artıran bazı yapısal iyileştirmeler içerir.
Önemli Değişiklikler
1. Metadata ve Konum Takibi (Aşama 0)
src/core/location.hppvesrc/core/sourcefile.hppeklenerek dosya yolu, satır ve sütun bilgisini yöneten merkezi bir yapı kuruldu.SourceFilesınıfı, binary search (O(log n)) kullanarak offset bilgisini satır/sütun koordinatlarına dönüştürme yeteneği kazandı.Lexer,TokenveASTNodesınıflarıSourceLocationbilgisini taşıyacak şekilde güncellendi.2. Parser İyileştirmeleri
int a = 1, b, c = 3;gibi aynı tipte birden fazla değişken tek satırda tanımlanabiliyor. Bu değişkenler ana düğümündeclaratorslistesinde tutulur.LiteralNodeartık sadece string değer değil; taban (base 10, 16, 8, 2) ve ondalıklı olup olmadığı bilgisini de taşıyor.toJson()metodları güncellendi; artık her AST düğümü kaynak koddaki yerini (location) JSON çıktısında gösteriyor.3. Proje Yönetimi
issues.mddosyası ile projenin gelecekteki aşamaları (REPL, hata yönetimi, tip kontrolü vb.) detaylandırıldı ve bir roadmap oluşturuldu.Teknik Detaylar
readNumeric) başlangıç ve bitiş konumlarını hassas bir şekilde kaydediyor.Tokenizer::scanmetoduSourceFile'ı otomatik olarak başlatacak şekilde güncellendi.Dosya Bazlı Özet
src/core/: Yeni konum yönetimi dosyaları.src/lexer/: Konum bilgisinin ilk üretildiği katman.src/tokenizer/: Token'ların konum bilgisinden donatılması.src/parser/: AST düğümlerine konum eklenmesi ve çoklu declarator desteği.issues.md: Yeni dokümantasyon.