Windows के लिए केवल, और नहीं FOSS लेकिन आप ने कहा, "किसी भी दिशा ..."
हमारी अपनी C Front End सी स्रोत कोड के लिए आवेदन कर सकते हैं परिवर्तनों के साथ DMS Software Reengineering Toolkit"। डीएमएस को कस्टम, जटिल विश्वसनीय रूपांतरणों को करने के लिए कॉन्फ़िगर किया जा सकता है, हालांकि कॉन्फ़िगरेशन केवल "कमांडर फ्रैज़ल द्वारा डूबाज़" जैसे कमांड टाइप करने जितना आसान नहीं है।
प्रिंसिपल स्टम्बलिंग ब्लॉक में से एक अभी भी प्रीप्रोसेसर है। डीएमएस कोड को बदल सकता है जिसमें विशिष्ट स्थानों में प्रीप्रोसेसर निर्देश होते हैं (बयान के सिर, घोषणाओं, अगर/लूप के सिर, घोषणाओं आदि के दौरान), लेकिन अन्य "असंगठित सशर्त" इसे परेशानी देते हैं। आप अस्तित्व से प्रीप्रोसेसर निर्देशों का विस्तार करके, या अधिक अपमानजनक रूप से विस्तार करके डीएमएस चला सकते हैं, जो इसे परेशानी देते हैं, लेकिन अधिकतर लोग इसे पसंद नहीं करते हैं क्योंकि वे अपने प्रीप्रोसेसर निर्देशों को रखना पसंद करते हैं। तो यह सही नहीं है।
[एक अन्य जवाब ने कंसिनेल का सुझाव दिया, जो मेरे दृष्टिकोण से बहुत अच्छा दिखता है। जहां तक मुझे पता है, यह प्रीप्रोसेसर निर्देशों को बिल्कुल संभाल नहीं करता है; मैं गलत हो सकता हूं और यह कुछ मामलों को संभाल सकता है क्योंकि डीएमएस करता है, लेकिन मुझे यकीन है कि यह सभी मामलों को संभाल नहीं सकता है]।
आप खुद को रोल करने पर विचार नहीं करना चाहते हैं। एक रूपांतरण/रीफैक्टरिंग टूल बनाना आपके अनुमान लगाए जाने से कहीं अधिक कठिन है। आपको (सी) ब्याज की बोली के लिए पूर्ण, सटीक पार्सर्स की आवश्यकता है और केवल सही होने के लिए यह बहुत मुश्किल है। आपको प्रीप्रोसेसर, प्रतीक टेबल, प्रवाह विश्लेषण, परिवर्तन, कोड पुनर्जन्म मशीनरी की आवश्यकता है ... इस सामान को बनाने और सही होने के लिए कई वर्षों का प्रयास लगता है। मेरा विश्वास करो, वहां गया, ऐसा किया।
स्रोत
2012-02-22 23:33:58
क्या आप भी emacs का विरोध कर रहे हैं? –
हां, मैं 'emacs' पर' vim' चुनूंगा ... लेकिन दोनों को जुनून के साथ नफरत है। मैं काम पर एकमात्र sysadmin हूं जो कहता है "न तो", जब पूछा गया कि मैं कौन सा पसंद करता हूं। मैं सर्वर पर 'नैनो' का उपयोग करता हूं, और कॉमोडो मेरी स्थानीय मशीन पर संपादित करता हूं। यह कैथर्टिक रहा है, फिर कभी 'विम' को छूना नहीं। – TechZilla
सी के लिए कोड रिफैक्टरिंग? Coccinelle: http: //coccinelle.lip6।fr/ – ninjalj