diff options
Diffstat (limited to 'src/code.l')
-rw-r--r-- | src/code.l | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -983,7 +983,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName } } NamespaceDef *nd = getResolvedNamespace(className); - if (nd) + if (nd && nd->isLinkableInProject()) { g_theCallContext.setScope(nd); addToSearchIndex(className); @@ -1324,7 +1324,9 @@ static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName) //CodeClassDef *ccd=0; ClassDef *ccd=0; QCString locScope=g_classScope; - QCString locFunc=removeRedundantWhiteSpace(funcName); + QString qq=removeRedundantWhiteSpace(funcName); + if (g_insidePHP && qq.startsWith("self::")) qq=qq.mid(4); + QCString locFunc(qq.data()); QCString funcScope; QCString funcWithScope=locFunc; QCString funcWithFullScope=locFunc; @@ -2170,8 +2172,12 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" g_code->codify(yytext); endFontClass(); } +<ClassName>{ID}("."{ID})* | <ClassName>{ID}("::"{ID})* { - g_curClassName=yytext; + if(g_insideCS) + g_curClassName=substitute(yytext,".","::"); + else + g_curClassName=yytext; addType(); if (g_curClassName=="alignas") { @@ -2596,7 +2602,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" generatePHPVariableLink(*g_code,yytext); g_name+=yytext+7; } -<Body,TemplCast>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A<T> *pt; +<Body,TemplCast>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>\(]*">"("::"{ID})*/{B}* { // A<T> *pt; int i=QCString(yytext).find('<'); QCString kw = QCString(yytext).left(i).stripWhiteSpace(); if (kw.right(5)=="_cast" && YY_START==Body) @@ -2627,6 +2633,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" addType(); g_name=varname; } +<Body>{SCOPETNAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"/{BN}*"(" | <Body>{SCOPETNAME}/{BN}*"(" { // a() or c::a() or t<A,B>::a() or A\B\foo() addType(); generateFunctionLink(*g_code,yytext); |