मैं ANTLR जानने के लिए और दोनों 2007 किताब "निश्चित ANTLR संदर्भ" और ANTLRWorks (व्याकरण बनाने के लिए एक इंटरैक्टिव उपकरण) के लिए शुरू कर दिया है के साथ प्रारंभ करना। और, उस तरह के व्यक्ति होने के नाते, मैंने अध्याय 3 ("अधीर के लिए एक त्वरित दौरा") शुरू किया।ANTLR और परहेज आम गलतियों
यह काफी दर्दनाक प्रक्रिया है, विशेष रूप से कुछ त्रुटियां बल्कि अपरिवर्तनीय हैं (उदा। ANTLR: "missing attribute access on rule scope" problem जो सिर्फ मेरे लिए "आपको कुछ गलत मिला है")। इसके अलावा मेरे पास कुछ बहुत ही सरल व्याकरण (केवल 3-4 प्रोडक्शंस) और सरल इनपुट (2 लाइनें) हैं जो "आउटऑफमेमरी" त्रुटि देते हैं।
एएनटीएलआर साइट उपयोगी है लेकिन कुछ हद तक खंडित है और कुछ SO उपयोगकर्ताओं ने टिप्पणी की है (https://stackoverflow.com/questions/278480/good-tutorial-for-antlr) कि पुस्तक और ट्यूटोरियल उच्च प्रविष्टि स्तर की अपेक्षा करते हैं। इस वजह से मैं एएनटीएलआर चर्चा सूची से संपर्क करने में अनिच्छुक हूं।
लेटर हम इसके साथ पकड़ने के लिए शुरू कर रहे हैं। यह सरल विश्वसनीय उदाहरणों के लिए उपयोगी होगा जिन्हें धीरे-धीरे विस्तारित किया जा सकता है। यह निश्चित रूप से मास्टरिंग के लायक है क्योंकि हमने एएनटीएलआर के आधार पर हमारी बहुत सी सोच को फिर से तैयार किया है।
एक समस्या यह है कि ANTLR वी 3 V2 से signifcant परिवर्तन किया गया है। एसओ (और एएनटीएलआर पृष्ठों पर) पर एक उत्तर एक वी 2 वाक्यविन्यास में प्रस्तुत किया गया जो अब उपलब्ध नहीं है।
इतने पर ANTLR सवालों के कुछ मुझे एक बहुत मदद की है, लेकिन उन्हें खोजने थोड़ा तदर्थ है। तो मैं जानना चाहता हूं कि कैसे उपयोगकर्ता सीखने की प्रक्रिया को कम दर्दनाक बनाने में मदद कर सकते हैं। (यदि आप संदर्भ पुस्तक का संदर्भ लेते हैं तो यह विशेष पृष्ठों को इंगित करने के लिए उपयोगी होगा)।
संपादित करें। @ डफिमो और @ जेम्स एंडर्सन ने पुष्टि की है कि एएनटीएलआर कड़ी मेहनत कर रहा है - मोटे तौर पर क्योंकि पार्सर्स मुश्किल हैं। (FWIW मैं लेक्रस/YACC, आदि के माध्यम से किया गया है और इसमें कोई शक नहीं है कि ANTLR अधिक शक्तिशाली और के साथ काम करना आसान है नहीं है।) मुझे लगता है कि यह अभी भी क्षेत्रों में इस तरह के रूप में दूषण से बचने के लिए जहां यह संभव है के लिए उपयोगी होगा:
- नियमों के आदेश से अधिक चर नाम lexer को
- ऐड पैकेज नाम का सही पूंजीकरण के साथ-साथ पार्सर
- ले देखभाल सुनिश्चित यह पूर्वता
और इन प्रकार के और अधिक प्रभावित करता है के रूप में उपयोगी होगा।
हालांकि विशेष रूप से ANTLR के बारे में नहीं, टेर एक बाद की किताब भाषा कार्यान्वयन पैटर्न बुलाया लिखा था। यह नौसिखिया और पशु चिकित्सक दोनों के समान प्रासंगिकता के साथ एक * उत्कृष्ट * काम है। I | एमवीएचओ किसी को भी पार्सिंग काम करने के लिए एक पूर्ण जरूरी है। –