diff options
| author | Christoph Schlosser <christoph@linux.com> | 2018-02-20 12:35:02 +0100 |
|---|---|---|
| committer | Christoph Schlosser <christophschlosser@users.noreply.github.com> | 2018-02-20 22:16:05 +0100 |
| commit | 1464b8e169e8bfcebc32dd877d1bd1bde0c0ad5c (patch) | |
| tree | 5cad0a26b972ce57722e722d7e81a8b7ab5696d4 /src | |
| parent | 8711b0fb2c8f88a6864096de7813e63fd6cf9f7a (diff) | |
| download | doxdocgen-1464b8e169e8bfcebc32dd877d1bd1bde0c0ad5c.tar.gz | |
Introduce special handling for cast operator
Diffstat (limited to 'src')
| -rw-r--r-- | src/Lang/Cpp/CppParser.ts | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Lang/Cpp/CppParser.ts b/src/Lang/Cpp/CppParser.ts index fcbdbe0..de0ecc5 100644 --- a/src/Lang/Cpp/CppParser.ts +++ b/src/Lang/Cpp/CppParser.ts @@ -327,6 +327,12 @@ export default class CppParser implements ICodeParser { } private GetReturnAndArgs(line: string): [CppArgument, CppArgument[]] { + if (this.GetArgumentFromCastOperator(line) !== null) { + const opFunc = new CppArgument(); + opFunc.name = this.GetArgumentFromCastOperator(line)[1]; + opFunc.type.nodes.push(new CppToken(CppTokenType.Symbol, opFunc.name)); + return [opFunc, []]; + } // CppTokenize rest of expression and remove comment CppTokens; const CppTokens: CppToken[] = this.Tokenize(line) .filter((t) => t.type !== CppTokenType.CommentBlock) @@ -421,6 +427,11 @@ export default class CppParser implements ICodeParser { }); } + private GetArgumentFromCastOperator(line: string) { + const copy = line; + return copy.match("[explicit|\\s]*\\s*operator\\s*([a-zA-Z].*)\\(\\).*"); + } + private GetArgumentFromTrailingReturn(tree: CppParseTree, startTrailingReturn: number): CppArgument { const argument: CppArgument = new CppArgument(); |