2011-11-24 13 views
5

AST'yi JavaScript yerine CoffeeScript'e geri döndürmek mümkün mü? Temel olarak çalıştığım bir proje, tüm CoffeeScript'i AST'ye dönüştürmeyi, AST'yi analiz etmeyi, ardından AST'nin bölümlerini CoffeeScript'e çevirmeyi gerektiriyor. Dönüşümün, orijinal koda ilişkin olarak 'kayıplı' olacağını anlıyorum, ama bu tamam.CoffeeScript AST'yi JavaScript yerine CoffeeScript'e nasıl derleyebilirim?

Bu bölümleri JavaScript’e derlemekten ve ardından tekrar CoffeeScript’e geri dönmekten kaçınmak isterim.

cevap

4

bakınız round_trip.coffee.

+0

Bu umut verici görünüyor! Burada kafamın biraz üzerindeyim ... AST'nin (tarayıcı ortamında) nasıl girdiğini alabilirim ve coffeescript kodunu geri alabilir miyim? Bu mümkün mü? Teşekkürler! – gkz

3

Bu mümkündür, ancak Coffeescript'in kaynak koduyla oynamanızı gerektirir. Coffeescript'in sembolleştirmeyi nasıl yapacağıyla ilgili bilgi edinmeli, sonra da jetonları AST'ye nasıl dönüştürebileceğini öğrenmelisiniz. Söz konusu kaynak kodu Github'da coffee-script/src'da. Dosyanın coffee-script/src/nodes.coffee içine bakarsak

, sen kendi derleme fonksiyonları ile her (gibi compile(), compileNode() vs.) Düğüm alt sınıfları bir demet göreceksiniz. Bunlar ağacın javascript koduna nasıl dönüştüğünü tanımlar. Bunun yerine Coffeescript kodunu oluşturmak istiyorsanız, bunların tümünü kendi projenizin çatalı üzerinde geçersiz kılmanız gerekir.

Her durumda örtmeyen, ancak bu bir başlangıç: CoffeeCoffee projesi (ı yazar değilim) içinde