summaryrefslogtreecommitdiffstats
path: root/src/scanner.l
diff options
context:
space:
mode:
Diffstat (limited to 'src/scanner.l')
-rw-r--r--src/scanner.l45
1 files changed, 26 insertions, 19 deletions
diff --git a/src/scanner.l b/src/scanner.l
index 9967667..ba99f5b 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -2449,7 +2449,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
lineCount();
BEGIN( CompoundName );
}
-<FindMembers>{B}*("disp")?"interface"{BN}+ { // M$/Corba IDL interface
+<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface
isTypedef=FALSE;
current->section = Entry::INTERFACE_SEC;
addType( current ) ;
@@ -3157,24 +3157,31 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
//printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n",
// current->type.data(), current->name.data(),
// current->args.data(), current_root->name.data(),current->mGrpId);
- current->fileName = yyFileName;
- current->startLine = yyLineNr;
- current->type = "@"; // enum marker
- current->args = current->args.simplifyWhiteSpace();
- current->name = current->name.stripWhiteSpace();
- current->section = Entry::VARIABLE_SEC;
- // add to the scope of the enum
- current_root->addSubEntry(current);
- current = new Entry(*current);
- // add to the scope surrounding the enum (copy!)
- current_root->parent->addSubEntry(current);
- current = new Entry ;
- current->protection = protection ;
- current->sig = sig;
- current->virt = virt;
- current->stat = gstat;
- current->slot = slot;
- current->mGrpId = memberGroupId;
+ if (!current->name.isEmpty())
+ {
+ current->fileName = yyFileName;
+ current->startLine = yyLineNr;
+ current->type = "@"; // enum marker
+ current->args = current->args.simplifyWhiteSpace();
+ current->name = current->name.stripWhiteSpace();
+ current->section = Entry::VARIABLE_SEC;
+ // add to the scope of the enum
+ current_root->addSubEntry(current);
+ current = new Entry(*current);
+ // add to the scope surrounding the enum (copy!)
+ current_root->parent->addSubEntry(current);
+ current = new Entry ;
+ current->protection = protection ;
+ current->sig = sig;
+ current->virt = virt;
+ current->stat = gstat;
+ current->slot = slot;
+ current->mGrpId = memberGroupId;
+ }
+ else // probably a redundant ,
+ {
+ current->reset();
+ }
}
/*
<FindFieldArg>"," { unput(*yytext); BEGIN(FindFields); }