मैं अर्थपूर्ण व्हाइटस्पेस के साथ भाषाओं का विश्लेषण करने के लिए Xtext का उपयोग कैसे कर सकता हूं? मैं कॉफीस्क्रिप्ट के लिए व्याकरण लिखने की कोशिश कर रहा हूं और मुझे इस पर कोई अच्छा दस्तावेज नहीं मिल रहा है।Xtext: महत्वपूर्ण/अर्थात् सफेद जगह के साथ भाषा के लिए व्याकरण
उत्तर
AFAIK, आप नहीं कर सकते।
पायथन जैसी भाषाओं को पार्स करने के मामले में, आपको INDENT
और DEDENT
टोकन उत्सर्जित करने के लिए लेक्सर की आवश्यकता होगी। इसके लिए, आपको लेक्सर नियमों (Xtext के terminal
नियमों) के अंदर समर्थित होने के लिए अर्थपूर्ण भविष्यवाणियों की आवश्यकता होगी जो पहले जांच करेंगे कि अगले चरित्र की वर्तमान स्थिति-इन-पंक्ति इनपुट इनपुट 0 (लाइन की शुरुआत) और एक ' '
या '\t'
है।
लेकिन documentation के माध्यम से ब्राउज़ करना, मुझे नहीं लगता कि यह इस समय Xtext द्वारा समर्थित है। Xtext 2.0 के बाद, का समर्थन उत्पादन नियमों में अर्थपूर्ण भविष्यवाणियों के लिए जोड़ा गया है (देखें: 6.2.8। सिंटैक्टिक भविष्यवाणी), लेकिन टर्मिनल नियमों में नहीं।
एक्सटेक्स्ट के साथ ऐसा करने का एकमात्र तरीका लेक्सर टर्मिनल रिक्त स्थान और लाइन-ब्रेक का उत्पादन करने देगा, लेकिन यह आपके उत्पादन नियमों की पूरी गड़बड़ी करेगा।
आप (और एक जावा उन्मुख पार्सर जेनरेटर) जावा का उपयोग कर इस तरह के एक भाषा मैं ANTLR की सलाह देते हैं, जिसमें आप काफी आसानी से इस तरह के INDENT
और DEDENT
टोकन फेंकना कर सकते हैं पार्स करने के लिए चाहते हैं। लेकिन अगर आप एक्लिप्स एकीकरण पर उत्सुक हैं, तो मुझे नहीं लगता कि आप Xtext का उपयोग करके ऐसा करने में सक्षम होंगे, क्षमा करें।
यहाँ XText
में एक उदाहरण whitespace sensitive language है CoffeeScript में रुचि रखने वाले लोगों के लिए, एडम Schmideg एक Eclipse plugin that uses XText है।
एक्सटेक्स्ट में पाइथन जैसी डीएसएल को पार्स करने में रुचि रखने वाले लोगों के लिए, उपरोक्त वर्णित टोडोटेक्स्ट के लिए राल्फ एबर्ट का कोड अब गितूब से उपलब्ध नहीं है लेकिन आप इसे Eclipse test repository में पा सकते हैं। इस काम के बारे में original thread और Eclipse issue देखें जो इसके बारे में उठाया गया था।
मैं आज इस कोड के साथ खेल रहा हूं और मेरा निष्कर्ष यह अब XText के वर्तमान संस्करण में काम नहीं करता है। जब एक्स्टिप्स में एक्सटेक्स्ट का उपयोग किया जाता है, तो मुझे लगता है कि यह "आंशिक पार्सिंग" करता है। यह इंडेंटेशन लेक्सर के साथ संगत नहीं है जिसे आपको इंडेंटेशन संवेदनशील भाषाओं को संसाधित करने की आवश्यकता है। तो मुझे संदेह है कि यदि आप लेक्सर पैच करते हैं, तो एक्लिप्स संपादक काम नहीं करता है। इस मुद्दे में, यह इन मुद्दों को हल करने के लिए राल्फ प्रस्तावित पैच की तरह दिखता है, लेकिन XText स्रोत को देखते हुए, ये परिवर्तन लंबे समय से चलते हैं? अगर मैं गलत हूं और कोई इसे काम करने के लिए प्राप्त कर सकता है, तो मुझे बहुत दिलचस्पी होगी?
एक अलग कार्यान्वयन here है लेकिन मैं इसे XText के वर्तमान संस्करण के साथ काम करने के लिए नहीं मिल सकता।
इसके बजाय मैंने parboiled पर स्विच किया है जो बॉक्स के बाहर indentation based grammars का समर्थन करता है।
अन्य एक ही समस्या का सामना कर रहे हैं: [XText सूची मार्च 2013 पर पोस्ट करें] (http://www.eclipse.org/forums/index.php/mv/tree/457763/) –
एक्सटेक्स्ट का संस्करण 2.8 Whitespace-Aware Languages के लिए समर्थन के साथ आता है। यह संस्करण "होम ऑटोमेशन उदाहरण" के साथ जहाज़ है जिसे आप टेम्पलेट के रूप में उपयोग कर सकते हैं।
- 1. Xtext
- 2. xtext
- 3. एएनटीएलआर व्याकरण के लिए संपादक जनरेटर?
- 4. cmake के साथ सफेद जगह के साथ पथ निर्दिष्ट करने के लिए कैसे?
- 5. एक सफेद जगह के साथ पथ कैसे इनपुट करें?
- 6. इस भाषा के लिए उचित व्याकरण क्या है?
- 7. स्कैला के लिए एएनटीएलआर व्याकरण?
- 8. एक व्याकरण फ़ाइल के बिना एक कस्टम Xtext/ANTLR लेक्सर लिखना
- 9. ग्रहण के बिना Xtext का उपयोग करना संभव है?
- 10. सफेद जगह के बिना प्रिंट करने के लिए मुझे अजीब कैसे मिल सकता है?
- 11. सीएसएस क्षैतिज सूची वस्तुओं के बीच सफेद जगह से छुटकारा पाने के लिए कैसे?
- 12. सरल एंटर ग्रैमर को Xtext
- 13. नींबू व्याकरण (प्राथमिकता?) के साथ समस्याएं
- 14. बूस्ट आत्मा के साथ एक व्याकरण पार्स
- 15. मैं कैसे जांच सकता हूं कि स्ट्रिंग में वर्ण और सफेद जगह नहीं है, न केवल सफेद जगह?
- 16. websockets के साथ, AJAX के लिए कोई जगह है?
- 17. सी #: व्याकरण नियम इंजन के लिए इंजन?
- 18. स्पीच रिकग्निशन के लिए सरल व्याकरण
- 19. सफेद जगहों के साथ एके खोज
- 20. सी ++ बीएनएफ व्याकरण पार्सिंग/मिलान करने वाले उदाहरणों के साथ
- 21. बूस्ट :: व्याकरण से व्याकरण रचनात्मक व्याकरण
- 22. एचटीएमएल/सीएसएस - कुछ तत्वों पर सफेद जगह को संरक्षित करने के लिए सर्वोत्तम अभ्यास?
- 23. जावास्क्रिप्ट के लिए Yacc/Jay व्याकरण फ़ाइल?
- 24. PEG.js व्याकरण
- 25. पर्ल प्रोग्रामिंग भाषा के लिए मुझे औपचारिक व्याकरण कहां मिल सकता है?
- 26. जहां मैं जावा 7 प्रोग्रामिंग भाषा के लिए आधिकारिक व्याकरण फ़ाइल पा सकता हूं?
- 27. सी # में पायथन या हास्केल की तरह महत्वपूर्ण सफेद जगह?
- 28. संदर्भ-मुक्त व्याकरण बनाम संदर्भ-व्याकरण व्याकरण?
- 29. स्कोप्ड ऑब्जेक्ट का Xtext उदाहरण
- 30. _ के साथ जगह धारक स्केला प्रकार निष्कर्ष
कूल (मुझे XText में थोड़ा सा पता होना होगा, अभी तक इस टैग में एक _not_ उत्तर प्रश्न ... :))! मैं अपना जवाब नहीं हटा सकता हालांकि यह स्वीकार्य उत्तर है।इससे पहले कि मैं अपना हटा सकता हूं, @nicolaskruchten को आपकी स्वीकार करने की आवश्यकता है। –
अब github पर होस्ट किया जाने लगता है https://github.com/ralfebert/org.eclipselabs.todotext –
दुर्भाग्य से, मुझे यह नमूना कहीं भी नहीं मिला। – rds