Skip to content

Commit 3cf2a6c

Browse files
authored
Merge pull request #54 from buehler/develop
Release
2 parents 57a14a5 + 851513a commit 3cf2a6c

File tree

2 files changed

+19
-23
lines changed

2 files changed

+19
-23
lines changed

package.json

+4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
"AST",
2525
"parsing"
2626
],
27+
"release": {
28+
"success": false,
29+
"fail": false
30+
},
2731
"author": "Christoph Bühler <[email protected]>",
2832
"license": "MIT",
2933
"bugs": {

src/TypescriptParser.ts

+15-23
Original file line numberDiff line numberDiff line change
@@ -151,54 +151,46 @@ export class TypescriptParser {
151151
*
152152
* @memberof TsResourceParser
153153
*/
154-
private parse(rootResource: Resource, rootNode: Node): void {
155-
let [resource, ...resourceQueue]: Resource[] = Array(rootNode.getChildren().length).fill(rootResource);
156-
let [node, ...nodeQueue]: Node[] = [...rootNode.getChildren()];
157-
while (node) {
158-
switch (node.kind) {
154+
private parse(resource: Resource, node: Node): void {
155+
for (const child of node.getChildren()) {
156+
switch (child.kind) {
159157
case SyntaxKind.ImportDeclaration:
160158
case SyntaxKind.ImportEqualsDeclaration:
161-
parseImport(resource, <ImportDeclaration | ImportEqualsDeclaration>node);
159+
parseImport(resource, <ImportDeclaration | ImportEqualsDeclaration>child);
162160
break;
163161
case SyntaxKind.ExportDeclaration:
164162
case SyntaxKind.ExportAssignment:
165-
parseExport(resource, <ExportAssignment | ExportDeclaration>node);
163+
parseExport(resource, <ExportAssignment | ExportDeclaration>child);
166164
break;
167165
case SyntaxKind.EnumDeclaration:
168-
parseEnum(resource, <EnumDeclaration>node);
166+
parseEnum(resource, <EnumDeclaration>child);
169167
break;
170168
case SyntaxKind.TypeAliasDeclaration:
171-
parseTypeAlias(resource, <TypeAliasDeclaration>node);
169+
parseTypeAlias(resource, <TypeAliasDeclaration>child);
172170
break;
173171
case SyntaxKind.FunctionDeclaration:
174-
parseFunction(resource, <FunctionDeclaration>node);
175-
[resource, ...resourceQueue] = resourceQueue;
176-
[node, ...nodeQueue] = nodeQueue;
172+
parseFunction(resource, <FunctionDeclaration>child);
177173
continue;
178174
case SyntaxKind.VariableStatement:
179-
parseVariable(resource, <VariableStatement>node);
175+
parseVariable(resource, <VariableStatement>child);
180176
break;
181177
case SyntaxKind.InterfaceDeclaration:
182-
parseInterface(resource, <InterfaceDeclaration>node);
178+
parseInterface(resource, <InterfaceDeclaration>child);
183179
break;
184180
case SyntaxKind.ClassDeclaration:
185-
parseClass(resource, <ClassDeclaration>node);
186-
[resource, ...resourceQueue] = resourceQueue;
187-
[node, ...nodeQueue] = nodeQueue;
181+
parseClass(resource, <ClassDeclaration>child);
188182
continue;
189183
case SyntaxKind.Identifier:
190-
parseIdentifier(resource, <Identifier>node);
184+
parseIdentifier(resource, <Identifier>child);
191185
break;
192186
case SyntaxKind.ModuleDeclaration:
193-
const newResource = parseModule(resource, <ModuleDeclaration>node);
194-
[resource, ...resourceQueue] = [...Array(node.getChildren().length).fill(newResource), ...resourceQueue];
195-
[node, ...nodeQueue] = [...node.getChildren(), ...nodeQueue];
187+
const newResource = parseModule(resource, <ModuleDeclaration>child);
188+
this.parse(newResource, child);
196189
continue;
197190
default:
198191
break;
199192
}
200-
[resource, ...resourceQueue] = [...Array(node.getChildren().length).fill(resource), ...resourceQueue];
201-
[node, ...nodeQueue] = [...node.getChildren(), ...nodeQueue];
193+
this.parse(resource, child);
202194
}
203195
}
204196
}

0 commit comments

Comments
 (0)