मैं एक सी या सी ++ स्रोत फ़ाइल से निकालने एक परिभाषा या घोषणा (typedef, संरचना, गणन, अस्थिर या समारोह) के लिए एक कमांड लाइन उपकरण इच्छा कर रहा हूँ। इसके अलावा के लिए एक रास्ता की जगह एक मौजूदा परिभाषा/घोषणा काम होगा (क उपयोगकर्ताओं द्वारा जमा किए स्क्रिप्ट के द्वारा निकाली गई परिभाषा बदलने के बाद)। क्या ऐसा सामान्य उपकरण उपलब्ध है, या इस तरह के उपकरण के कुछ बेहद करीब अनुमान है?क्या सी या सी ++ फ़ाइल से टाइपपीफ, संरचना, गणना, परिवर्तनीय, फ़ंक्शन निकालने के लिए कमांड लाइन उपकरण है?
लिपि की और हुक-अप करने के लिए उपयोगकर्ता बनाया स्क्रिप्ट या कार्यक्रमों के साथ की क्षमता है, यहाँ महत्व का है, हालांकि मैं भी जीयूआई कार्यक्रमों की अकादमिक उत्सुक हूँ। यूनिक्स/लिनक्स शिविर के लिए ओपन सोर्स सॉल्यूशंस को प्राथमिकता दी जाती है (हालांकि मैं विंडोज़ और ओएस एक्स टूल्स का उत्सुक हूं)। प्राथमिक भाषा हित सी और सी ++ हैं लेकिन अधिक सामान्य समाधान भी बेहतर होगा (मुझे लगता है कि हमें प्रोग्राम स्रोत फ़ाइल में परिभाषा को खोजने, निकालने और बदलने के लिए सुपर सटीक पार्सिंग क्षमताओं की आवश्यकता नहीं है)।
नमूना उपयोग मामले (अतिरिक्त - जिज्ञासु मन के लिए):
- गहरा नीडिंत
struct
और चर (सरणी) इन प्रकार के initializations, मान लीजिए द्वारा एक struct परिभाषा को बदलने की जरूरत है को देखते हुए मैन्युअल श्रम से उत्पन्न त्रुटियों को पेश किए बिना फ़ील्ड को जोड़ना या पुन: व्यवस्थित करना या परिवर्तनीय/सरणी परिभाषाओं को अधिक पठनीय प्रारूप में फिर से लिखना। यह पुरानी शुरुआतओं को निकालने के लिए नए प्रारंभिकताओं को लिखने के लिए पुरानी प्रारंभिकताओं को निकालने के बाद, एक स्क्रिप्ट/प्रोग्राम का उपयोग करके काम करेगा। एक परिभाषा निकालने - एक कोड ब्राउज़िंग उपकरण को लागू करने के लिए
- ।
- सजावटी कोड पीढ़ी (जैसे लॉगिंग समारोह प्रविष्टियों/रिटर्न)।
- पटकथा कोड संरचना (जैसे यह निकालने और उस चीज़ और बिना परिवर्तन अलग स्थान पर रखा - संस्करण नियंत्रण टिप्पणी प्रतिबद्ध आदेश दस्तावेज़ यह स्पष्ट और निरीक्षण कि कुछ भी नहीं बदला बनाने के लिए यह कार्रवाई करने के सकता है)।
वैकल्पिक समस्या: अगर परिभाषा के स्थान बताने के लिए एक उपकरण है (आरंभ और समाप्ति लाइन पर्याप्त होगा - हम भी मान सकता है सभी परिभाषाओं/घोषणाओं हम में रुचि रखते हैं अपने स्वयं के कतार में हैं) है, तो यह एक बस उंगली निपुणता का प्रयोग करते
- निकालने परिभाषाओं के लिए एक प्रोग्राम लिखने के लिए करने के लिए होता है,
- की जगह परिभाषाओं, या यहाँ तक
एक परिभाषा निकालने, एक कार्यक्रम तकनीक और नवीनता चलाने
- को कमांड लाइन विकल्प (या एक संपादक) द्वारा fied
stdin
से वांछित निकाले परिभाषाओं प्राप्त (या एक अस्थायी फ़ाइल से), - परिवर्तन (संपादन) करते हैं, और
- उत्पादन नई परिभाषाएँ
stdout
(या उन्हें दिए गए अस्थायी फ़ाइल में सहेजें)
निष्पादन कार्यक्रम द्वारा प्रतिस्थापित किया जाएगा।
- को कमांड लाइन विकल्प (या एक संपादक) द्वारा fied
तो प्रमुख, अधिक चुनौतीपूर्ण समस्या परिभाषा की शुरुआत और अंत रेखा को पाई जाएगी।
टैग के बारे में ध्यान दें:code-generation
से अधिक सटीक टैग code-transformation
होगा, लेकिन यह मौजूद नहीं है।
आपको लगता है सी। सी/सी ++ नामक कोई भाषा नहीं है। – aschepler
सी/सी ++ से मेरा मतलब सी या सी ++ है। मैं मुख्य रूप से सी में रूचि रखता हूं (मैं सक्रिय रूप से विरासत कोड का उपयोग कर रहा हूं और उससे निपट रहा हूं), लेकिन सी ++ भी ब्याज की है (यदि कोई विकल्प दिया गया है तो मैं स्वच्छ तालिका परियोजनाओं के लिए उपयोग करना पसंद करूंगा)। वर्णित कार्यों के लिए आपको भाषा वाक्यविन्यास की बहुत अच्छी समझ की आवश्यकता नहीं है, मुझे लगता है, इसलिए सी और सी ++ के बीच अंतर इतना महत्वपूर्ण नहीं लगता है। – FooF
मैं टैग 'C++' का भी उपयोग करता हूं लेकिन टैग की अधिकतम संख्या 5 है। कोई टैग 'कोड-निष्कर्षण' या 'कोड-रूपांतरण' नहीं है ... और किसी भी तरह से टैग की अधिकतम संख्या पहले ही पहुंच चुकी है। :-) – FooF