2012-09-23 28 views
5

से आरपीएल पावर उपयोगकर्ता मोड (: पावर) सक्षम करें मैं स्काला में कमांड के रूप में एक स्ट्रिंग को गतिशील रूप से समझने की कोशिश कर रहा हूं। इसके लिए, मैं जो समझता हूं, उससे मुझे intp.interpret("string") पर कॉल करने की आवश्यकता है (जहां intp मेरे आदेश के लिए वर्तमान दुभाषिया और string के लिए खड़ा है) जबकि पावर मोड में है, है ना?स्क्रिप्ट

हालांकि, मेरी समस्या यह है कि मैं इसे एक स्क्रिप्ट के अंदर से करना चाहता हूं। इस प्रकार, मैं एक स्क्रिप्ट के अंदर से पावर उपयोगकर्ता मोड में स्विच करने का एक तरीका ढूंढ रहा हूं, और फिर intp.interpret पर कॉल करें।

क्या इस स्क्रिप्टिंग को स्क्रिप्ट फ़ाइल के अंदर से करने का कोई तरीका है?

+1

असल में मैं एक बदसूरत समाधान: आप 'लिख सकते हैं: power' एक फ़ाइल में (चलिए इसे 'init' कहते हैं) और फिर अकेले स्कैला दुभाषिया चलाएं। फिर, 'लोड इनिट' (जो आपको पावर मोड पर स्विच करेगा) और फिर उसी प्रॉम्प्ट से 'लोड प्रोग्राम' को प्रोग्राम को निष्पादित करने के लिए करें जो स्ट्रिंग को समझना चाहता है। 'Intp' चर अब दृश्यमान होना चाहिए। हालांकि, मैं और अधिक सुंदर समाधान का स्वागत करता हूं :-) –

उत्तर

1

आप एक bash स्क्रिप्ट से आरईपीएल लागू या somesuch तो आप scala.repl.power प्रणाली संपत्ति के माध्यम से :power मोड तुरंत सक्षम कर सकते हैं कर रहे हैं,

[email protected]$ scala -Dscala.repl.power 
Welcome to Scala version 2.9.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_05) 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> 
[info] compiler init time: 2.186 s. 

scala> 
** Power User mode enabled - BEEP BOOP SPIZ ** 
** :phase has been set to 'typer'.   ** 
** scala.tools.nsc._ has been imported  ** 
** global._ and definitions._ also imported ** 
** Try :help, vals.<tab>, power.<tab> ** 

scala> 
[info] total init time: 5.105 s. 

scala> 
+0

नहीं। कोशिश की लेकिन यह काम नहीं करता है (2.9.2 संस्करण के साथ-साथ मेरी मशीन में)। यदि आप scala -Dscala.repl.power चलाते हैं तो यह काम करेगा (दुभाषिया के लोडिंग और पावर मोड को सक्षम करने के बीच कुछ देरी है), हालांकि यदि आप scala -Dscala.repl.power scriptfile चलाते हैं तो यह नहीं करता है । दुभाषिया शिकायत करता है कि मूल्य intp नहीं मिला है। –