# file : unit-tests/cc/lexer/raw-string-literal.test # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file # Test raw string literals. # : normal : $* <<EOI >>EOO R"()" R"(ab)" R"(a"b)" R"(a)b)" R"%(a%)b)%" R"X(a b)X" R"X(a\ b)X" EOI <string literal> <string literal> <string literal> <string literal> <string literal> <string literal> <string literal> EOO : prefix : $* <<EOI >>EOO LR"(ab)" UR"(ab)" uR"(ab)" u8R"(ab)" EOI <string literal> <string literal> <string literal> <string literal> EOO : suffix : $* <<EOI >>EOO R"(ab)"x R"(ab)"_X123 EOI <string literal> <string literal> EOO : escape : $* <<EOI >>EOO R"(\)" EOI <string literal> EOO : invalid-no-paren : $* <'R"a"' 2>>EOE != 0 stdin:1:2: error: invalid raw string literal EOE : invalid-paren : $* <'R")()("' 2>>EOE != 0 stdin:1:2: error: invalid raw string literal EOE : invalid-unterminated-paren : $* <'R"(abc"' 2>>EOE != 0 stdin:1:2: error: invalid raw string literal EOE : invalid-unterminated-delimiter : $* <'R"X(abc)"' 2>>EOE != 0 stdin:1:2: error: invalid raw string literal EOE : invalid-unterminated-quote : $* <'R"X(abc)X' 2>>EOE != 0 stdin:1:2: error: invalid raw string literal EOE