(node: ts.ClassDeclaration)
| 512 | } |
| 513 | |
| 514 | parseClassDeclaration(node: ts.ClassDeclaration): syntax.ClassDeclaration { |
| 515 | const {name, members} = node; |
| 516 | if (!name) |
| 517 | throw new UnimplementedError(node, 'Empty class name is not supported'); |
| 518 | const cppMembers = members.map(this.parseClassElement.bind(this, node)); |
| 519 | const classDeclaration = new syntax.ClassDeclaration(this.typer.parseNodeType(node), |
| 520 | isExportedDeclaration(node), |
| 521 | cppMembers); |
| 522 | cppMembers.forEach(m => m.classDeclaration = classDeclaration); |
| 523 | return classDeclaration; |
| 524 | } |
| 525 | |
| 526 | parseClassElement(classDeclaration: ts.ClassDeclaration, |
| 527 | node: ts.ClassElement): syntax.ClassElement { |
no test coverage detected