LAWİ 1.0 MASTER DEVELOPER GUIDE

LAWİ Programlama Dili

Web, Arka Uç (Backend), 3D Souls-Like Oyun ve Windows Native (.exe) Geliştirme İçin Birleşik Tekil Ekosistem

1 Temel Felsefe ve Dilin Doğuşu

LAWİ; yazılım dünyasındaki parçalanmışlığı ortadan kaldırmak amacıyla tasarlanmış modern bir genel amaçlı programlama dilidir.

Ana Prensip: "Daha az kod ile daha fazla iş."
Bir geliştirici tek bir web arayüzü veya oyun yapmak için HTML, CSS, JavaScript, Webpack, Node.js, Unity ve C++ arasında kaybolmak zorunda kalmamalıdır.
Hedef Platform Klasik Yöntem (Eski) LAWİ Yaklaşımı (Yeni)
Reaktif Web Siteleri HTML + CSS + JS + React + Webpack web app "Site" { state ... card ... }
Backend & Veritabanı Python/Node.js + SQL + Harici ORM model User { ... } + server { get ... }
3D Souls-Like Oyun Unity/Unreal Engine (40GB) + C#/C++ game "Dark Arena" { scene ... boss ... }
Masaüstü & Sistem C++ / Rust / Electron (Ağır) lawi build --target native (.exe)

2 Temel Sözdizimi ve Tip Sistemi

Değişkenler ve Tip Çıkarımı

LAWİ statik tiplidir ancak türleri kendisi otomatik çıkarır (Type Inference):

// Otomatik tip çıkarımı:
isim = "Kadir"          // text
yas = 24                // int
hiz = 85.5              // float
canli = true            // bool
renk = #5865f2          // hex color

// Açık tip belirtme:
skor: int = 100
ad: text = "Lawi"

Fonksiyonlar ve Ok İfadeleri

Tek satırlık kısa ok fonksiyonları veya çok satırlı blok fonksiyonları:

// Tek satırlık ok fonksiyonu:
fn topla(a, b) => a + b

// Çok satırlı fonksiyon:
fn faktoriyel(n) {
    if n <= 1 {
        return 1
    }
    return n * faktoriyel(n - 1)
}

Döngüler ve Kontrol Akışları

// While döngüsü:
sayac = 1
while sayac <= 5 {
    println("Sayı: " + sayac)
    sayac += 1
}

// For-in döngüsü:
dizi = ["Elma", "Armut", "Muz"]
for meyve in dizi {
    println("Meyve: " + meyve)
}

3 Reaktif Web Uygulaması ve Web Build Formatı

HTML, CSS ve JavaScript yazmadan tek bir .lawi dosyasında reaktif arayüzler inşa edin:

web app "SayacUygulamasi" {

    // Reaktif durum: Değeri değiştiğinde ekrandaki bileşenler anında güncellenir
    state sayac = 0

    page "/" {
        card {
            width 380
            padding 28
            radius 16
            background #1a1f2c
            color white

            header "LAWİ Reaktif Web Sitesi"
            text "Mevcut Değer:"
            text sayac

            button "+ Değeri Artır" {
                width 320
                radius 10
                background #5865f2

                click {
                    sayac += 1
                }
            }

            button "- Değeri Azalt" {
                width 320
                radius 10
                background #4752c4

                click {
                    sayac -= 1
                }
            }

            button "Sıfırla" => sayac = 0
        }
    }
}
Web Formatında Nasıl Build Edilir?
lawi build main.lawi --target web
Çıktı (Build Dizini):
  • build/index.html: Optimize edilmiş semantik DOM iskeleti.
  • build/app.css: Otomatik CSS3 flexbox ve tasarım stilleri.
  • build/app.js: Proxy tabanlı, Virtual DOM gerektirmeyen ultra hızlı JavaScript reaktif çalışma zamanı.

4 Arka Uç (Backend) ve Veritabanı ORM Katmanı

SQLite, PostgreSQL ve MySQL veritabanı tablolarını ve REST API route'larını birkaç satırda tanımlayın:

// Veritabanı Tablosu Modeli:
model Kullanici {
    id int auto primary
    kullanici_adi text
    email text
    bakiye float
}

// HTTP & REST API Sunucusu:
server "AnaApi" {

    // GET /api/kullanicilar -> Tüm kayıtları JSON döner
    get "/api/kullanicilar" {
        return Kullanici.all()
    }

    // POST /api/kullanicilar -> Yeni kullanıcı ekler
    post "/api/kullanicilar" {
        yeni_kayit = body()
        Kullanici.create(yeni_kayit)
        return yeni_kayit
    }
}

Derleme Komutu:

lawi build server.lawi --target backend

5 3D Souls-Like Oyun Motoru

Harici bir oyun motoru (Unity/Unreal) yüklemeden kendi .glb / .gltf 3D modellerinizle tam teşekküllü Souls-Like oyun geliştirin:

game "Dark Arena" {
    window 1920 1080

    scene Arena {
        environment "assets/environments/arena.glb"
        player Knight
        boss DarkKnight at (40, 0, 40)
    }

    camera thirdperson {
        target player
        distance 5
        collision true
    }

    player Knight {
        model "assets/models/player.glb"
        hp 100
        stamina 100
        weapon Longsword
        flask Estus
        dodge
        block
        parry
    }

    weapon Longsword {
        model "assets/models/longsword.glb"
        damage 45
        moveset longsword
    }

    boss DarkKnight {
        model "assets/models/boss.glb"
        hp 5000

        phase 1 {
            attack sword_combo
        }

        phase 2 when hp < 50% {
            attack dark_slash
        }
    }

    checkpoint Bonfire {
        respawn true
        reset_enemies true
    }

    ui {
        health player.hp
        stamina player.stamina
        flask player.flask
        bossbar DarkKnight.hp
    }
}
Oyun Çıktısı Alma Komutları:
# Anında tarayıcıda 3D çalıştırmak için:
lawi run game.lawi

# WebGL 3D ve Masaüstü Paketi üretmek için:
lawi build game.lawi --target game

6 CLI Komutları ve Eksiksiz Geliştirici Kılavuzu

Komut İşlevi
lawi new [ad] --template [web|game|backend|desktop] Yeni bir LAWİ projesi oluşturur.
lawi run [dosya.lawi] Kaynak kodu anında derler ve çalıştırır.
lawi build [dosya.lawi] --target web Reaktif HTML5+CSS3+JS Web paketi üretir.
lawi build [dosya.lawi] --target native Windows x64 için doğrudan çalışan .exe üretir.
lawi build [dosya.lawi] --target game 3D Souls-Like WebGL ve Canvas oyun motoru paketi üretir.
lawi build [dosya.lawi] --target backend REST API sunucusu ve SQL ORM şemaları üretir.
lawi fmt [dosya.lawi] Kodları otomatik düzenler ve girintiler.
lawi lint [dosya.lawi] Statik analiz yaparak olası hataları ve ipuçlarını gösterir.
lawi docs [dosya.lawi] Kaynak koddan otomatik Markdown dokümantasyon üretir.