Как определить рабочий набор лексера и парсера ( examplesli gratia: flex and bison) для поддержки необработанных строковых литералов в стиле C ++ 0x?
Как вы, возможно, уже знаете, новые строковые литералы в C ++ 0x могут быть выражены очень гибко.
R"<delim>...<delim>";
- в этом коде <delim>
может быть практически всем, а также не требуются escape-символы.
Для ограничения конца строки можно использовать круглые скобки любого типа:
R"(I love those who yearn for the impossible. (Von Goethe, "Faust"))";
Блоки текста могут быть просто определены с использованием одинаковых вхождений одинаковых символов:
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 )
;***************************";
Более подробную информацию можно найти здесь (Википедия) и здесь (att).
Я хотел быиспользовать эту фантастическую функцию на языке, который я сейчас разрабатываю.
Итак, как мне определить правильный токенизатор и синтаксический анализатор для достижения результата?
Заранее спасибо за ваши ответы!