diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2010-04-18 13:59:11 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2010-04-18 13:59:11 (GMT) |
commit | adff8506a1c654db63ef362bbc90cddf7c156dd7 (patch) | |
tree | 5a45c08fe6f9334d87e18a8b8271d2c8cbb71e93 /src/pre.l | |
parent | eb1cb68e11a3b24222a49ed254f8f7aea2f73bae (diff) | |
download | Doxygen-adff8506a1c654db63ef362bbc90cddf7c156dd7.zip Doxygen-adff8506a1c654db63ef362bbc90cddf7c156dd7.tar.gz Doxygen-adff8506a1c654db63ef362bbc90cddf7c156dd7.tar.bz2 |
Release-1.6.3-20100418
Diffstat (limited to 'src/pre.l')
-rw-r--r-- | src/pre.l | 36 |
1 files changed, 26 insertions, 10 deletions
@@ -188,7 +188,9 @@ static bool macroIsAccessible(Define *def) } if (def && def->fileDef==g_inputFileDef) { - return def->lineNr<g_yyLineNr; + //printf("%s: macro %s defined in this file at line %d now at %d\n", + // g_inputFileDef->name().data(),def->name.data(),def->lineNr,g_yyLineNr); + return def->lineNr<=g_yyLineNr; } if (g_inputFileDef && def && def->fileDef) // check if g_inputFileDef actually includes def->fileDef { @@ -198,6 +200,7 @@ static bool macroIsAccessible(Define *def) // g_inputFileDef->name().data(),def->name.data(),def->fileDef->name().data(),b); return b; } + //printf("not accessible!\n"); return FALSE; } @@ -1883,34 +1886,47 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) g_defVarArgs = FALSE; BEGIN(DefineArg); } -<DefName>{ID}/{B}* { // define with content +<DefName>{ID}{B}+"1" { // special case: define with 1 -> can be "guard" //printf("Define `%s'\n",yytext); g_argDict = 0; g_defArgs = -1; g_defArgsStr.resize(0); - g_defText.resize(0); - g_defLitText.resize(0); g_defName = yytext; + g_defName = g_defName.left(g_defName.length()-1).stripWhiteSpace(); g_defVarArgs = FALSE; - //QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr; - //outputArray(tmp.data(),tmp.length()); - //g_quoteArg=FALSE; - //g_insideComment=FALSE; - //BEGIN(DefineText); if ( g_defName!=g_lastGuardName || !g_expectGuard) { // define may appear in the output QCString tmp=(QCString)"#define "+g_defName; outputArray(tmp.data(),tmp.length()); g_quoteArg=FALSE; g_insideComment=FALSE; + g_lastGuardName.resize(0); + g_defText="1"; + g_defLitText="1"; BEGIN(DefineText); } else // define is a guard => hide { - g_lastGuardName.resize(0); + g_defText.resize(0); + g_defLitText.resize(0); BEGIN(Start); } } +<DefName>{ID}/{B}* { // define with content + //printf("Define `%s'\n",yytext); + g_argDict = 0; + g_defArgs = -1; + g_defArgsStr.resize(0); + g_defText.resize(0); + g_defLitText.resize(0); + g_defName = yytext; + g_defVarArgs = FALSE; + QCString tmp=(QCString)"#define "+g_defName+g_defArgsStr; + outputArray(tmp.data(),tmp.length()); + g_quoteArg=FALSE; + g_insideComment=FALSE; + BEGIN(DefineText); + } <DefName>{ID}/{B}*"\n" { // empty define g_argDict = 0; g_defArgs = -1; |