saqut
c5fb57412a
fix(ir): && ve || kısa devre dallanmasıyla üret (ADR-008)
...
Sorun: IR üretici && ve || için case içermiyordu, default koluna
düşüp LOAD_CONST 0 üretiyordu — değişken operandlarda her zaman
false dönüyordu (sabit katlama yolu zaten doğruydu).
Düzeltme: her iki operatör artık dallanma olarak üretiliyor:
a && b → JIF_FALSE (a false ise b'yi atla)
a || b → JIF_TRUE (a true ise b'yi atla)
JIF_TRUE yeni opcode olarak eklendi (instruction.hpp + interpreter.cpp).
do-while'ın mevcut "== 1 karşılaştırması" geçici çözümü bu opcode'dan
faydalanabilir — ayrı düzeltme (B4).
Test: tests/golden/logic/short_circuit.sqt — yan etkinin gerçekten
atlandığını çıktıyla kanıtlar (12/12 test yeşil).
ADR: docs/adr/ADR-008-kisa-devre-mantiksal-operatorler.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 15:54:03 +03:00
abdussamedulutas
dbe49f909d
chore: .gitignore — CMake versiyona özgü dosyaları hariç tut
2026-06-18 19:52:33 +03:00
abdussamedulutas
490db7ca31
chore: CLAUDE.md güncelle + gen_large.py + large.sqt ekle
...
- CLAUDE.md: Faz 2/3 tamamlandı, yeni komutlar (check), nlohmann/json,
semantic/ klasörü, performans optimizasyonu notları güncellendi
- scripts/gen_large.py: 2.3MB geçerli .sqt dosyası üreten benchmark script'i
- examples/large.sqt: 5000 fonksiyon, 90K satır, performans test fixture'ı
2026-06-18 18:40:30 +03:00
abdussamedulutas
c8ee926912
feat(faz2): sembol tablosu — isim çözümleme + scope + referans toplama ( #71 )
...
- parser: parseFunctionDecl() parametreleri artık AST'ye alıyor
(FunctionDeclNode::params alanı eklendi; declarations.hpp/cpp güncellendi)
- parser: parseDeclaration() kullanıcı-tanımlı tip (struct alanı) desteği
- ast_json: addArray() m_hasArrayItem sıfırlama hatası düzeltildi
(birden fazla dizi alanı içeren düğümlerde bozuk JSON üretimi giderildi)
- src/symbol/: Symbol, Scope, SymbolTable, SymbolCollector eklendi
* İki geçiş: pass1 global hoist, pass2 gövde + declare-before-use
* E001 tanımsız isim, E002 çift tanım, E010 döngüsel struct
* print builtin tohumlama (TODO: #89 katalog)
- cli/symbols: yeni SymbolTable/Collector kullanıyor; tip + refs çıktısı
- examples/symbols/: dup.sqt, undef.sqt, cyclic.sqt test fixture'ları
Doğrulama:
build/saqut symbols file:examples/fibonacci.sqt → 0 hata, 10 sembol
examples/symbols/dup.sqt → E002
examples/symbols/undef.sqt → E001
examples/symbols/cyclic.sqt → E010
tests/run.sh → TUM TESTLER GECTI
AST JSON → geçerli
2026-06-18 15:43:26 +03:00
abdussamedulutas
7c5a86c39b
fix: kaynak dosya yolu propagasyonu ve AST JSON girinti hataları
...
- Tokenizer::scan artik filePath parametresi alip Lexer'a iletiyor;
SourceLocation.file artik bos degil (Asama 0 tamamlandi).
- JsonObject::add icin const char* overload eklendi (kind: true bug'i).
- JsonObject acilis suslu parantezi girintisiz yaziliyor, addArray ilk
eleman oncesi bos satir birakmiyor; LiteralNode/IdentifierNode toJson
ayni sekilde duzeltildi.
- analysisToJson girinti seviyeleri "analysis" objesine gore duzeltildi.
2026-06-14 15:57:54 +03:00
abdussamedulutas
93cbc7db3a
Gemini
2026-05-27 10:29:30 +03:00