2009-04-14 12 views
32

मैं एक नई भाषा के लिए एक संकलक विकासशील किया गया है कैसे बना सकते हैं। मैंने सोचा कि यह एक वाक्यविन्यास जागरूक वातावरण में अपने विकास का प्रदर्शन करने में सक्षम होना साफ होगा। भाषा में कुछ कस्टम कीवर्ड हैं, और इसकी संरचना जावा या सी/सी ++ जैसी सामान्य भाषाओं की तुलना में काफी अलग है।मैं एक कस्टम ग्रहण सिंटेक्स हाइलाइटर

मैं कैसे ग्रहण के लिए एक कस्टम वाक्य रचना highligher विकसित कर सकते हैं? मैंने कुछ प्लगइन के कुछ संदर्भ देखे हैं, लेकिन दस्तावेज मेरे शुरुआती जरूरतों के लिए पर्याप्त नहीं है।

मैं अपने भाषा, साथ ही प्रासंगिक कीवर्ड की सूचियों के लिए एक व्याकरण/आर ई है।

उत्तर

14

The Eclipse ढांचा एक काफी जटिल दस्तावेज़ मॉडल का उपयोग करता वाक्य रचना रंग करने के लिए (वे इसे रंग कहते हैं, पर प्रकाश डाला नहीं), यह रूप में सरल रूप में यह अन्य संपादकों में है नहीं है।

तुम सच में कोशिश करते हैं और इसके साथ गड़बड़ करने के लिए चाहते हैं, तो आप the following from the Eclipse plug-in developer guide से पढ़ सकते हैं।

+0

ऐसा लगता है कि यह बहुत शामिल है, लेकिन एक उच्च गुणवत्ता वाले उत्पाद का उत्पादन करेगा। मैं इस टूल को दिमाग में रखूंगा क्योंकि मैं अपनी भाषा विकसित करना जारी रखता हूं। धन्यवाद! –

+0

कि लिंक टूटा हुआ है। क्या यह समान चीज़ है? http: //help.eclipse।संगठन/इंडिगो/index.jsp? विषय =% 2Forg.eclipse.platform.doc.isv% 2Fguide% 2Feditors_highlighting.htm – thejoshwolfe

31

लगता है कि आपका डीएसएल (डोमेन विशिष्ट भाषा) के साथ काम कर रहे हैं (ऊपर लिंक अब मर चुका है। This may be a similar document या this।)। आप जो देख रहे हैं वह बिल्कुल XText जैसा लगता है। यहां पृष्ठ से निकाला गया है:

Xtext बाहरी पाठ डीएसएल के विकास के लिए एक ढांचा/उपकरण है। एक्सटेक्स्ट की सरल ईबीएनएफ व्याकरण भाषा का उपयोग करके बस अपने स्वयं के डीएसएल का वर्णन करें और जनरेटर एक पार्सर, एक एएसटी-मेटा मॉडल (ईएमएफ में कार्यान्वित) के साथ-साथ एक पूर्ण-विशेषीकृत ग्रहण टेक्स्ट संपादक भी बनाएगा।

इसके अलावा, this video देखें जो इसके पीछे के लोगों में से एक के साथ एक साक्षात्कार है। मुझे यकीन है कि आप इसे यहाँ से ले लेंगे :-)

तुम भी this plugin की जाँच करने के लिए चाहते हो सकता है कर रहा हूँ। बिल्कुल वही नहीं जो आप खोज रहे हैं, लेकिन एक अच्छी शुरुआत हो सकती है।

+1

वीडियो अब ब्लिप पर उपलब्ध नहीं है। –

4

यह लीक्लिप्स (http://www.liclipse.com/) के लक्ष्यों में से एक है: आसानी से सिंटैक्स हाइलाइटिंग, मूल कोड-समापन, रूपरेखा आदि के साथ एक संपादक कर रहा है जो ग्रहण को लक्षित करता है - ध्यान दें कि इसका मूल (जो कस्टम भाषाएं बनाने की अनुमति देता है) खुला हो गया स्रोत हाल ही में: http://liclipse.blogspot.com.br/2016/05/liclipse-303-providing-back-to-open.html

कोई नई भाषा जोड़ने के लिए कोई जावा कौशल की आवश्यकता नहीं है (ज्यादातर एक नया .liclipse - जो एक YAML - फ़ाइल उचित जगह पर है और यह कहने के लिए कुछ बुनियादी नियम बना रहा है कि आपकी भाषा को कैसे विभाजित किया जाए - यानी: आम तौर पर स्ट्रिंग से टिप्पणियों से कोड को अलग करना - और विभाजन में आपके द्वारा निर्दिष्ट कीवर्ड निर्दिष्ट करना आपको पहले से ही उचित वाक्यविन्यास हाइलाइटिंग देगा)।

आप इसे डाउनलोड करते हैं, तो प्लग इन पर उदाहरण के एक नंबर \ com.brainwy.liclipse.editor \ भाषाएं हैं और वहाँ इसे कैसे करना पर http://www.liclipse.com/text/supported_languages.html और http://www.liclipse.com/text/scope_definition.html पर कुछ बुनियादी प्रलेखन है।

+2

मुझे यह विचार अच्छा लगता है लेकिन ध्यान रखें कि लीक्लिप्स वास्तव में मुफ़्त नहीं है 'संक्षेप में, लाइसेंस किसी को भी 30 दिनों के लिए लीक्लिप्स का मूल्यांकन करने के लिए उकसाता है, लेकिन इसे निरंतर उपयोग के लिए खरीदा जाना चाहिए।' – Anton

+0

@ एंटन: स्टैंडअलोन लीक्लिप्स आवेदन नि: शुल्क नहीं है, लेकिन लीक्लिप्सटेक्स्ट ग्रहण प्लग-इन [स्पष्ट रूप से है] (http://www.liclipse.com/text/index.html)। इसे लीक्लीप्स अपडेट साइट से 'http: // www.liclipse.com/text/updates' पर इंस्टॉल किया जा सकता है। – Lii

+1

@Lii हां, लीक्लिसे से संभाली जाने वाली मूल भाषाएं लीक्लिप्सटेक्स्ट के रूप में खुली थीं (देखें: http://liclipse.blogspot.com.br/2016/05/liclipse-303-providing-back-to-open.html) –

1

आप इसके बजाय नोटपैड ++ की उपयोगकर्ता परिभाषित भाषा कार्यक्षमता का उपयोग कर सकते हैं। हम आमतौर पर ऐसे उपयोग के मामले के लिए नोटपैड ++ का उपयोग करते हैं। इसमें यह सिर्फ एक एक्सएमएल है। इसके अलावा नोटपैड ++ आपकी भाषा विशिष्ट व्याकरण को परिभाषित करने के लिए यूआई आधारित संपादन प्रदान करता है।

संबंधित मुद्दे