[Test] Temel Aritmetik, Operatör Önceliği ve print Çıktısı #99
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#99
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?)
Bu issue, derleyicinin en temel davranışını sabitleyen bir golden-test taslağıdır: sayı literalleri, dört işlem, operatör önceliği (precedence) ve
printbuiltin'i. "Fibonacci çalıştı" hedefinden önce bile bu örneğin doğru çalışması gerekir — Pratt parser'ın (zaten yapılı) önceliği doğru uyguladığının kanıtıdır.Test Kodu (
examples/tests/aritmetik.sqt)Beklenen Çıktı (
saqut run examples/tests/aritmetik.sqt)Açık Sorular / Bağlı Fazlar
saqut run(IR + VM, ADR-015) tamamlanmadan AST seviyesinde de kısmen doğrulanabilir:saqut ast --optimizedile constant folding (Faz 4) çalıştığında herprintargümanı doğrudan tek birLiteraldüğümüne katlanmalı (örn.1 + 2 * 3→Literal(7)).10 / 3→3(tamsayı bölmesi) davranışı tip denetiminde (Faz 3) açıkça test edilmeli;int / int = int(kayıp olabilir ama bu saQut'ta hata değil, sadece kesme/truncation — ADR-010'daki "kayıpsız literal" kuralından farklı bir konu, karıştırılmamalı).İmza/Yorum: Bu dosya, "derleyici bitti mi?" sorusuna verilecek ilk somut cevaplardan biri olmalı —
examples/fibonacci.sqt'den önce, daha küçük bir adım.Golden test eklendi:
tests/golden/arithmetic/precedence.sqt. Operatör önceliği (çarpma/bölme/mod), parantez, sol-birliktelik — 6 çıktı, beklenenle eşleşti. 9/9 ctest geçti.