वापस जब प्रतिबिंब अभी भी प्रारंभिक था, स्कैला 2.10.0 मील के पत्थर के दिनों में, मैं asked a question के बारे में आरईपीएल से कोड स्निपेट के पेड़ों को देखने के लिए इसका उपयोग कैसे कर सकता हूं। उत्कृष्ट उत्तर मैंने पूछा उससे आगे चला गया, और दिखाया कि कैसे पेड़ों का विश्लेषण और मूल्यांकन करने के लिए उनका उपयोग किया जा सकता है, इसलिए मैं आगे बढ़ गया और उस छोटी परियोजना पर इसका उपयोग करने की कोशिश की जो मैं आज जा रहा था।आरईपीएल परिभाषाओं को देखने के लिए मैं स्कैला टूलबॉक्स कैसे प्राप्त कर सकता हूं?
दुर्भाग्य से, कोड पार्स और इस तरह से किसी भी आरईपीएल परिभाषा को देखने के लिए प्रतीत नहीं होता है का मूल्यांकन:
scala> val x = 1
x: Int = 1
scala> import scala.tools.reflect.ToolBox
import scala.tools.reflect.ToolBox
scala> val tb = scala.reflect.runtime.universe.runtimeMirror(
getClass.getClassLoader).mkToolBox()
tb: scala.tools.reflect.ToolBox[reflect.runtime.universe.type] = ...
scala> tb.eval(tb.parse("x"))
scala.tools.reflect.ToolBoxError: reflective compilation has failed:
not found: value x
वहाँ एक रास्ता यह आरईपीएल पर किए गए परिभाषाओं पहचान करने के लिए प्राप्त करने के लिए है?
आरईपीएल में नहीं होने के विरोध में? मैंने एक एसबीटी परियोजना में सटीक एक ही कोड (https://gist.github.com/jedesah/5812481) लिखा और मुझे आरपीएल में वही व्यवहार मिलता है। यदि इस तरह टूलबॉक्स किसी अन्य संदर्भ में काम करता है, तो मुझे जानना बहुत उत्सुक होगा। टूलबॉक्स में – jedesah
@UndercoverAgent कोड में "रूट" से पहुंचने वाली किसी भी चीज़ तक पहुंच है - अन्यथा यह काफी बेकार होगा। यदि आपने दिखाया है, तो वह चर "रूट" पर उपलब्ध नहीं था। –
बेकार एक मजबूत शब्द है, इसका इस्तेमाल स्वयं निहित पेड़ों का मूल्यांकन करने के लिए किया जा सकता है। किसी भी मामले में, आप इस छोटी परियोजना पर काम कर रहे हैं, क्या यह खुला स्रोत है? मुझे बाहरी (पेड़ से ही) परिभाषाओं तक पहुंचने का एक उदाहरण देखना अच्छा लगेगा, मुझे यकीन नहीं है कि आप "रूट" से उन तक पहुंचकर क्या मतलब रखते हैं। – jedesah