Herkese Merhabalar,

Hatırlarsanız bir wiki üzerinde çalışıyordum. Testler esnasında
core.gen.tr sunucularında çalışırken, Core ekibinin yorumu üzerine -
epey bir uğraş sonucu çiçek gibi yazılmış - XML markup sözdizimi
yerine daha insancıl bir markup sözdizimi kullanmaya karar
verdim. (Kim ister ki elle XML yazmak?)

Ardından kendim Wikipedia+MoinMoin+Trac markup sözdizimlerini işleyen
bir parser yazdım. Yazım süreci oldukça sancılı geçti ve ortaya son
derece karmaşık bir kod çıktı. Ardından yine Core ekibi bak biz
core-server projemizde şöyle (src/parser.lisp) bir parser generator
kullanıyoruz dediler. Ardından o gün EBNF, Pragmatic Parsing in Common
Lisp[1] ve META başlıkları ile tanışmam bir oldu. Fakat
core-server'daki parser generator'ın bir sorunu vardı, o da kendi
geliştirdikleri core-stream'leri kullanıyor olmalarıydı. Ve bu da
taşınabilirliği ortadan kaldırıyordu. Ardından o gece parser.lisp'i ve
Henry G. Baker'ın makalesini okuyup ertesi gün kendi META parser'ımı
yazmaya başladım.

[1] http://tkb.mpl.com/~tkb/software/misc/Prag-Parse.html

Somut sonuca http://cliki.net/meta-sexp adresinden ulaşabilirsiniz. Ve
sizi temin ederim, bir parser generator yazmak, elle parser yazmaktan
çok daha kolay. meta-sexp ile bir wiki markup sözdizimi için parser
yazmak ise ikinsinden de daha kolay.

Unutmadan, meta-sexp paketi asdf-install ile yüklenebilir
halde. Herkese afiyet olsun.

_______________________________________________
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap