मज़बूती से ऐसा करने के लिए, आप एएसटी पार्सर का उत्पादन से सी या सी ++ कोड पार्स, और फिर हड़पने के लिए कार्यशील परिभाषाएँ आवश्यकता होगी।
सी पार्स करने के लिए काफी आसान है। pavpanchekha उल्लेख के रूप में, पार्सर प्लाई एक सी पार्सर के साथ आता है, और निम्न प्रासंगिक परियोजनाओं बनाने के लिए इस्तेमाल किया गया है:
पार्सिंग सी ++ कोड अधिक जटिल है .. "Is there a good Python library that can parse C++" सहायता की होनी चाहिए:
सी ++ पार्स करने के लिए कुख्यात रूप से कठिन है। अधिकांश लोग जो इसे करने का प्रयास करते हैं, वे एक कंपाइलर को अलग करते हैं। असल में यह (भाग में) क्यों एलएलवीएम शुरू हुआ: ऐप्पल को एक तरह से जरूरी था कि वे एक्सकोड में उपयोग के लिए सी ++ का विश्लेषण कर सकें, जिस तरह से संकलक ने इसे पार्स किया था।
यही कारण है कि GCC_XML जैसी परियोजनाएं हैं जिन्हें आप एक पायथन xml लाइब्रेरी के साथ जोड़ सकते हैं।
अंत में, यदि आपके कोड बिल्कुल मजबूत होने की जरूरत नहीं है, आप कोड हालांकि एक कोड-reformatter indent (सी कोड के लिए) जैसी चीजों के बाहर भी यह स्पष्ट करता चला सकते हैं, तो मैच के लिए रेगुलर एक्सप्रेशन का उपयोग समारोह परिभाषा। हां यह एक बुरा, हैकी, त्रुटि-प्रवण विचार है, और आपको शायद मल्टीलाइन टिप्पणियों में फ़ंक्शन परिभाषाएं मिलेंगी और इस तरह, लेकिन यह काफी अच्छी तरह से काम कर सकती है ..
क्या आप जानते हैं कि फ़ंक्शन की पहचान कैसे करें और आप कैसे कार्यान्वित करना चाहते हैं, या आप पूछ रहे हैं कि सी फ़ंक्शन डीफ़ की पहचान कैसे करें? – foosion