स्केल 2.10 एएसटी में किसी तत्व की खोज करने का सबसे अच्छा तरीका क्या है?स्कैला 2.10 एएसटी
पेड़ power.trees(code)
या mirror.mkToolBox().parseExpr(code)
संपादित का एक परिणाम हो सकता है। 2.10.0-आरसी 1 parseExpr
का नाम बदलकर parse
कर दिया गया है।
मेरे द्वारा उपयोग किए जाने वाले ठोस उपयोग-मामले विधि विधि, द्वारा किसी दिए गए वर्ग/ऑब्जेक्ट कोड से विधि का कोड निकाल रहा है, लेकिन मुझे लगता है कि प्रश्न अधिक सामान्य तरीके से तैयार किए जाने पर दूसरों के लिए अधिक प्रासंगिक होगा ।
लिंक किए गए कोड ट्रंक की तुलना में काफी अप्रचलित है। यहां सही लिंक दिए गए हैं: 1) पेड़ एएसटी कक्षाएं: https://github.com/scala/scala/blob/2.10.x/src/library/scala/reflect/base/Trees.scala, 2) ट्रांसफार्मर और ट्रैवर्स: https://github.com/scala/scala/blob/2.10.x/src/reflect/scala/reflect/api/Trees.scala#L606 –
ओह, धन्यवाद ... –
यहां एक ट्रांसफॉर्मर का उदाहरण दिया गया है: https://github.com/scala/scala/blob/46d57d47e81c8794a9a3594e080576788cc92324/src/compiler/scala/reflect/reify/phases/Reshape.scala (कोड निश्चित रूप से एक सफाई का उपयोग करेगा, लेकिन यह अनदेखा करने के लिए एक उदाहरण का बहुत अच्छा है)। 'Super.transform' और 'copyAttrs' भागों पर ध्यान दें। –