2009-11-04 10 views

उत्तर

8

कोबोल copybooks के लिए एक पूर्ण विकसित पार्सर बिल्डिंग में कुछ चुनौतियां:

copybooks संकलन के पाठ हेरफेर चरण के दौरान कोबोल कार्यक्रमों में शामिल होते हैं। स्वयं द्वारा कॉपीबुक स्रोत अपूर्ण हो सकता है। पार्सिंग के लिए एक पूर्ण स्रोत प्राप्त करने का एकमात्र तरीका यह है कि इसे प्रो-प्रोसेसिंग करना है जैसे कि इसे कोबोल सॉस प्रोग्राम में लाया गया हो। आम तौर पर कॉपीबुक को सीओपीओएल निर्देश के माध्यम से एक कोबोल कार्यक्रम में लाया जाता है। इसे ऊपर लाएं थोड़ा सा व्यर्थ प्रतीत हो सकता है, लेकिन निम्न पर विचार करें:

1) सीओपीवाई निर्देश एक प्रतिस्थापन विकल्प के साथ आता है। सतह पर यह सौदा करने के लिए काफी आसान लग सकता है, लेकिन एक बार जब आप विवरण में आते हैं तो यह बहुत ही "दिलचस्प" हो जाता है। देखें: COPY DIRECTIVE

2) प्रतिस्थापन निर्देश। सीओपीवाई निर्देश के बाद यह निर्देश स्रोत टेक्स्ट में हेरफेर कर सकता है। देखें: REPLACE DIRECTIVE

3) नेस्टेड कॉपीबुक। यह पिछले दो के रूप में बुरा नहीं हो सकता है लेकिन घोंसले को भी ध्यान में रखता है।

4) कोबोल पिक्चर तारों का सिंटैक्स किसी भी पर हंसने की बात कर रहा है। एक नज़र डालें: Picture String Symbols

5) आपके पार्सर को कोबोल निरंतरता नियमों से निपटने की आवश्यकता होगी। देखें: Continuation Lines, और विशेष रूप से PSEUDO टेक्स्ट की निरंतरता।

मैं आपको हतोत्साहित नहीं करना चाहता, लेकिन कोबोल पार्सिंग एक छोटा काम नहीं है।

चमकदार तरफ, यदि आपकी प्रतिलिपि में उनके लिए एक ड्रॉप-डेड-सरल संरचना है, तो कई लोग नियमित अभिव्यक्तियों के कैस्केड का उपयोग करके इसे प्राप्त करना संभव हो सकते हैं। यह दृष्टिकोण उन लोगों के बीच काफी आम है जिन्हें सॉफ़्टवेयर नवीकरण परियोजनाओं पर कोबोल प्रोग्राम (और प्रतिलिपि) का विश्लेषण करने की आवश्यकता है। हो सकता है कि पर एक नजर है: RegReg

चीयर्स ...

+0

के लिए धन्यवाद, आपको यह सही करने के लिए एक पूर्ण COBOL पार्सर फ्रंट एंड की आवश्यकता है। Http://www.semanticdesigns.com/Products/FrontEnds/COBOLFrontEnd.html देखें –

2

बहुत समय पहले, मैंने कोबोल कॉपीबुक को पार्स करने और एक्सएसडी फ़ाइलों को उत्पन्न करने के लिए कुछ कोड बनाया था।

चूंकि COBOL भाषा संरचना बहुत नियमित है, इसलिए मैंने चर नामों को प्राप्त करने और फ़ील्ड की लंबाई की पहचान करने के लिए एक नियमित अभिव्यक्ति तैयार की है। उस पार्सेड संरचना के साथ, मैं उन आईएमएस लेनदेन का परीक्षण करने के लिए उस संरचना और एचटीएमएल फॉर्मों में हेरफेर करने के लिए एमएसएक्सएमएल डोम कोड भी एक्सएमएल टेस्ट डेटा बना सकता हूं।

नीचे पंक्ति: नियमित अभिव्यक्तियां ऐसा करने में वास्तव में उपयोगी हो सकती हैं।

+0

रेगेक्स संकेत – lemotdit

0

Z के लिए वाजिब डेवलपर, एक्सएमएल थंडर, Syncsort ईटीएल ... कई उत्पादों है कि यह कर देगा रहे हैं।

वास्तव में, यदि आप स्कीमा डेटाटाइप के नियमों को सीखते हैं, तो आप इसे मैन्युअल रूप से बहुत आसानी से कर सकते हैं। अधिकतर, आप xsd से निपटेंगे: स्ट्रिंग, xsd: दशमलव, xsd: पूर्णांक और xsd के कुछ स्वाद: आपकी कोबोल कॉपीबुक से मेल खाने की तिथि।

1

आप मेरी Koopa Cobol parser प्रोजेक्ट को आजमा सकते हैं। हालांकि यह प्रीप्रोकैसिंग नहीं करता है, मैंने पाया कि ज्यादातर कॉपीबुक के लिए यह वास्तव में आवश्यक नहीं है। इसमें एक मानक प्रतिलिपि से आप जो अपेक्षा करेंगे, उसे कवर करना चाहिए, और यदि नहीं, तो आप हमेशा पार्सर का विस्तार कर सकते हैं। यह पार्स पेड़ को एक्सएमएल में निर्यात कर सकता है, जिसे आप किसी भी तरह से संसाधित कर सकते हैं।

0

फिर REDEFINES क्लॉज है जिसका उपयोग विभिन्न तरीकों से संगत बाइट्स के दिए गए सेट को फिर से परिभाषित करने के लिए किया जाता है। फिर OCCURS खंड जो सरणी की निश्चित लंबाई का कार्यान्वयन है और OCCURS DEPENDING ON चर लंबाई लंबाई सरणी के लिए खंड है।

तो, नीलबी सही है; यह एक मामूली कार्य नहीं है।

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