मुझे स्कैला से दूसरी भाषा में कनवर्टर बनाने की आवश्यकता है। मैं स्कैला कोड पार्सर की तलाश में हूं जो संकलन के बिना कोड को सिंटैक्स पेड़ में परिवर्तित करता है।स्कैला कोड पार्सर (कंपाइलर नहीं)
उत्तर
मुझे इसे सरल बनाने दें: स्कैला प्रोग्राम के एएसटी को अकेले पार्सर के साथ उत्पन्न करने का कोई तरीका नहीं है। टाइपर चलाने के लिए बिल्कुल जरूरी है, और इसका मतलब है कि अनुमान और निहितार्थ टाइप करें।
उसके बाद, आप जो भी चाहें कर सकते हैं। लेकिन कंपाइलर के इन पहले कुछ चरणों (टाइमर की गिनती, हाल के संस्करणों में चार) आवश्यक हैं।
संयोग से, यह चरण presentation compiler द्वारा चलाया गया है, जिसका उपयोग Scala IDE for Eclipse द्वारा किया जाता है। ऐसा लगता है कि यह आपके लिए एकदम सही इंटरफ़ेस हो सकता है।
ENSIME भी uses it है, जो इसके बारे में जानकारी का सबसे अच्छा स्रोत हो रहा है, और आप भी, क्योंकि यह रूप में अच्छी तरह संकलक के एएसटी उपयोग करता है, Scala Refactoring उपकरण पर एक नज़र लेने के लिए चाहते हो सकता है।
अंत में, आप टाइपर के बाद पेड़ देखने के लिए -Ybrowse:typer
के साथ कोड को संकलित करने का प्रयास कर सकते हैं। मौजूदा चरणों को प्रदर्शित करने के लिए -Xshow-phases
का उपयोग करें, या -Xprint:typer
टाइपर (या किसी अन्य चरण) के बाद "स्रोत" मुद्रित करने के लिए।
- 1. स्कैला पार्सर मुद्दे
- 2. स्कैला संयोजक पार्सर
- 3. स्कैला प्रोटोकॉल बफर कंपाइलर
- 4. स्कैला कंपाइलर प्लगइन
- 5. भिन्नता एनोटेशन, स्कैला कंपाइलर
- 6. स्कैला पार्सर संयोजकों में बैकट्रैकिंग?
- 7. केस असंवेदनशील स्कैला पार्सर-संयोजक
- 8. मैं कैसे देख सकता हूं [जावा/स्कैला?] कोड स्कैला कंपाइलर मूल स्केल-कोड
- 9. स्कैला पार्सर टोकन डेलीमीटर समस्या
- 10. एक अच्छा सी # कंपाइलर-कंपाइलर/पार्सर जेनरेटर क्या है?
- 11. स्कैला के लिए कंपाइलर कैश?
- 12. "स्कैला प्रेजेंटेशन कंपाइलर" क्या है?
- 13. सी कोड पार्सर .NET
- 14. जावा स्रोत कोड पार्सर
- 15. स्कैला कोड
- 16. पार्सर जो स्कैला पहचानकर्ता स्वीकार करता है?
- 17. स्कैला - एक मूल गतिशील फ़ंक्शन पार्सर
- 18. स्कैला कोड
- 19. स्कैला पार्सर संयोजक और न्यूलाइन-सीमांकित पाठ
- 20. स्कैला - क्वेरी स्ट्रिंग पार्सर और बिल्डर डीएसएल
- 21. स्कैला कंपाइलर स्टोर एएसटी कहां है?
- 22. कोड क्रैशिंग कंपाइलर: मुख्य() int
- 23. कोड में कंपाइलर जोड़ना :: ब्लॉक
- 24. क्रिटिक मेरे स्कैला कोड
- 25. बीएनएफ व्याकरण से स्कैला कोड उत्पन्न करने के लिए लेक्सर/पार्सर
- 26. यह स्कैला कोड क्यों धीमा है?
- 27. स्कैला पार्सर-संयोजक: मैचों को कैसे बदला जाए?
- 28. स्कैला पार्सर कॉम्बिनेटर, संदिग्ध व्याकरण और पारसे वन
- 29. स्कैला पार्सर कॉम्बिनेटर्स रिकर्सिव बीएनएफ के लिए चाल?
- 30. स्कैला पार्सर कॉम्बिनेटर्स: कुशलता से पार्स सी-स्टाइल टिप्पणियां
मुझे लगता है कि आपका मूल उत्तर भ्रामक है। यदि आपके पास व्याकरण है, तो आप एएसटी उत्पन्न कर सकते हैं; आखिरकार, व्याकरण और (वाक्यविन्यास) पेड़ शुद्ध वाक्यविन्यास के बारे में हैं। मैं सहमत हूं, आपको एएसटी को उपयोगी रूप से समझने के लिए अक्सर प्रकार की जानकारी की आवश्यकता होती है। (मैं उपयोगी पॉइंटर्स के लिए आपके पॉइंटर्स पर ऑब्जेक्ट नहीं कर रहा हूं)। –
@Ira यह मानता है कि भाषा को व्याकरण के साथ _parsed_ किया जा सकता है। पर्ल, उदाहरण के लिए, [नहीं कर सकते] (http://www.perlmonks.org/?node_id=663393)। स्कैला पर, जूरी अभी भी बाहर है - कुछ लोगों ने ईबीएनएफ विनिर्देशों के आधार पर एक पार्सर बनाने की कोशिश की है, लेकिन पता चला है कि यह काफी काम नहीं करता है। हो सकता है कि स्काला को व्याकरण से पार्स किया जा सके, लेकिन, व्यावहारिक रूप से, इस तरह के किसी भी पार्सिंग बिना टाइपर के _useless_ होगा, क्योंकि स्रोत कोड का हिस्सा उस चरण द्वारा स्पष्ट रूप से प्रदान किया जाता है। –
यह वही कहानी सी ++ के बारे में भी बताई गई है। यह गलत है। सच यह है कि कुछ पारदर्शी स्थानीय रूप से संदिग्ध हो सकते हैं। वे स्थानीय रूप से भी अस्पष्ट हो सकते हैं। अधिकतर इसका अर्थ यह है कि पार्सिंग तकनीक लोग उपयोग करते हैं (एलएल (के) और एलएएलआर (1)) इस पर बहुत लुभावनी है। इसका मतलब यह नहीं है कि सही पार्सिंग तकनीक लुसी है। जीएलआर पार्सिंग देखें, जो इस तरह के अस्पष्टता को एपलबॉम्ब के साथ संभालती है। लोक संस्कृति के बावजूद हम "कठोर" होने के बावजूद हम इस तरह से सी ++ का विश्लेषण करते हैं। हम एक पर्ल पार्सर पर काम कर रहे हैं लेकिन इसका बैक बर्नर है। मुझे विश्वास है कि स्कैला पर्ल के रूप में बुरा है। –