Skip to content

makhsudov/SyntaxHighlighter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

TurkScript Syntax Highlighter 🚀

TurkScript dilinde yazılmış kodlar için gerçek zamanlı sözdizimi vurgulaması yapan GUI uygulaması. Bu proje, Türkçe anahtar kelimelerle çalışan özgün bir programlama dili olan TurkScript için lexical analyzer, parser ve syntax highlighter içerir.

Proje Hakkında 📝

Bu uygulama, modern compiler tasarım prensiplerini kullanarak gerçek zamanlı kod analizi ve sözdizimi vurgulaması sağlar. TurkScript, tamamen Türkçe anahtar kelimelerle tasarlanmış özgün bir programlama dilidir.

Özellikler ⭐

  • Gerçek Zamanlı Syntax Highlighting: 300ms gecikme ile anlık renklendirme
  • Leksikal Analiz: 10 farklı token türünü tanıyan lexer
  • Sözdizimi Analizi: Top-down parser ile grammar kontrolü
  • Hata Yönetimi: Lexical ve syntax hatalarının detaylı raporlanması
  • Kullanıcı Dostu GUI: Tkinter ile geliştirilmiş modern arayüz
  • Türkçe Dil Desteği: Tamamen Türkçe anahtar kelimeler

TurkScript Dili 💻

// TurkScript Örneği
degisken sayi x = 10;
degisken metin isim = "Edem";

eger (x > 5) {
    yazdir("x büyük bir sayı");
} yoksa {
    yazdir("x küçük bir sayı");
}

fonksiyon topla(a, b) {
    don a + b;
}

degisken sonuc = cagir topla(5, 3);
yazdir(sonuc);

Ekran Görüntüleri 📸

Ana Arayüz

Ana Arayüz

Syntax Highlighting Örneği

Syntax Highlighting

Hata Raporlama

Hata Raporlama

Kurulum ve Çalıştırma 🛠️

Gereksinimler

  • Python 3.7 veya üzeri
  • Tkinter (Python ile birlikte gelir)

Kurulum Adımları

  1. Projeyi GitHub'dan klonlayın:
git clone https://github.com/makhsudov/SyntaxHighlighter.git
cd SyntaxHighlighter
  1. src klasörüne gidin:
cd src
  1. Uygulamayı çalıştırın:
python main.py

Dosya Yapısı

src/
├── main.py                 # Ana uygulama dosyası
├── gui.py                  # GUI arayüzü
├── lexer.py                # Leksikal analizci
├── turkscript_parser.py    # Sözdizimi analizcisi
└── turkscript_grammar.py   # Dil gramerı ve tanımları

Teknik Detaylar ⚙️

Mimari

  • Lexer: State Diagram & Program Implementation yaklaşımı
  • Parser: Top-Down (Recursive Descent) Parser
  • GUI: Tkinter framework ile responsive tasarım
  • Real-time Analysis: Debounce mechanism ile performans optimizasyonu

Token Türleri

  • ANAHTAR_KELIME (eger, dongu, fonksiyon)
  • TANIMLAYICI (değişken adları)
  • SAYI (123, 45.67)
  • METIN ("merhaba", 'dünya')
  • OPERATOR (+, -, ==, !=)
  • AYIRICI ((, ), {, }, ;)
  • YORUM (// yorum satırı)
  • HATA (tanınmayan karakterler)

Dokümantasyon ve Kaynaklar

Kullanım ⌨️

  1. Uygulamayı başlatın
  2. Sol paneldeki kod editörüne TurkScript kodunuzu yazın
  3. Gerçek zamanlı syntax highlighting ve hata kontrolü görün
  4. Sağ panelde token istatistikleri ve hata raporlarını inceleyin

Örnek TurkScript Kodları

Değişken Tanımlama

degisken sayi yas = 25;
degisken metin ad = "Edem";
degisken mantik aktif = dogru;

Koşullu İfadeler

eger (not >= 90) {
    yazdir("A");
} yoksa eger (not >= 80) {
    yazdir("B");
} yoksa eger (not >= 70) {
    yazdir("C");
} yoksa {
    yazdir("F");
}

Fonksiyonlar

fonksiyon selamla(isim) {
    yazdir("Merhaba " + isim);
}

cagir selamla("Dünya");

Proje Bilgileri 👤

  • Geliştirici: Edem Makhsudov
  • Öğrenci No: 22360859373
  • Üniversite: Bursa Teknik Üniversitesi
  • Bölüm: Bilgisayar Mühendisliği
  • Ders: BLM0238 Programlama Dilleri

Not: Bu proje "Real-Time Grammar-Based Syntax Highlighter with GUI" projesi kapsamında geliştirilmiştir.

About

Real-time syntax highlighting GUI for TurkScript — a custom programming language with Turkish keywords, featuring a lexical analyzer and parser.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages