diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2007-08-15 18:35:31 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2007-08-15 18:35:31 (GMT) |
commit | 4a93397673029e3cfd4c9e2d0501a109f858b87c (patch) | |
tree | 4d3b01807f8eb1364767b33ddb31bfd49b37ef3a /src/defargs.l | |
parent | e832cfbdc161adb81ec992f6ab4356f81b55f6e5 (diff) | |
download | Doxygen-4a93397673029e3cfd4c9e2d0501a109f858b87c.zip Doxygen-4a93397673029e3cfd4c9e2d0501a109f858b87c.tar.gz Doxygen-4a93397673029e3cfd4c9e2d0501a109f858b87c.tar.bz2 |
Release-1.5.3-20070815
Diffstat (limited to 'src/defargs.l')
-rw-r--r-- | src/defargs.l | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/defargs.l b/src/defargs.l index 94578ff..5939504 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -71,6 +71,7 @@ static QCString g_curArgName; static QCString g_curArgDocs; static QCString g_curArgAttrib; static QCString g_curArgArray; +static QCString g_extraTypeChars; static int g_argRoundCount; static int g_argSharpCount; static int g_argCurlyCount; @@ -359,6 +360,10 @@ ID [a-z_A-Z][a-z_A-Z0-9]* <FuncQual>"="{B}*"0" { g_argList->pureSpecifier=TRUE; } +<FuncQual>")"{B}*"["[^]]*"]" { // for functions returning a pointer to an array, + // i.e. ")[]" in "int (*f(int))[4]" with argsString="(int))[4]" + g_extraTypeChars=yytext; + } <ReadDocBlock>[^\*\n]+ { g_curArgDocs+=yytext; } @@ -402,7 +407,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* * \param al a reference to resulting argument list pointer. */ -void stringToArgumentList(const char *argsString,ArgumentList* &al) +void stringToArgumentList(const char *argsString,ArgumentList* &al,QCString *extraTypeChars) { if (al==0) return; if (argsString==0) return; @@ -411,6 +416,7 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al) g_curArgDocs.resize(0); g_curArgAttrib.resize(0); g_curArgArray.resize(0); + g_extraTypeChars.resize(0); g_argRoundCount = 0; g_argSharpCount = 0; g_argCurlyCount = 0; @@ -425,6 +431,7 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al) defargsYYrestart( defargsYYin ); BEGIN( Start ); defargsYYlex(); + if (extraTypeChars) *extraTypeChars=g_extraTypeChars; //printf("stringToArgumentList(%s) result=%s\n",argsString,argListToString(al).data()); } |