Skip to content

Commit fe66145

Browse files
committed
Avoid code duplication and make the keyword matching more robust
1 parent 661a537 commit fe66145

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/code.l

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1806,6 +1806,14 @@ static bool skipLanguageSpecificKeyword(const QCString &kw)
18061806
return g_insideCpp && (kw == "remove" || kw == "set" || kw == "get");
18071807
}
18081808

1809+
static bool isCastKeyword(const QCString &s)
1810+
{
1811+
int i=s.find('<');
1812+
if (i==-1) return FALSE;
1813+
QCString kw = s.left(i).stripWhiteSpace();
1814+
return kw=="const_cast" || kw=="static_cast" || kw=="dynamic_cast" || kw=="reinterpret_cast";
1815+
}
1816+
18091817
/* -----------------------------------------------------------------
18101818
*/
18111819
#undef YY_INPUT
@@ -2619,9 +2627,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
26192627
g_name+=yytext+7;
26202628
}
26212629
<Body,TemplCast>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>\(]*">"("::"{ID})*/{B}* { // A<T> *pt;
2622-
int i=QCString(yytext).find('<');
2623-
QCString kw = QCString(yytext).left(i).stripWhiteSpace();
2624-
if (kw.right(5)=="_cast" && YY_START==Body)
2630+
if (isCastKeyword(yytext) && YY_START==Body)
26252631
{
26262632
REJECT;
26272633
}
@@ -2651,9 +2657,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
26512657
}
26522658
<Body>{SCOPETNAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"/{BN}*"(" |
26532659
<Body>{SCOPETNAME}/{BN}*"(" { // a() or c::a() or t<A,B>::a() or A\B\foo()
2654-
int i=QCString(yytext).find('<');
2655-
QCString kw = QCString(yytext).left(i).stripWhiteSpace();
2656-
if (kw.right(5)=="_cast" && YY_START==Body)
2660+
if (isCastKeyword(yytext))
26572661
{
26582662
REJECT;
26592663
}
@@ -3068,9 +3072,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\"
30683072
endFontClass();
30693073
}
30703074
<MemberCall2,FuncCall>{ID}(({B}*"<"[^\n\[\](){}<>]*">")?({B}*"::"{B}*{ID})?)* {
3071-
int i=QCString(yytext).find('<');
3072-
QCString kw = QCString(yytext).left(i).stripWhiteSpace();
3073-
if (kw.right(5)=="_cast")
3075+
if (isCastKeyword(yytext))
30743076
{
30753077
REJECT;
30763078
}

0 commit comments

Comments
 (0)