2011-12-18 27 views
7

Ben v8 motorunu almak ve ben bunun doğru ilk adım i ayrıştırma ağacınıV8 ayrıştırma ağacına nasıl erişirim?

sorumu almak gerekir anlarsanız örneğin this dayalı diğer programlama dili için kodunu dönüştürmek ister geçerli: alabilirim zaten v8'den mi yoksa js kodundan üretmem gerekiyor mu. Daha kolay yol nedir?

+0

benim SO bunu yapmak için gerekenlere üzerinde cevap bakınız::

Onlar neler yapabileceğini için bir fikir vermelidir bazı büyük çevrimiçi demolar var http://stackoverflow.com/a/ 3460977/120163 –

+1

Cevabınız için teşekkürler, ancak belirli bir platforma ve belirli bir dile ihtiyacım var "her şeye dönüş" türünü değil – user63898

+1

Cevabımı dikkatli bir şekilde okuduğunuzu düşünmüyorum. Bir AST'niz olsa bile, * bire * dönüştürmek zordur. –

cevap

2

V8'in kendisinden AST (Annotated Syntax Tree, Ayrıştırma Ağacını) almak zor görünüyor, ancak aradığınız şeyi yapacak çok sayıda başka ayrıştırıcı var. JavaScript'te yazılmış bir JavaScript ayrıştırıcısı olan Esprima (http://esprima.org/) 'a bir göz atmanızı tavsiye ederim. Bu, bazı JavaScript kaynak kodları vermenize ve isterseniz AST'nin başka bir dile dönüştürebileceğiniz bir JavaScript nesne sürümünü geri almanıza izin verir (veya daha sonra JavaScript'e dönüştürebilir veya başka bir nedenden dolayı kullanabilirsiniz). http://esprima.org/demo/index.html

İlgili konular