2012-10-23 27 views
6

Küçük bir klik için şu anda geliştirdiğim ve Özet Sözdizimi Ağacı meta-modeliyim ve şu anda bir blok modellemede sıkıntılarım var. Onlar bir çeşit edebi değil, diğer yandan da yöntemler gibi davranışsal varlıklardır. Bloklar bir çeşit lambda işlevidir, bu yüzden birileri onlarla çalışmanın daha iyi bir uygulamasına sahip olabilir.Lambda fonksiyonunun ast gösterimi

Her türlü tavsiye için teşekkür edeceğim.

cevap

8

Refactoring Browser uygulamasının çok güzel bir AST'si var.

Sorunuz hakkında: Refactoring Browser, blok ve yöntemlerin paylaşılan parçalarını SequenceNode adlı ayrı bir düğüm türüne ayıklar. Sıra düğümü temps ve ifadelerin sırasını modellemektedir. Daha sonra blok düğüm, sıralama düğümünü sarar, argümanları ekler ve değer düğümlerinin paylaşılan davranışını devralır. Yöntem düğümü, sıralama düğümünü sarar ve yöntem adı, argümanlar, pragmalar vb. Ekler.