मुझे यकीन नहीं है कि "सी ++ कोड डोम" क्या है, अगर यह मौजूद है। क्या मायने रखता है कि MSVS IDE क्रियाओं का समर्थन करने के लिए MSVS पार्स और प्रतीकों का अर्थ निर्धारित करने के लिए EDG फ्रंट एंड का उपयोग कर रहा है। EDG IIRC कार्यक्रम का प्रतिनिधित्व करने वाले अपने आंतरिक डेटा संरचनाओं का निर्माण करता है; मेरे पास यह मानने का कोई कारण नहीं है कि वे डेटा संरचनाएं "C ++ कोड DOM" हैं, या वे आपको दिखाई दे रहे हैं या आप MSDN पर उनके बारे में पता लगा पाएंगे।
आपकी वास्तविक समस्या यह है कि आप C ++ स्रोत कोड का विश्लेषण करना चाहते हैं। मैं सहमत हूँ, EDG के सामने की अंतिम जानकारी होना एक महत्वपूर्ण सहायता होगी; आप वास्तव में अपने खुद के सी ++ पार्सर लिखने का प्रयास नहीं करना चाहते हैं (और आपको बहुत सारे सामान पिछले पार्सिंग की ज़रूरत है, "मेरे जीवन पर निबंध" पार्स करने के बाद)।
तो आपके पास निम्नलिखित विकल्प हैं:
- MSVS में EDG मशीनरी में एक दरवाजा खोजें। चूंकि आपके पास बहुत अधिक भाग्य नहीं है और ऐसा प्रतीत होता है कि एमएस से कुछ भी दस्तावेज नहीं है यह कहते हुए कि यह उपलब्ध है, आपके पास शायद इस तरह से बहुत भाग्य नहीं होगा। अगर मैं एमएस के जूते में होता, तो मैं इसे सार्वजनिक नहीं करता; यह सिर्फ एक और समर्थन सिरदर्द होगा, और सॉफ्टवेयर के एक टुकड़े पर जो उनका भी नहीं है।
- से सीधे, वाणिज्यिक ईडीजी सामने अंत का उपयोग करें ईडीजी । मेरी समझ से वे बिना किसी शुल्क के व्यक्तिगत उपयोग लाइसेंस प्रदान करते हैं। (मेरी समझ गलत हो सकती है)। इस तरह से आप किसी भी प्रतिबंध को छोड़ सकते हैं जो एमएस तक पहुँच पर हो सकता है ... ईडीजी फ्रंट एंड को स्वयं कॉन्फ़िगर करने की कीमत पर। एक नकारात्मक पक्ष: ईडीजी एक कंपाइलर के सामने का छोर बनना चाहता है, न कि एक विश्लेषक के सामने का छोर। यह भेद सूक्ष्म लग सकता है लेकिन यह आपको काटेगा। उदाहरण के लिए, मुझे संदेह है कि EDG ने टिप्पणियां दूर फेंकी; संकलक सामने के छोरों को उनकी आवश्यकता नहीं है। यदि आप अपने विश्लेषक में टिप्पणियों का निरीक्षण करना चाहते हैं, तो यह एक वास्तविक समस्या हो सकती है।
- क्लैंग का उपयोग करें । यह एक खुला स्रोत C ++ पार्सर है, जिसका उपयोग विभिन्न प्रकार के प्रोग्राम विश्लेषण उद्देश्यों के साथ-साथ C ++ कंपाइलर को समाप्त करने के लिए किया गया है। मुझे इसके साथ कोई अनुभव नहीं है, लेकिन यह बहुत अच्छी तरह से सोचा हुआ लगता है, और बहुत सारी सुविधाएं प्रदान करता है। मैं नहीं जानता कि क्या इसे C ++ की एमएस बोली के लिए विशिष्ट समर्थन प्राप्त है।
- एक और वाणिज्यिक फ्रंट एंड का उपयोग करें, हमारा (डीएमएस) सी ++ फ्रंट एंड। इस के वास्तुकार होने के नाते, मुझे पूरा यकीन है कि इसे अच्छी तरह से सोचा जा रहा है (एमएस विज़ुअल सी ++ के लिए समर्थन सहित); जटिल C ++ विश्लेषण और परिवर्तन कार्यों को करने के लिए इसका उपयोग करने के साथ विशिष्ट अनुभव है। EDG के विपरीत, यह विश्लेषण, परिवर्तन और पीढ़ी का समर्थन करने के लिए डिज़ाइन किया गया है (उदाहरण के लिए, यह टिप्पणियों और यहां तक कि शाब्दिकों के मूलांक को पकड़ता है ताकि उन्हें सही तरीके से पुनर्जीवित किया जा सके)। फाउंडेशन, डीएमएस, में बहुत सारी मशीनरी हैं, जो कस्टम विश्लेषण का समर्थन करने के लिए बनाई गई हैं: एएसटी और प्रतीक तालिका निर्माण, विशेषता व्याकरण, डेटा प्रवाह ढांचे, एएसटी स्तर पर डेटा प्रवाह विश्लेषण और डेटा प्रवाह विश्लेषण, बीडीडी प्रबंधन, स्रोत पैटर्न मैच, सोर्स-टू -सूत्र परिवर्तन क्लैंग और ईडीजी एएसटी और प्रतीक तालिका निर्माण प्रदान करता है; क्लैंग (लेकिन मुझे नहीं लगता कि EDG) में इसका प्रवाह विश्लेषण है (LLVM स्तर पर), एएसटी स्तर (AFAIK) पर प्रवाह विश्लेषण नहीं। न तो क्लैंग और न ही ईडीजी स्रोत पैटर्न / परिवर्तन क्षमता प्रदान करते हैं, इसलिए जो बेहतर है वह आपके दीर्घकालिक कार्यों पर निर्भर करता है। अन्य विकल्पों की तुलना में, हमारा C ++ फ्रंट एंड ओपन सोर्स या फ्री नहीं है; एक अनुसंधान लाइसेंस प्राप्त कर सकते हैं।