diff options
Diffstat (limited to 'src/commentscan.l')
-rw-r--r-- | src/commentscan.l | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/commentscan.l b/src/commentscan.l index 8d0e340..2dd2323 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -807,7 +807,7 @@ LC "\\"{B}*"\n" NW [^a-z_A-Z0-9] FILESCHAR [a-z_A-Z0-9\x80-\xFF\\:\\\/\-\+] FILEECHAR [a-z_A-Z0-9\x80-\xFF\-\+] -FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]+"\"") +FILE ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|("\""[^\n\"]*"\"") ID "$"?[a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF]* LABELID [a-z_A-Z\x80-\xFF][a-z_A-Z0-9\x80-\xFF\-]* SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?) @@ -920,6 +920,10 @@ RCSTAG "$"{ID}":"[^\n$]+"$" } <Comment>"</remarks>" { // end of a brief or detailed description } +<Comment>{RCSTAG} { // RCS tag which end a brief description + setOutput(OutputDoc); + REJECT; + } <Comment>"<!--" { BEGIN(HtmlComment); } @@ -1192,8 +1196,8 @@ RCSTAG "$"{ID}":"[^\n$]+"$" <ClassDocArg1,CategoryDocArg1>. { // ignore other stuff } -<ClassDocArg2>{FILE} { // second argument; include file - current->includeFile = stripQuotes(yytext); +<ClassDocArg2>{FILE}|"<>" { // second argument; include file + current->includeFile = yytext; BEGIN( ClassDocArg3 ); } <ClassDocArg2>{LC} { // line continuation @@ -1208,7 +1212,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$" <ClassDocArg2>. { // ignore other stuff } -<ClassDocArg3>[<]?{FILE}[>]? { // third argument; include file name +<ClassDocArg3>[<]?{FILE}?[>]? { // third argument; include file name current->includeName = yytext; BEGIN( Comment ); } @@ -2515,9 +2519,10 @@ void groupEnterCompound(const char *fileName,int line,const char *name) { g_compoundName=fileName; } + //printf("groupEnterCompound(%s)\n",name); } -void groupLeaveCompound(const char *,int,const char *) +void groupLeaveCompound(const char *,int,const char * /*name*/) { //printf("groupLeaveCompound(%s)\n",name); //if (g_memberGroupId!=DOX_NOGROUP) @@ -2538,7 +2543,8 @@ static int findExistingGroup(int &groupId,const MemberGroupInfo *info) for (di.toFirst();(mi=di.current());++di) { if (g_compoundName==mi->compoundName && // same file or scope - stricmp(mi->header,info->header)==0 // same header + !mi->header.isEmpty() && // not a nameless group + stricmp(mi->header,info->header)==0 // same header name ) { //printf("Found it!\n"); @@ -2551,14 +2557,15 @@ static int findExistingGroup(int &groupId,const MemberGroupInfo *info) void openGroup(Entry *e,const char *,int) { + //printf("==> openGroup(name=%s,sec=%x) g_autoGroupStack=%d\n", + // e->name.data(),e->section,g_autoGroupStack.count()); if (e->section==Entry::GROUPDOC_SEC) // auto group { g_autoGroupStack.push(new Grouping(e->name,e->groupingPri())); - //printf("==> openGroup(name=%s,sec=%x) g_autoGroupStack=%d\n", - // e->name.data(),e->section,g_autoGroupStack.count()); } else // start of a member group { + //printf(" membergroup id=%d\n",g_memberGroupId); if (g_memberGroupId==DOX_NOGROUP) // no group started yet { static int curGroupId=0; @@ -2567,6 +2574,7 @@ void openGroup(Entry *e,const char *,int) info->header = g_memberGroupHeader.stripWhiteSpace(); info->compoundName = g_compoundName; g_memberGroupId = findExistingGroup(curGroupId,info); + //printf(" use membergroup %d\n",g_memberGroupId); Doxygen::memGrpInfoDict.insert(g_memberGroupId,info); g_memberGroupRelates = e->relates; |