Selam Arkadaslar,
Uzunca bir suredir (1 yildan fazladir) uzerinde calistigim Commodore Plus Plus compileri alfa seviyesine getirmis bulunuyorum. Ozellikle Oyun ve tool gelistirmede assembler ile yan yana kullanilacak bir tool bu. tamamen assembleri replace etmiyor.
Projenin bundan sonraki asamalarini herkese acik bi sekilde yurutmeye karar verdim. Hem yardimlariniza ihtyacim var hem de bu projede pek cok ilginc problem cozmem gerekti ve gerekecek, bunlar simdi ve ileride pekcok kisinin cesitli sekillerde isine yarayabilir. Turkiyede vizir vizir compiler gelistirilmedigi icin bunu herkese acik yapmak mantikli geldi bana.
Bu sebeple sevgili Spazticanin destegiyle forumda bu projeye ozel bir alt forum acildi. projeyle ilgili her turlu soru, cevap, tartisma, destek ve duyurular burada cesitli threadlerde yurutulecek.
Asagidaki linkten projeyi indirebilirsiniz:
http://www.nightnetwork.org/c64/CEPP_RELEASE_0-1-0.ZIPBu tool ile ne tip kodlar yazabileceginizi gormek icin test directorysindeki tc001... tc006 arasi testlerdeki cepp dosyalarini inceleyin.
Dil su an tamamen C++ uyumlu syntax olacak sekilde yeniden duzenlendi. Boylece favori editorunuzun syntax highlighter'i veya statik analiz toolarindan, code browserlara kadar hersey calismali.
Calistirmak icin gereksinimleriniz:
- Herhangi bir Linux (Windows surumu cok yakinda - ihtimalen 2 gun)
- flex ve bison paketleri kurulu olmali
- otomatik testleri calistirabilmeniz icin Vice da yapmaniz gereken iki ayar var
---Peripheral Settings/Printer Settings/User Port Printer secili olmali
---Confirm on exit uncheck edilmeli
bundan sonra test directorysine gidip make diyerek toolu build edip su an var olan testleri otomatik run edebilirsiniz. bunun sonunda basarili olan ve olmayan test sonuclari ayni directoryde test_results.txt dosyasinda
toolun kendisi ise src directorysinde. bir adet grammar dosyasi, lex dosyasi ve code_generator.cpp var. inc directorysinde de headerlar var
c++ implementasyonu acisindan su an hayli kazmaliklar var saginda solunda. Buralarin refactor edilisini de yine herkese acik demonstrasyon olarak yapacagim
su an kodlar bana lisansli. Tam aradigim gibi bir open source / creative commons lisas bulana kadar boyle olacak gecici olarak. dosyalardaki copyright notice kafanizi karistirmasin
Detayli bir tutorial hazirlamak zaman alacaktir. Fakat C++ bilenler icin kisaca notlar:
- isimlendirme kurallarina dikkat edin doc klasorunde bu kurallar
- syntax error alirsaniz buyuk olasilikla isimlendirme hatasi yapmissinizdir
- classlarda hersey public
- class declare ederken o classtan yaratilacak maksimum obje sayisini vermeniz gerekiyor. bu sayi en fazla 255 olabilir. tc006ya bakin ornek icin
- recursion yapmayin
- esitligin sol tarafinda obje, veya obje->method olabilir
- stackde cByte'dan baska obje yaratamazsiniz. ancak pointer yaratabilirsiniz
- bir metodun icerisinde classin member attributelerine this-> diye erismek zorundasiniz
- bir metoda 2'den fazla arguman gecirilemez
sorularinizi sorun. cevaplamaya calisirim tabii ki
Su anki en onemli eksikler
1- hata raporlama cok zayif. Cogu hataya karsi syntax error on line hodo deyip cikiyor malesef
2- optimizer aktif degil bu yuzden biraz fazla kod uretiyor. tabii basicden hala kat kat hizli
Sevgiler