diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-12-08 12:57:04 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-12-08 12:57:04 (GMT) |
commit | 96efae32552513db2a41e6b498cbd76416769dd6 (patch) | |
tree | a00a3aec639eae2b1f509d30fa47a82007698312 /src/scanner.l | |
parent | aa01d206d2c236da4b9247444f9c52c5351e3028 (diff) | |
download | Doxygen-96efae32552513db2a41e6b498cbd76416769dd6.zip Doxygen-96efae32552513db2a41e6b498cbd76416769dd6.tar.gz Doxygen-96efae32552513db2a41e6b498cbd76416769dd6.tar.bz2 |
Bug 720046 - Document inline objective-C blocks
Diffstat (limited to 'src/scanner.l')
-rw-r--r-- | src/scanner.l | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/scanner.l b/src/scanner.l index 0807aaa..50b3e8a 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -1176,13 +1176,27 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } */ <ObjCParams>"(" { - BEGIN( ObjCParamType ); - } -<ObjCParamType>[^)]* { - current->argList->getLast()->type=QCString(yytext).stripWhiteSpace(); - } + roundCount=0; + current->argList->getLast()->type.resize(0); + BEGIN( ObjCParamType ); + } +<ObjCParamType>"(" { + roundCount++; + current->argList->getLast()->type+=yytext; + } <ObjCParamType>")"/{B}* { - BEGIN( ObjCParams ); + if (roundCount<=0) + { + BEGIN( ObjCParams ); + } + else + { + current->argList->getLast()->type+=yytext; + roundCount--; + } + } +<ObjCParamType>[^()]* { + current->argList->getLast()->type+=QCString(yytext).stripWhiteSpace(); } <ObjCMethod,ObjCParams>";" { // end of method declaration if (current->argList->getLast() && current->argList->getLast()->type.isEmpty()) @@ -1193,7 +1207,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) //printf("argList=%s\n",current->args.data()); unput(';'); BEGIN( Function ); - } + } <ObjCMethod,ObjCParams>(";"{BN}+)?"{" { // start of a method body lineCount(); //printf("Type=%s Name=%s args=%s\n", |