Python ile Python Lexer Yazalım

Sıddık Açıl
Dec 17, 2017 · 2 min read
Image for post
Image for post
Thomas Cole: The Mountain Ford tablosu

Compiler ve Interpreter programlarının ilk aşaması Lexing olarak isimlendirilir. Bu aşamada yazılmış olan program bir anlam ifade eden küçük parçalara ayrılır ve daha sonra gerçekleşecek olan Parsing işlemine uygun hale gelir.

Bu yazıda Python dilini kullanarak Python programları için bir Lexer yazacağız. Bir diğer yazıda da Parsing işlemi gerçekleştirip Python programına ait Abstract Syntax ağacını elde etmeye çalışacağız.

Lexerlar Nerede Kullanılır?

  • Derleyicilerde ve yorumlayıcılarda
  • Statik kod analizi programlarında
  • IDE’lerde tamamlama önerisi yapılırken
  • Kod renklendirme
  • Doğal Dil İşleme

Python ile Lexer

Nasıl çalışacak?

Gerçekleme

Çıktı Örneği

Neler Eksik ve Neler Yapılabilir?

  • Bozuk yazılmış kod örnekleri üzerinde hiç denemedim.
  • Beklenmedik bir token ile karşılaşıldığında bir şey yapmıyor(Hata mesajı ve ya Unexpected Token sınıflandırması vb.).
  • Import ve ya def gibi keywordleri de identifier olarak alıyor. Python’ın kendi tanımladığı keyword listesini kullanarak Identifier match gerçekleştiğinde bu programcı tanımlı mı yoksa dil tanımlı mı diye kontrol etmek gerekiyor.
  • Diğer dillerde lexing için bir kaç düzeltme yapılmak suretiyle kullanılabilir.

Test Dosyam

Bir başka yazıda görüşmek üzere.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store