Forum: Projeler trileri RSS
tr.alfabe modülünü ekledim
acehreli (Moderator) #1
User title: Ali Çehreli
Member since Jun 2009 · 1981 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Subject: 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 (Moderator) #2
User title: Ali Çehreli
Member since Jun 2009 · 1981 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
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 (Moderator) #3
User title: Can Alpay Çiftçi
Member since Jul 2009 · 1032 posts · Location: İzmir
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
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 (Moderator) #4
User title: Ali Çehreli
Member since Jun 2009 · 1981 posts
Group memberships: Genel Moderatörler, Üyeler
Show profile · Link to this post
Quote by 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
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Forum: Projeler trileri RSS
Not logged in. · Lost password · Register
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Current time: 2012-02-05, 11:29:44 (UTC -08:00)