2012-02-23 7 views
8

के साथ एक फ़ाइल को पार्स करेगा, क्या वहां डेल्फी के लिए पार्सर कोड या पार्सर घटक है या एक प्रोग्राम जो बीएनएफ (बैकस-नौर फॉर्म) नोटेशन को इनपुट के रूप में स्वीकार करेगा और डेल्फी (या पास्कल) कोड का उत्पादन करेगा पार्सिंग करने के लिए?डेल्फी कोड का उत्पादन करें जो किसी दिए गए बीएनएफ प्रारूप

इसका कारण यह है कि मैं the GEDCOM standard (वंशावली के लिए उपयोग किए गए) के विभिन्न संस्करणों के बाद डेटा सेट को पूरी तरह से पार्स करने का प्रयास करने जा रहा हूं, और फाइल को राज्य से राज्य में टोकन तक पहुंचने की आवश्यकता होगी। मैं राज्य के लिए प्रसंस्करण करने के लिए राज्य को करने के लिए मूल पास्कल कोड स्थापित करने के गंदे काम करने के लिए एक स्वचालित कार्यक्रम पसंद करूंगा।

अन्यथा, मुझे मैन्युअल रूप से राज्य संरचनाएं बनाना होगा।

मैं निम्नलिखित प्रश्न देखा था (और TinyPG अच्छा लग रहा है, लेकिन मैं डेल्फी कोड की जरूरत है): Parser-generator that outputs C# given a BNF grammar?

अगर वहाँ इस तरह के एक जानवर नहीं है, वहाँ है कि इस कार्य को आसान कर देगा उपलब्ध किसी भी अन्य उपकरण हैं ?

उत्तर

6

मैं आपको GOLD पार्सिंग सिस्टम की सलाह देता हूं। गोल्ड व्याकरण बैकस-नौर रूप और नियमित अभिव्यक्तियों पर आधारित होते हैं।

संसाधन

इंजन

इंजन डेल्फी के लिए विशेष रूप से here सूचीबद्ध हैं।

ऑब्जेक्ट पास्कल के लिए रॉब वैन डेन ब्रिंक रुचि का हो सकता है।

उद्धरण:

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

नमूना स्वर्ण का उपयोग कर

स्वर्ण परियोजना, शक्तिशाली है यह dcu2pas की पार्स इंजन के रूप में प्रयोग किया जाता है, एक डेल्फी संकलित इकाई (DCU फ़ाइलें) decompiler जो होस्ट किया गया है here (bitbucket.org)। इसके बजाय नोटिस करें कि यह में लिखा गया है।

+1

मुझे वास्तव में गोल्ड पार्सिंग सिस्टम, विशेष रूप से संपादक और डीबगर पसंद है। दुर्भाग्य से डेल्फी इंजन कार्यान्वयन एक दशक पुराना है, 'रॉब वैन डेन ब्रिंक' के कोड के लिए Readme.txt कहते हैं, "24 अप्रैल 2002"। यह डेल्फी यूनिकोड को 7 साल के लिए भविष्यवाणी करता है। –

+0

हां, वे उम्र बढ़ रहे हैं लेकिन इन्हें बेहतर किया जा सकता है। हाल ही में सी # इंजन कार्यान्वयन रक्तस्राव किनारे के निर्माण का उपयोग कर रहे हैं। मैथियस पाइपकोर्न डी (डिजिटल मंगल डी) इंजन उन डेल्फी इंजनों से प्रेरित है और मुझे यह वाकई उत्कृष्ट लगता है। यह बहुत समय है कि डेल्फी समुदाय इसका सबसे अच्छा वापस ले लेता है और बनाए रखने के लिए नीचे उतर जाता है। – menjaraz

+1

ऐसा लगता है कि मैं वास्तव में वह टूल ढूंढ रहा था जिसे मैं ढूंढने की उम्मीद कर रहा था। यह इंगित करने के लिए धन्यवाद! – lkessler

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