---input--- import std.stdio; void main() { // Nesting delimited strings auto a = q"{foo " {bar} baz}"; auto b = q"[foo [bar] " baz]"; auto c = q"(foo " (bar) baz)"; auto d = q" " baz>"; // Non-nesting delimited strings auto e = q"/foo " bar/"; auto f = q"-Another " string-"; // "heredoc" strings auto g = q"FOO This is a string! FOO"; // Token strings (only the q{} should be highlighted as a string) auto h = q{ int i; void foo() { writefln("Hello, world!"); } }; } ---tokens--- 'import' Keyword ' ' Text 'std' Name '.' Punctuation 'stdio' Name ';' Punctuation '\n' Text '\n' Text 'void' Keyword.Type ' ' Text 'main' Name '(' Punctuation ')' Punctuation ' ' Text '{' Punctuation '\n' Text ' ' Text '// Nesting delimited strings\n' Comment.Single ' ' Text 'auto' Keyword ' ' Text 'a' Name ' ' Text '=' Punctuation ' ' Text 'q"{' Literal.String 'foo " ' Literal.String '{' Literal.String 'bar' Literal.String '}' Literal.String ' baz' Literal.String '}"' Literal.String ';' Punctuation '\n' Text ' ' Text 'auto' Keyword ' ' Text 'b' Name ' ' Text '=' Punctuation ' ' Text 'q"[' Literal.String 'foo ' Literal.String '[' Literal.String 'bar' Literal.String ']' Literal.String ' " baz' Literal.String ']"' Literal.String ';' Punctuation '\n' Text ' ' Text 'auto' Keyword ' ' Text 'c' Name ' ' Text '=' Punctuation ' ' Text 'q"(' Literal.String 'foo " ' Literal.String '(' Literal.String 'bar' Literal.String ')' Literal.String ' baz' Literal.String ')"' Literal.String ';' Punctuation '\n' Text ' ' Text 'auto' Keyword ' ' Text 'd' Name ' ' Text '=' Punctuation ' ' Text 'q"<' Literal.String 'foo ' Literal.String '<' Literal.String 'bar' Literal.String '>' Literal.String ' " baz' Literal.String '>"' Literal.String ';' Punctuation '\n' Text ' ' Text '// Non-nesting delimited strings\n' Comment.Single ' ' Text 'auto' Keyword ' ' Text 'e' Name ' ' Text '=' Punctuation ' ' Text 'q"/foo " bar/"' Literal.String ';' Punctuation '\n' Text ' ' Text 'auto' Keyword ' ' Text 'f' Name ' ' Text '=' Punctuation ' ' Text 'q"-Another " string-"' Literal.String ';' Punctuation '\n' Text ' ' Text '// "heredoc" strings\n' Comment.Single ' ' Text 'auto' Keyword ' ' Text 'g' Name ' ' Text '=' Punctuation ' ' Text 'q"FOO\n This is a string!\nFOO"' Literal.String ';' Punctuation '\n' Text ' ' Text '// Token strings (only the q{} should be highlighted as a string)\n' Comment.Single ' ' Text 'auto' Keyword ' ' Text 'h' Name ' ' Text '=' Punctuation ' ' Text 'q{' Literal.String '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'i' Name ';' Punctuation '\n' Text ' ' Text 'void' Keyword.Type ' ' Text 'foo' Name '(' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'writefln' Name '(' Punctuation '"Hello, world!"' Literal.String ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Literal.String ';' Punctuation '\n' Text '}' Punctuation '\n' Text