मैं वर्तमान में एक सॉफ्टवेयर घटक है कि इस तरह के रूप में गतिशील तार interprete करने में सक्षम होगा बनाने के लिए कोशिश कर रहा हूँ:कैसे नियमित अभिव्यक्ति के बिना एक स्ट्रिंग पार्स करने
%TO_LOWER%(%DELETE_WHITESPACES%("A SAMPLE TEXT"))
कौन इस स्ट्रिंग में परिणाम होगा:
asampletext
मैं उपलब्ध कार्यों के एक सेट को परिभाषित करने में सक्षम होना चाहता हूं, अर्थात् पैरामीटर आदि के साथ मुझे पहले से ही पता है (अधिक या कम) नियमित अभिव्यक्तियों का उपयोग करके इसे कैसे करें।
मेरे प्रश्न हैं:
- इस तरह के एक उद्देश्य के लिए जिस तरह से regexp की तुलना में बेहतर पार्स करने lexing है /, या मैं सिर्फ regexp साथ जाने के लिए और है कि के बारे में भूल जाना चाहिए?
- क्या ऐसी लाइब्रेरी जावा में पहले से मौजूद है?
- क्या आप कुछ नमूना पार्सिंग/लेक्सिंग एल्गोरिदम दिखाते हुए कोई ट्यूटोरियल जानते हैं?
धन्यवाद!
हां, एंटर एक समाधान है। आपको भाषा पार्सिंग के भारी उठाने के लिए रेगेक्स का उपयोग नहीं करना चाहिए। एक बहुत अच्छा उदाहरण स्टैक ओवरफ़्लो में है - http://stackoverflow.com/questions/1931307/antlr-is-there-a-simple-example –
अक्सर, विशिष्ट उद्देश्यों के लिए ये कस्टम भाषाएं [डोमेन विशिष्ट भाषा] (http : //en.wikipedia.org/wiki/Domain-specific_language)। –