सी ++ 0x स्टाइल कच्चे स्ट्रिंग अक्षरों का समर्थन करने के लिए लेक्सर और पार्सर (उदाहरण: फ्लेक्स और बाइसन) के एक कामकाजी सेट को परिभाषित करने के लिए कैसे करें?सी ++ 0x कच्चे स्ट्रिंग शाब्दिक को कैसे कार्यान्वित करें?
जैसा कि आप पहले ही जानते हैं, सी ++ 0x में नए स्ट्रिंग अक्षर बहुत ही लचीले तरीके से व्यक्त किए जा सकते हैं।
R"<delim>...<delim>";
- इस कोड में <delim>
बहुत कुछ हो सकता है और कोई भी बचने के पात्रों की आवश्यकता नहीं है।
R";***************************(
; TINY BASIC FOR INTEL 8080
; VERSION 2.0
; BY LI-CHEN WANG
; MODIFIED AND TRANSLATED
; TO INTEL MNEMONICS
; BY ROGER RAUSKOLB
; 10 OCTOBER, 1976
; @COPYLEFT
; ALL WRONGS RESERVED )
;***************************";
अधिक:
R"(I love those who yearn for the impossible. (Von Goethe, "Faust"))";
पाठ के ब्लॉक बस एक ही पात्रों के बराबर घटनाओं का उपयोग कर परिभाषित किया जा सकता:
कोष्ठकों किसी भी तरह का स्ट्रिंग के अंत परिसीमित करने के लिए इस्तेमाल किया जा सकता जानकारी here (विकिपीडिया) और here (एटी) मिल सकती है।
मैं इस शानदार सुविधा का उपयोग उस भाषा में करना चाहता हूं जो मैं अभी विकसित कर रहा हूं।
तो, मैं परिणाम प्राप्त करने के लिए उचित टोकननाइज़र और वाक्यविन्यास विश्लेषक को कैसे परिभाषित कर सकता हूं?
आपके उत्तरों के लिए अग्रिम धन्यवाद!
मुझे लगता है कि आपका दूसरा उदाहरण वैध कच्चे शाब्दिक नहीं है, इसमें ब्रांड्स (आर "(; *** ...") होना चाहिए। – Motti
नहीं, नहीं ... अनुक्रम; *** ... है स्ट्रिंग का एक डिलीमीटर; कच्ची स्ट्रिंग सामग्री कोष्ठक के बाद शुरू होता है। – Rizo
यहां विकिपीडिया: आर "डिलीमीटर (स्ट्रिंग डेटा \ स्टफ") डिलीमीटर से उदाहरण है। – Rizo