11import Parser from "tree-sitter" ;
2- import { NamespaceResolver , Namespace } from "../namespaceResolver" ;
2+ import {
3+ NamespaceResolver ,
4+ Namespace ,
5+ ExportedSymbol ,
6+ } from "../namespaceResolver" ;
7+
8+ export interface NamespaceNode {
9+ name : string ;
10+ exports : ExportedSymbol [ ] ;
11+ childrenNamespaces : NamespaceNode [ ] ;
12+ }
313
414export class NamespaceMapper {
515 #files: Map < string , { path : string ; rootNode : Parser . SyntaxNode } > ;
@@ -14,7 +24,7 @@ export class NamespaceMapper {
1424 }
1525
1626 // Adds a namespace to the final tree.
17- #addNamespaceToTree( namespace : Namespace , tree : Namespace ) {
27+ #addNamespaceToTree( namespace : NamespaceNode , tree : NamespaceNode ) {
1828 // Deconstruct the namespace's name, so that A.B
1929 // becomes B, child of A.
2030 const parts = namespace . name . split ( "." ) ;
@@ -47,7 +57,7 @@ export class NamespaceMapper {
4757
4858 // Assigns namespaces to classes, used for ambiguity resolution.
4959 // check 2Namespaces1File.cs for an example.
50- #assignNamespacesToClasses( tree : Namespace , parentNamespace = "" ) {
60+ #assignNamespacesToClasses( tree : NamespaceNode , parentNamespace = "" ) {
5161 const fullNamespace = parentNamespace
5262 ? `${ parentNamespace } .${ tree . name } `
5363 : tree . name ;
@@ -62,8 +72,8 @@ export class NamespaceMapper {
6272 }
6373
6474 // Builds a tree of namespaces from the parsed files.
65- buildNamespaceTree ( ) : Namespace {
66- const namespaceTree : Namespace = {
75+ buildNamespaceTree ( ) : NamespaceNode {
76+ const namespaceTree : NamespaceNode = {
6777 name : "" ,
6878 exports : [ ] ,
6979 childrenNamespaces : [ ] ,
0 commit comments