summaryrefslogtreecommitdiffstats
path: root/src/scanner.l
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2004-10-28 19:06:37 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2004-10-28 19:06:37 (GMT)
commit62d6edc6d0b299e93384e678748b635eb1bfe9b9 (patch)
tree60eda1cf44aa3fb80b441c3d949200b6ffb7c43d /src/scanner.l
parent50828c3c773e8095785c010c1aad3891076742f4 (diff)
downloadDoxygen-62d6edc6d0b299e93384e678748b635eb1bfe9b9.zip
Doxygen-62d6edc6d0b299e93384e678748b635eb1bfe9b9.tar.gz
Doxygen-62d6edc6d0b299e93384e678748b635eb1bfe9b9.tar.bz2
Release-1.3.9.1-20041028
Diffstat (limited to 'src/scanner.l')
-rw-r--r--src/scanner.l20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/scanner.l b/src/scanner.l
index 870590c..9cd310e 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -669,6 +669,7 @@ ID "$"?[a-z_A-Z][a-z_A-Z0-9]*
LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
+TSCOPE {ID}("<"[a-z_A-Z0-9 \t\*\&]*">")?
CSSCOPENAME (({ID}?{BN}*"."{BN}*)*)((~{BN}*)?{ID})
ATTR ({B}+[^>\n]*)?
A [aA]
@@ -2694,10 +2695,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
}
<ReadBody,ReadNSBody,ReadBodyIntf>. { current->program += yytext ; }
-<ReadBody,ReadNSBody,ReadBodyIntf>"'#" { current->program += yytext ; }
-<FindMembers>"("/({BN}*{ID}{BN}*"::")*{ID}{BN}*")"{BN}*"(" | /* typedef void (A::func_t)(args...) */
-<FindMembers>("("({BN}*{ID}{BN}*"::")*({BN}*"*"{BN}*)+)+ { /* typedef void (A::*ptr_t)(args...) */
+<FindMembers>"("/({BN}*{TSCOPE}{BN}*"::")*{TSCOPE}{BN}*")"{BN}*"(" | /* typedef void (A<int>::func_t)(args...) */
+<FindMembers>("("({BN}*{TSCOPE}{BN}*"::")*({BN}*"*"{BN}*)+)+ { /* typedef void (A::*ptr_t)(args...) */
current->bodyLine = yyLineNr;
lineCount();
addType(current);
@@ -3620,7 +3620,19 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( FindMembers );
}
}
-<ClassVar>"," // Multiple class forward declaration
+<ClassVar>"," {
+ if (isTypedef)
+ {
+ // multiple types in one typedef
+ unput(',');
+ current->type.prepend("typedef ");
+ BEGIN(FindMembers);
+ }
+ else
+ {
+ // Multiple class forward declaration
+ }
+ }
<ClassVar>{ID} {
if (insideIDL && strcmp(yytext,"switch")==0)
{