मैं जावा में एक कंपाइलर डिज़ाइन प्रोजेक्ट पर काम कर रहा हूं। लेक्सिकल विश्लेषण किया जाता है (jflex का उपयोग करके) और मैं सोच रहा हूं कि कौन सा yacc-like उपकरण सबसे अच्छा (सबसे कुशल, उपयोग करने में आसान, इत्यादि) सिंटैक्टिकल विश्लेषण करने के लिए और क्यों होगा।जावा के लिए Yacc समतुल्य
उत्तर
अतीत में, मैंने लेक्सर और पार्सर दोनों के लिए एएनएलटीआर का उपयोग किया है, और जेएफएक्स होमपेज का कहना है कि यह एएनटीएलआर के साथ अंतःक्रिया कर सकता है। मैं यह नहीं कहूंगा कि एएनटीएलआर का ऑनलाइन दस्तावेज बहुत अच्छा है। मैंने 'The Definitive ANTLR reference' में निवेश समाप्त कर दिया, जिसने काफी मदद की।
मेरे अनुभव में साथ अच्छी तरह से इंटरफेस, ANTLR lexing/पार्स के लिए सबसे लोकप्रिय जावा उपकरण अब तक का है। –
जीएनयू बाइसन एक जावा इंटरफ़ेस है,
http://www.gnu.org/software/bison/manual/html_node/Java-Bison-Interface.html
आप इसे जावा कोड उत्पन्न जाना उपयोग कर सकते हैं।
इसके साथ आपके अनुभव क्या हैं? क्या यह अच्छी तरह से काम करता है? –
एक और विकल्प GOLD Parser होगा।
कई विकल्पों के विपरीत, गोल्ड पार्सर व्याकरण से पार्सिंग टेबल उत्पन्न करता है और उन्हें बाइनरी, गैर निष्पादन योग्य फ़ाइल में रखता है। प्रत्येक समर्थित भाषा में तब एक इंजन होता है जो बाइनरी टेबल पढ़ता है और आपकी स्रोत फ़ाइल को पार करता है।
मैंने विशेष रूप से जावा कार्यान्वयन का उपयोग नहीं किया है, लेकिन डेल्फी इंजन का काफी अच्छे परिणाम के साथ उपयोग किया है।
भी jacc है।
जैक यक के करीब है जैसा आप प्राप्त कर सकते हैं, लेकिन इसे शुद्ध जावा में लागू किया गया है और एक जावा पार्सर उत्पन्न करता है।
यह jFlex
- 1. yacc
- 2. प्रतिबिंब के जावा समतुल्य।
- 3. क्या LINQ के लिए जावा समतुल्य है?
- 4. ग्रहण के लिए GhostDoc समतुल्य (जावा)
- 5. जावास्क्रिप्ट के लिए Yacc/Jay व्याकरण फ़ाइल?
- 6. सी # जावा संसाधन के समतुल्य
- 7. जावा इनवेरिएंट संस्कृति के समतुल्य
- 8. बाइसन/Yacc
- 9. yacc/ocamlyacc
- 10. जावा में स्पिंटफ समतुल्य
- 11. जावा में फ़ाइल.सेपरेटर के समतुल्य सी # समतुल्य है
- 12. जावा मानचित्र समतुल्य सी #
- 13. सी # जावा के अपवाद के समतुल्य .printStackTrace()?
- 14. सी ++ जावा के अवरुद्ध करने के लिए समतुल्य
- 15. जावा में पाइथन के लैम्ब्डा कार्यों के लिए समतुल्य?
- 16. जावा के स्ट्रिंग रीडर के लिए रूबी समतुल्य क्या है?
- 17. क्या मिसा सी के लिए जावा समतुल्य है?
- 18. निम्नलिखित सी # कोड के लिए जावा समतुल्य क्या है?
- 19. जावा में std :: वेक्टर के समतुल्य?
- 20. जावा सिस्टम के बाहर विजुअल स्टूडियो समतुल्य
- 21. जावा समतुल्य .NET के स्ट्रिंग। Format
- 22. सी ++ में जावा इंटरफेस के समतुल्य?
- 23. file_get_contents() के लिए समतुल्य फ़ंक्शन?
- 24. लेक्स/yacc प्रारूप में जावा व्याकरण की तलाश
- 25. AccesibleName प्रॉपर्टी के समतुल्य WPF समतुल्य
- 26. yacc/lex या hand-codeing?
- 27. क्या Yacc व्याकरण डिबगर्स हैं?
- 28. cuBLAS के लिए cudaGetErrorString के समतुल्य?
- 29. यूआरएल के लिए IO.Path.GetFileName के समतुल्य फ़ंक्शन?
- 30. yacc - फ़ील्ड में अपूर्ण प्रकार
कठिनाई: सीयूपी अब बनाए रखा नहीं गया है और [सीयूपी 2] (http://www2.in.tum.de/cup2) बीटा है। क्या यह अभी भी ठीक है? – minopret
@minopret - मैंने एक दर्जन से अधिक वर्षों में सीयूपी का उपयोग नहीं किया है, लेकिन जब तक कि कोई बड़ी अप्रत्याशित बग न हो, तब भी यह ठीक से होना चाहिए, भले ही सक्रिय रूप से बनाए रखा न जाए। हालांकि, जब तक आपको YACC- जैसे व्यवहार की आवश्यकता न हो, मैं एएनटीएलआर को देखूंगा। – kdgregory
मैं एक गिटहब मार्कडाउन फ़ाइल (.md) निर्माता पर काम कर रहा हूं जो किसी भी भाषा में लिखी गई कोड फ़ाइल लेता है, और इसके लिए एक .md फ़ाइल उत्पन्न करता है। मैं जावा में यह कर रहा हूँ। क्या ये सॉफ्टवेयर * किसी * भाषा या सिर्फ जावा को संभाल सकते हैं? –