@@ -141,6 +141,7 @@ struct commentcnvYY_state
141141 std::vector<std::string> expandedAliases;
142142 QCString snippetFileName;
143143 QCString snippetName;
144+ QCString delimiter;
144145};
145146
146147[[maybe_unused]] static const char *stateToString (int state);
@@ -190,6 +191,7 @@ MAILADDR ("mailto:")?[a-z_A-Z0-9\x80-\xff.+-]+"@"[a-z_A-Z0-9\x80-\xff-]+("."[a
190191%x IncludeDoc
191192%x SnippetDoc
192193%x SnippetDocTag
194+ %x RawString
193195%x IncludeFile
194196
195197CMD [\\@]
@@ -220,6 +222,9 @@ FLOAT_HEXADECIMAL {HEX_FP1}|{HEX_FP2}
220222FLOAT_NUMBER {FLOAT_DECIMAL}|{FLOAT_HEXADECIMAL}
221223NUMBER {INTEGER_NUMBER}|{FLOAT_NUMBER}
222224
225+ RAWBEGIN (u|U|L|u8)?R\" [^ \t \(\) \\ ]{0,16}"("
226+ RAWEND ")"[^ \t \(\) \\ ]{0,16}\"
227+
223228FILEICHAR [a-z_A-Z0-9\x80 -\xFF\\ :\\ \/\-\+ =&#@]
224229FILEECHAR [a-z_A-Z0-9\x80 -\xFF \-\+ =&#@]
225230FILECHARS {FILEICHAR}*{FILEECHAR}+
@@ -256,6 +261,11 @@ SLASHopt [/]*
256261 if (yyextra->lang!=SrcLangExt::Cpp) REJECT;
257262 copyToOutput(yyscanner,yytext,yyleng);
258263 }
264+ <Scan>{RAWBEGIN} {
265+ if (yyextra->lang!=SrcLangExt::Cpp) REJECT;
266+ copyToOutput(yyscanner,yytext,yyleng);
267+ BEGIN(RawString);
268+ }
259269<Scan>[^"' !\/\n\\#,\-=; \t@$]* { /* eat anything that is not " / , or \n */
260270 copyToOutput (yyscanner,yytext,yyleng);
261271 }
@@ -552,6 +562,17 @@ SLASHopt [/]*
552562 BEGIN (CComment);
553563 }
554564 }
565+ <RawString>{RAWEND} {
566+ copyToOutput (yyscanner,yytext,yyleng);
567+ if (extractEndRawStringDelimiter (yytext)==yyextra->delimiter )
568+ {
569+ BEGIN (Scan);
570+ }
571+ }
572+ <RawString>[^)\n]+ { copyToOutput (yyscanner,yytext,yyleng); }
573+ <RawString>\n { copyToOutput (yyscanner,yytext,yyleng); }
574+ <RawString>. { copyToOutput (yyscanner,yytext,yyleng); }
575+
555576<CComment,CNComment,ReadLine,IncludeFile>{MAILADDR} |
556577<CComment,CNComment,ReadLine,IncludeFile>
" <" {MAILADDR}
" >" {
// Mail address, to prevent seeing e.g [email protected] as start of a code block557578 copyToOutput (yyscanner,yytext,yyleng);
0 commit comments