हम कक्षा और वस्तु संबंधों के चित्र बनाने के लिए किसी अन्य उपकरण को खिलाने के लिए पर्याप्त जानकारी प्राप्त करने के लिए हमारे विशाल सी ++ स्रोत पेड़ को पार्स करना चाहते हैं, चीजों के समग्र संगठन को समझें आदिपायथन में सी ++ स्रोत का विश्लेषण कैसे करें?
मेरी सबसे अच्छी कोशिश अब तक एक पायथन लिपि है जो सभी .cpp और .h फ़ाइलों को स्कैन करता है, कक्षा घोषणाओं, विधियों इत्यादि का पता लगाने के लिए रेगेक्स खोज चलाता है। हमें प्रत्येक विवरण, या कुछ भारी यूएमएल आरेख जनरेटर को पकड़ने के लिए एक पूर्ण उड़ा विश्लेषक की आवश्यकता नहीं है - इसमें बहुत कुछ है विस्तार हम अनदेखा करना चाहते हैं और हम नए प्रकार के आरेखों का आविष्कार कर रहे हैं। स्क्रिप्ट सॉर्टा काम करता है, लेकिन भगवान द्वारा यह सच है: सी ++ पार्स करना मुश्किल है!
तो मुझे आश्चर्य है कि हमारे स्रोतों से जो जानकारी हम चाहते हैं उसे निकालने के लिए कौन से टूल्स मौजूद हैं? मैं एक भाषा विशेषज्ञ नहीं हूं, और एक सीधी सीखने की वक्र के साथ कुछ नहीं चाहता। कुछ हम कम-नीले नीले रंग के कॉलर प्रोग्रामर ग्रंट्स का उपयोग कर सकते हैं: पी
पायथन को यहां मानक भाषाओं में से एक के रूप में प्राथमिकता दी जाती है, लेकिन यह आवश्यक नहीं है।
सी ++ पार्स करने के लिए कुख्यात रूप से कठिन है, और आपको आमतौर पर ऐसा करने के लिए कुछ सुंदर हेवीवेट उपकरण की आवश्यकता होती है (उदाहरण के लिए जीएलआर पार्सर्स)। अगर मैं सी ++ पार्सिंग का अच्छा अनुमान लगाता हूं तो कुछ आश्चर्यजनक पार्सर्स का उपयोग नहीं किया गया तो मुझे आश्चर्य होगा। – templatetypedef
क्या आपने मानक कंपाइलर-कंपाइलर देखा है? लक्षित भाषा का वर्णन करने के लिए ये एक विशेष भाषा (कुछ प्रकार के विस्तारित बैकस-नौर फॉर्म - कॉलेज को याद करते हैं?) का उपयोग करते हैं। –
क्या आपने जीसीसी-एक्सएमएल (http://www.gccxml.org) का उपयोग करने पर विचार किया और फिर परिणामी एक्सएमएल फाइल की प्रसंस्करण के लिए पायथन? – 6502