मैं एक ऐसा एप्लिकेशन लिख रहा हूं जो उपयोगकर्ता को बूलियन अभिव्यक्ति दर्ज करने की अनुमति देता है। मुझे रनटाइम पर दर्ज बूलियन अभिव्यक्ति का मूल्यांकन करने की क्षमता की आवश्यकता है और मैं एक पार्सर और एक एक्सप्रेसइन सत्यापनकर्ता की तलाश में हूं।बूलियन और मैथ एक्सप्रेशन पार्सर
पार्सर
पार्सर एक स्ट्रिंग के रूप में एक बूलियन अभिव्यक्ति लेने के लिए और सही/गलत वापस जाने के लिए की जरूरत है।
उदाहरण:
string expression = "(1 == 1) && (1 > 0)"; Parser parser = new Parser(); boolean result = parser.parse(expression); // Result should be True.
बूलियन अभिव्यक्ति मैं भी यह गणित को संभालने की ज़रूरत से निपटने के अलावा।
expression = "((1 + 1 * 2) == 1)"; result = parser.parse(expression); // Result should be False.
मान्य
तो यह है कि मैं उपयोगकर्ता बता सकते हैं कि वहाँ दर्ज किया जा रहा मैं भी वाक्य रचना को मान्य करने के लिए एक तरह से की जरूरत है अभिव्यक्ति के साथ एक समस्या है।
मैं .NET कॉम्पैक्ट फ्रेमवर्क का उपयोग कर सी # में काम कर रहा हूं, लेकिन अगर आपको किसी अन्य भाषा में लिखी गई चीज़ के बारे में पता है जो उपयोगी हो सकता है।
आपकी सहायता के लिए धन्यवाद। टॉम
+1। यदि आप इसे देखते हैं और इसे खारिज करते हैं, तो सोचते हैं कि यह बहुत परेशानी है, कृपया पुनर्विचार करें। मैं आपको एक व्याकरण विकास उपकरण के रूप में एएनटीएलआरवर्क्स का उपयोग करने की सलाह देता हूं और इसे अपने विजुअल स्टूडियो प्रोजेक्ट पेड़ में लेक्सर और पार्सर क्लास आउटपुट करता हूं। यह अपेक्षाकृत निर्बाध है और इसे अपने व्याकरण को ट्विक करना आसान है और जल्दी ही अपने .NET दुनिया में इसके प्रभाव देख सकते हैं। –
ऊपर "आप" द्वारा, मेरा मतलब था थॉमस ओपी। –
@ क्रिस किसान: यह सी # कॉम्पैक्ट फ्रेमवर्क को लक्षित कर रहा है ... इसके लिए थोड़ा भारी हो सकता है ... – t0mm13b