C++ 0x 스타일의 원시 문자열 리터럴을 지원하기 위해 lexer 및 구문 분석기 (예시 : flex 및 bison)의 작업 집합을 정의하는 방법은 무엇입니까?C++ 0x 원시 문자열 리터럴을 구현하는 방법은 무엇입니까?
C++ 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 (att)입니다.
나는 지금 개발중인 언어로이 환상적인 기능을 사용하고 싶습니다.
그렇다면 결과를 얻기 위해 적절한 토크 나이저와 구문 분석기를 어떻게 정의 할 수 있습니까?
미리 답변 해 주셔서 감사합니다.
두 번째 예제는 괄호 (R "(; *** *** ...")을 포함해야하는 유효한 원시 리터럴이 아닌 것 같습니다.) – Motti
아니요, 아니요 ... 시퀀스 ... *** ... is 문자열의 delimeter, 문자열의 괄호 안의 내용은 괄호 뒤에 나온다. – Rizo
위키 피 디아의 예제는 다음과 같다 : R "구분자 (문자열 데이터 \ 항목)"구분자. – Rizo