diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2008-05-18 11:56:00 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2008-05-18 11:56:00 (GMT) |
commit | 6cd51b02bf9b37f785fcd26648d1f9071205a2be (patch) | |
tree | e85f15dbfa5b5c3a1d2eb4031c403ae367dd15a8 /src/scanner.l | |
parent | 2f0a01b60fb0cb5f2fb42510039c22eabd86e786 (diff) | |
download | Doxygen-6cd51b02bf9b37f785fcd26648d1f9071205a2be.zip Doxygen-6cd51b02bf9b37f785fcd26648d1f9071205a2be.tar.gz Doxygen-6cd51b02bf9b37f785fcd26648d1f9071205a2be.tar.bz2 |
Release-1.5.6
Diffstat (limited to 'src/scanner.l')
-rw-r--r-- | src/scanner.l | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/src/scanner.l b/src/scanner.l index b42e115..e05e38b 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -598,6 +598,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) %x ClassCategory %x ClassTemplSpec %x CliPropertyType +%x CliPropertyIndex %x CliOverride %x Bases %x BasesProt @@ -934,8 +935,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) addType( current ); current->name = yytext; } -<CliPropertyType>"["{ID}"]" { // C++/CLI indexed property - current->args = yytext; +<CliPropertyType>"[" { // C++/CLI indexed property + current->name += yytext; + BEGIN( CliPropertyIndex ); } <CliPropertyType>"{" { curlyCount=0; @@ -955,6 +957,13 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) addType( current ); current->type += yytext; } +<CliPropertyIndex>"]" { + BEGIN( CliPropertyType ); + current->name+=yytext; + } +<CliPropertyIndex>. { + current->name+=yytext; + } <FindMembers>{B}*"property"{BN}+ { if (!current->type.isEmpty()) { @@ -1719,7 +1728,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) sharpCount++; } <EndTemplate>">>" { - if (insideJava || insideCS) + if (insideJava || insideCS || insideCli) { unput('>'); unput(' '); @@ -4034,6 +4043,16 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) if ( insidePHP && !containsWord(current->type,"function")) { initEntry(); + if ( *yytext == '{' ) + { + lastCurlyContext = FindMembers; + curlyCount=0; + BEGIN( SkipCurly ); + } + else + { + BEGIN( FindMembers ); + } } else { @@ -4543,7 +4562,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) <ClassVar>":" { current->type.resize(0); if ((current->spec & Entry::Interface) || - (current->spec & Entry::Struct) || + (current->spec & Entry::Struct) || + (current->spec & Entry::Ref) || + (current->spec & Entry::Value) || insidePHP || insideCS || insideD || insideObjC ) baseProt=Public; @@ -4704,6 +4725,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) } <Specialization>{BN}+ { lineCount(); *specName +=' '; } <Specialization>"<<" { *specName += yytext; } +<Specialization>">>"/{B}*"::" { // M$ C++ extension to allow >> to close a template... + unput('>'); + unput(' '); + unput('>'); + } <Specialization>">>" { if (insideCS) // for C# >> ends a nested template { |