From 5a25a7f33af4a53462a6ddea9e8b82d0d9f23280 Mon Sep 17 00:00:00 2001 From: albert-github Date: Mon, 23 Sep 2019 13:27:51 +0200 Subject: Bug 340202 - @code: static_cast, const_cast, etc C++ keywords The `*_cast` had already been introduced, but there were some other places that needed the "REJECT" as well. Also the cast was missing a whitesace between the cast name and the `<`. Tested also against he doxygen internal documentation. --- src/code.l | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/code.l b/src/code.l index 4998705..f8a062f 100644 --- a/src/code.l +++ b/src/code.l @@ -2606,7 +2606,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" [*^]* { codifyLines(yytext); } -{CASTKW}"<" { // static_cast( +{CASTKW}{B}*"<" { // static_cast( startFontClass("keyword"); codifyLines(yytext); endFontClass(); @@ -2651,6 +2651,12 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" } {SCOPETNAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"/{BN}*"(" | {SCOPETNAME}/{BN}*"(" { // a() or c::a() or t::a() or A\B\foo() + int i=QCString(yytext).find('<'); + QCString kw = QCString(yytext).left(i).stripWhiteSpace(); + if (kw.right(5)=="_cast" && YY_START==Body) + { + REJECT; + } addType(); generateFunctionLink(*g_code,yytext); g_bracketCount=0; @@ -3062,6 +3068,12 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" endFontClass(); } {ID}(({B}*"<"[^\n\[\](){}<>]*">")?({B}*"::"{B}*{ID})?)* { + int i=QCString(yytext).find('<'); + QCString kw = QCString(yytext).left(i).stripWhiteSpace(); + if (kw.right(5)=="_cast") + { + REJECT; + } addParmType(); g_parmName=yytext; generateClassOrGlobalLink(*g_code,yytext,!g_insideBody); -- cgit v0.12