summaryrefslogtreecommitdiffstats
path: root/src/scanner.l
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2008-06-26 19:24:36 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2008-06-26 19:24:36 (GMT)
commit039f53bb7a3f1c3dfdf03f120437f2daef454fb3 (patch)
treecc6b9b1f467451deab5096afece76012eec030b3 /src/scanner.l
parent52629ec8265ab9f6250ec9cd4bba55932e680b9d (diff)
downloadDoxygen-039f53bb7a3f1c3dfdf03f120437f2daef454fb3.zip
Doxygen-039f53bb7a3f1c3dfdf03f120437f2daef454fb3.tar.gz
Doxygen-039f53bb7a3f1c3dfdf03f120437f2daef454fb3.tar.bz2
Release-1.5.6-20080626
Diffstat (limited to 'src/scanner.l')
-rw-r--r--src/scanner.l22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/scanner.l b/src/scanner.l
index e05e38b..4557ac1 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -1254,10 +1254,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<FindMembers>{B}*"explicit"{BN}+ { current->spec|=Entry::Explicit;
lineCount();
}
-<FindMembers>{B}*"@required"{BN}+ { current->spec|=Entry::Required;
+<FindMembers>{B}*"@required"{BN}+ { // Objective C 2.0 protocol required section
+ current->spec=(current->spec & ~Entry::Optional) | Entry::Required;
lineCount();
}
-<FindMembers>{B}*"@optional"{BN}+ { current->spec|=Entry::Optional;
+<FindMembers>{B}*"@optional"{BN}+ { // Objective C 2.0 protocol optional section
+ current->spec=(current->spec & ~Entry::Required) | Entry::Optional;
lineCount();
}
/*
@@ -4064,6 +4066,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current_root->addSubEntry(current);
current = new Entry ;
initEntry();
+ // Objective C 2.0: Required/Optional section
+ if (previous->spec & (Entry::Optional | Entry::Required))
+ {
+ current->spec |= previous->spec & (Entry::Optional|Entry::Required);
+ }
lastCurlyContext = FindMembers;
if ( *yytext == ',' )
{
@@ -4754,7 +4761,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<SkipRound>")" { if (--roundCount<=0)
BEGIN ( lastSkipRoundContext );
}
-<Bases>","|">"|({BN}+"implements"{BN}*) { lineCount();
+<Bases>","|(">"({BN}*"{")?)|({BN}+"implements"{BN}*) { lineCount();
if (insideProtocolList)
{
baseName+="-p";
@@ -4785,7 +4792,14 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (*yytext=='>')
{ // end of a ObjC protocol list
insideProtocolList=FALSE;
- unput('{'); // dummy start body
+ if (yyleng==1)
+ {
+ unput('{'); // dummy start body
+ }
+ else
+ {
+ yyless(1);
+ }
}
else
{