summaryrefslogtreecommitdiffstats
path: root/src/Lang/Cpp
diff options
context:
space:
mode:
authorChristoph Schlosser <christophschlosser@users.noreply.github.com>2018-07-06 19:59:46 +0200
committerGitHub <noreply@github.com>2018-07-06 19:59:46 +0200
commit63412efa8aa51ffb76afc5a5adec7ea3354e973a (patch)
treed683d45085230737e596de4d8227230ae68224d0 /src/Lang/Cpp
parente281cee46f5efc972d1ae4c36edcf1eb31763280 (diff)
parent534158f43af43dd2580172d52e38a543a2b2fedf (diff)
downloaddoxdocgen-63412efa8aa51ffb76afc5a5adec7ea3354e973a.tar.gz
Merge pull request #81 from christophschlosser/memberpointer
Parse member pointers correctly
Diffstat (limited to 'src/Lang/Cpp')
-rw-r--r--src/Lang/Cpp/CppParser.ts11
-rw-r--r--src/Lang/Cpp/CppToken.ts1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/Lang/Cpp/CppParser.ts b/src/Lang/Cpp/CppParser.ts
index 0b34347..746c11c 100644
--- a/src/Lang/Cpp/CppParser.ts
+++ b/src/Lang/Cpp/CppParser.ts
@@ -695,6 +695,17 @@ export default class CppParser implements ICodeParser {
return this.GetArgumentFromFuncPtr(copy);
}
+ // Handle member pointers
+ for (let token: number = 0; token < copy.nodes.length - 1; token++) {
+ const firstToken: CppToken = copy.nodes[token] as CppToken;
+ const secondToken: CppToken = copy.nodes[token + 1] as CppToken;
+
+ if (firstToken.type === CppTokenType.Symbol && secondToken.type === CppTokenType.Pointer &&
+ firstToken.value.endsWith("::")) {
+ firstToken.type = CppTokenType.MemberPointer;
+ }
+ }
+
return this.GetDefaultArgument(copy);
}
diff --git a/src/Lang/Cpp/CppToken.ts b/src/Lang/Cpp/CppToken.ts
index f229e8f..61b78b7 100644
--- a/src/Lang/Cpp/CppToken.ts
+++ b/src/Lang/Cpp/CppToken.ts
@@ -13,6 +13,7 @@ export enum CppTokenType {
CommentLine,
Ellipsis,
Attribute,
+ MemberPointer,
}
export class CppToken {