summaryrefslogtreecommitdiffstats
path: root/src/Lang/Cpp/CppParser.ts
diff options
context:
space:
mode:
authorChristoph Schlosser <christoph@linux.com>2018-06-25 13:51:48 +0200
committerChristoph Schlosser <christoph@linux.com>2018-06-25 13:51:48 +0200
commitfc8b744aac786e416e6663490f2efbf40b016964 (patch)
tree76b2a3db239dfb156cb9996ca50566b3a8928c77 /src/Lang/Cpp/CppParser.ts
parenta87c10f87bb8e3a93fb95a0b066e1df148b08e5a (diff)
downloaddoxdocgen-fc8b744aac786e416e6663490f2efbf40b016964.tar.gz
Parse member pointers correctly
Diffstat (limited to 'src/Lang/Cpp/CppParser.ts')
-rw-r--r--src/Lang/Cpp/CppParser.ts11
1 files changed, 11 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);
}