मैं अपने प्रोजेक्ट में flex
और bison
उपयोग करने के लिए एक फ़ाइल संरचना के लिए एक पार्सर कोड उत्पन्न करने के लिए कोशिश कर रहा हूँ। मुख्य प्रोग्रामिंग भाषा सी ++ है और प्रोजेक्ट एक ओओ डिज़ाइन पर है जो मुख्य रूप से समानांतर में चल रहा है।फ्लेक्स ++ BisonC++ पार्सर
मैंने सुना है कि flex
और bison
जेनरेट किए गए पार्सर्स सी कोड हैं और वे पुनर्विक्रेता नहीं हैं। गुगलिंग, मुझे flex++
और bisonc++
मिला। दुर्भाग्य से शुरू करने के लिए कोई आसान ट्यूटोरियल नहीं है। अधिकांश उदाहरण bison/flex
पर आधारित हैं। कुछ लोगों ने किसी भी तरह अपने सी ++ कोड में bison/flex
पार्सर्स को एकीकृत किया। उन्हें "मुश्किल" होना चाहिए ...
flex++
और bisonc++
का दस्तावेज़ीकरण मेरी मदद नहीं करता है। ट्यूटोरियल और उदाहरण, वे सभी stdin से इनपुट प्राप्त करते हैं और stdout पर कुछ संदेश मुद्रित करते हैं।
मैं अपने पार्सर में इन सुविधाओं की जरूरत है:
- पार्सर एक सी ++ वर्ग, सामान्य तरीके से (एक शीर्षक और एक cpp फ़ाइल)
- पार्सर से डेटा प्राप्त में परिभाषित किया जाना चाहिए या तो एक
std::string
याstd::stringstream
या एक शून्य-समाप्तchar*
।
मैं बहुत उलझन में लग रहा है। क्या मुझे flex++/bisonc++
या flex/bison
का उपयोग करना चाहिए? और यह कैसे करें, शर्तों से संतुष्ट?
मैं flexC++ संकलित भी नहीं कर सकता! बस डाउनलोड स्रोत कोड। कोई मेकफ़ाइल नहीं, कोई सेमीक नहीं! –
@ sorush-r एक लिनक्स पैकेज है: http://packages.debian.org/sid/flexc++ आपको मेकफ़ाइल क्यों चाहिए? बस हेडर शामिल करें और अपने पर्यावरण से बनाएं। – TemplateRex
मैंने पहले 'आईसीएमके' के बारे में नहीं सुना था। ऐसा लगता है कि 'flexC++' संकलित करने के लिए प्रयुक्त बिल्ड सिस्टम है। धन्यवाद –