Forum: Projeler trileri RSS
tr.alfabe modülünü ekledim
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4533 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: tr.alfabe modülünü ekledim
Yeni modül, tr.harfler modülündeki yapı taşlarını kullanarak alfabe tanımlayan ve harfleri hakkındaki bilgileri otomatik olarak edinen Alfabe yapısını içeriyor.

D bayağı hoşuma gitmeye başladı! :) Bu modüldeki hemen hemen herşey derleme zamanında hallediliyor. İlk defa dizgi katmaları (string mixin) kullandım ve çok yararlı buldum.

(Doğrusunu isterseniz, basit kullanım açışından temelde C'nin makroları gibiler ama bazı üstünlükleri var. Hatırtalma için: http://ddili.org/makale/katma.html)

Bazı noktalar sonraya kaldı:

o sıra numaraları olarak şimdilik a'yı 0'dan başlatıyorum

Hiç söylemeye gerek yok ama kendi kendime düşünmüş de olmak için: Bunun alfabede bulunmayan karakterler açısından sorunları var. Çünkü o karakterler için Unicode kodunu kullanırsak; örneğin D'den sonra, ama Ç'den önce görünebilecekler.

Bu hatayı gidereceğimiz yer, Alfabe.bilgiTopla işlevi... Orada birincilSıraNumarası olarak şimdilik harfin alfabedeki konumu kullanılıyor.

Onun yerine daha önce konuştuğumuz gibi ya 'c' + 0.5 gibi bir kesirli değer, ya da benim daha hızlı olacağını kuvvetle tahmin ettiğim gibi bir long değer kullanacağız.

Ama henüz her alfabede doğru çalışan bir algoritma bulamıyorum. Örneğin X harfinin yerini değiştiren bir alfabe vardı...

o Bu modülün hata ayıklamada yardımcı olan mesajlarını görmek için debug(tr_alfabe) ifadeleri kullandım

o Makefile'a komut satırından aldığı dmd seçeneklerini de kullanma yeteneği ekledim. EK_DMD_SECENEKLERI değişkenini doğrudan dmd'ye geçiriyor.

Örnek kullanım:

cd trileri/linux
make EK_DMD_SECENEKLERI=-debug=tr_alfabe

Ali
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4533 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Söylemeyi unuttuğum ufak bir sorun daha var.

Türk alfabesinde ç olduğuna göre, belki de c'nin bütün aksanlıları da artık ç'den sonra gelmelidirler diye düşündüm ve geri kalan c aksanlılarının ç'ye verdim.

Baştan mantıklı gibi geliyor ama dout.writefln(alfabe!(AlfabeKodu.tur))'un aşağıdaki çıktısından görüldüğü gibi, aslında bazılarının yine de c'ye ait olmaları gerek.

Türkçe okuyup yazan birisi, herhalde ćĉċčⓒ karakterlerini c'den sonra, ḉ karakterini ise ç'den sonra görmek isteyecektir. (Umarım karakterlerin yeteri kadarı sizin ekranınızda da görünüyordur.)

Aynı sorun başka harflerde de var...

  0 aA (âàáãäåāăąǎǟǡǻȁȃȧḁạảấầẩẫậắằẳẵặⓐ)
       (ÂÀÁÃÄÅĀĂĄǍǞǠǺȀȂȦḀẠẢẤẦẨẪẬẮẰẲẴẶⒶ)
  1 bB (ḃḅḇⓑ)
       (ḂḄḆⒷ)
  2 cC ()
       ()
  3 çÇ (ćĉċčḉⓒ)
       (ĆĈĊČḈⒸ)
  4 dD (đďḋḍḏḑḓⓓ)
       (ĐĎḊḌḎḐḒⒹ)
  5 eE (èéêëēĕėęěȅȇȩḕḗḙḛḝẹẻẽếềểễệⓔ)
       (ÈÉÊËĒĔĖĘĚȄȆȨḔḖḘḚḜẸẺẼẾỀỂỄỆⒺ)
  6 fF (ḟⓕ)
       (ḞⒻ)
  7 gG ()
       ()
  8 ğĞ (ĝġģǥǧǵḡⓖ)
       (ĜĠĢǤǦǴḠⒼ)
  9 hH (ĥħȟḣḥḧḩḫⓗ)
       (ĤĦȞḢḤḦḨḪⒽ)
10 ıI (î)
       (Î)
11 iİ (ìíïĩīĭįǐȉȋɨḭḯỉịⓘ)
       (ÌÍÏĨĪĬĮǏȈȊƗḬḮỈỊⒾ)
12 jJ (ĵⓙ)
       (ĴⒿ)
13 kK (ķǩḱḳḵⓚ)
       (ĶǨḰḲḴⓀ)
14 lL (ĺļľłḷḹḻḽⓛ)
       (ĹĻĽŁḶḸḺḼⓁ)
15 mM (ḿṁṃⓜ)
       (ḾṀṂⓂ)
16 nN (ñńņňǹṅṇṉṋⓝ)
       (ÑŃŅŇǸṄṆṈṊⓃ)
17 oO ()
       ()
18 öÖ (òóôõøōŏőơǒǫǭǿȍȏȫȭȯȱṍṏṑṓọỏốồổỗộớờởỡợⓞ)
       (ÒÓÔÕØŌŎŐƠǑǪǬǾȌȎȪȬȮȰṌṎṐṒỌỎỐỒỔỖỘỚỜỞỠỢⓄ)
19 pP (ṕṗⓟ)
       (ṔṖⓅ)
20 qQ (ⓠ)
       (Ⓠ)
21 rR (ŕŗřȑȓṙṛṝṟⓡ)
       (ŔŖŘȐȒṘṚṜṞⓇ)
22 sS ()
       ()
23 şŞ (śŝšșṡṣṥṧṩⓢ)
       (ŚŜŠȘṠṢṤṦṨⓈ)
24 tT (ţťŧțṫṭṯṱⓣ)
       (ŢŤŦȚṪṬṮṰⓉ)
25 uU (û)
       (Û)
26 üÜ (ùúũūŭůűųưǔǖǘǚǜȕȗṳṵṷṹṻụủứừửữựⓤ)
       (ÙÚŨŪŬŮŰŲƯǓǕǗǙǛȔȖṲṴṶṸṺỤỦỨỪỬỮỰⓊ)
27 vV (ṽṿⓥ)
       (ṼṾⓋ)
28 wW (ŵẁẃẅẇẉⓦ)
       (ŴẀẂẄẆẈⓌ)
29 xX (ẋẍⓧ)
       (ẊẌⓍ)
30 yY (ýŷÿȳẏỳỵỷỹⓨ)
       (ÝŶŸȲẎỲỴỶỸⓎ)
31 zZ (źżžƶẑẓẕⓩ)
       (ŹŻŽƵẐẒẔⓏ)

Ali
canalpay (Moderatör) #3
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bu modüldeki hemen hemen herşey derleme zamanında hallediliyor. İlk defa dizgi katmaları (string mixin) kullandım ve çok yararlı buldum.

(Doğrusunu isterseniz, basit kullanım açışından temelde C'nin makroları gibiler ama bazı üstünlükleri var. Hatırtalma için: http://ddili.org/makale/katma.html)

Başından beri C'yi bilmediğim için kendimi ikinci sınıf bir öğrenci gibi hissediyorum :-D
o sıra numaraları olarak şimdilik a'yı 0'dan başlatıyorum
...

Başlatalım. Eğer eksik bir yer görürsek daha sonra da düzeltebiliriz. Ayrıca digitalmarsın sitesinde de bu projeden bahsederek kendi dillerine göre test etmelerini isteyebiliriz.


Türkçe okuyup yazan birisi, herhalde ćĉċčⓒ karakterlerini c'den sonra, ḉ karakterini ise ç'den sonra görmek isteyecektir. (Umarım karakterlerin yeteri kadarı sizin ekranınızda da görünüyordur.)

Ben inanın Türkçe okuyup yazan birisinin ḉ harfini hayatı boyunca gördüğünü sanmıyorum. Hatta bunu dahada çok abartıyorum. Dünyada bile bu harfleri kullanan bir dil var olduğunu sanmıyorum.
Eğer olurda trileri yanlış sıralarsa o zaman düzeltiriz. Yoksa şuan kendi başımıza karar veremeyiz. Çünkü bizdeki a â gibi farklı olaylarda dönüyor olabilir. Ve ayrıca şuana kadar sanıyorumda hiç bir programlama dilinde bunla ilgili bir dert görmedim. Programcı bir sorun olursa zaten yazdığı 2 tane if kodu ile bunu düzeltiyordur.
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4533 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
canalpay:
Ben inanın Türkçe okuyup yazan birisinin ḉ harfini hayatı boyunca gördüğünü sanmıyorum. Hatta bunu dahada çok abartıyorum. Dünyada bile bu harfleri kullanan bir dil var olduğunu sanmıyorum.

Karakter olarak var, ama hangi alfabe olduğunu bulamadım. Sanırım tek başına bir harf değil de ç'nin aksanlısı:

   http://en.wiktionary.org/wiki/ḉ

Çünkü bizdeki a â gibi farklı olaylarda dönüyor olabilir.

Bence haklısın. Ama bizim için dert değil, çünkü tr.harfler modülündeki c_aksan harf grubunun bir parçası olarak ḉ *sorununu* ;) da çözmüş durumdayız. :D

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Projeler trileri RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-12-11, 01:28:10 (UTC -08:00)