@lcap/nasl-language-server-core 3.13.1-debug.6 → 3.13.1-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/out/symbol/graph.d.ts +2 -0
  2. package/out/symbol/graph.d.ts.map +1 -1
  3. package/out/symbol/graph.js +37 -6
  4. package/out/symbol/graph.js.map +1 -1
  5. package/out/symbol/symbol.d.ts +2 -0
  6. package/out/symbol/symbol.d.ts.map +1 -1
  7. package/out/symbol/symbol.js +5 -0
  8. package/out/symbol/symbol.js.map +1 -1
  9. package/out/symbol/traverse/concepts/data-source/entity.js +1 -1
  10. package/out/symbol/traverse/concepts/data-source/entity.js.map +1 -1
  11. package/out/symbol/traverse/concepts/enum/enum.js +2 -2
  12. package/out/symbol/traverse/concepts/enum/enum.js.map +1 -1
  13. package/out/symbol/traverse/concepts/logic/expression/identifier.d.ts.map +1 -1
  14. package/out/symbol/traverse/concepts/logic/expression/identifier.js +1 -2
  15. package/out/symbol/traverse/concepts/logic/expression/identifier.js.map +1 -1
  16. package/out/symbol/traverse/concepts/logic/expression/member-expression.d.ts.map +1 -1
  17. package/out/symbol/traverse/concepts/logic/expression/member-expression.js +39 -3
  18. package/out/symbol/traverse/concepts/logic/expression/member-expression.js.map +1 -1
  19. package/out/symbol/traverse/concepts/logic/logic.d.ts.map +1 -1
  20. package/out/symbol/traverse/concepts/logic/logic.js +19 -4
  21. package/out/symbol/traverse/concepts/logic/logic.js.map +1 -1
  22. package/out/symbol/traverse/concepts/other/namespace.d.ts.map +1 -1
  23. package/out/symbol/traverse/concepts/other/namespace.js +2 -3
  24. package/out/symbol/traverse/concepts/other/namespace.js.map +1 -1
  25. package/out/symbol/traverse/concepts/other/type-annotation.d.ts.map +1 -1
  26. package/out/symbol/traverse/concepts/other/type-annotation.js +4 -0
  27. package/out/symbol/traverse/concepts/other/type-annotation.js.map +1 -1
  28. package/out/symbol/traverse/concepts/structure/structure.js +1 -1
  29. package/out/symbol/traverse/concepts/structure/structure.js.map +1 -1
  30. package/out/symbol/traverse/concepts/utils.d.ts +1 -1
  31. package/out/symbol/traverse/concepts/utils.d.ts.map +1 -1
  32. package/out/symbol/traverse/concepts/utils.js +5 -0
  33. package/out/symbol/traverse/concepts/utils.js.map +1 -1
  34. package/out/symbol/traverse/traverse.d.ts.map +1 -1
  35. package/out/symbol/traverse/traverse.js +1 -0
  36. package/out/symbol/traverse/traverse.js.map +1 -1
  37. package/out/symbol/traverse/types.d.ts +3 -0
  38. package/out/symbol/traverse/types.d.ts.map +1 -1
  39. package/out/symbol/utils.d.ts +5 -0
  40. package/out/symbol/utils.d.ts.map +1 -0
  41. package/out/symbol/utils.js +11 -0
  42. package/out/symbol/utils.js.map +1 -0
  43. package/package.json +5 -5
@@ -12,8 +12,10 @@ export declare class SymbolGraph implements Type.SymbolGraph {
12
12
  get appId(): string;
13
13
  addNamespace(...namespaces: Namespace[]): void;
14
14
  getSymbols(): Symbol[];
15
+ getTypeSymbols(): Symbol[];
15
16
  getNamespaces(): Namespace[];
16
17
  getNamespaceByNode(node: SyntaxNode): Namespace | undefined;
17
18
  getSymbolByNode(node: SyntaxNode, namespaces?: Namespace): Symbol | undefined;
19
+ getTypeSymbolBySymbol(symbol: Symbol, namespace?: Namespace): Symbol | undefined;
18
20
  }
19
21
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/symbol/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,WAAY,YAAW,IAAI,CAAC,WAAW;gBACtC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB;IAK7D,eAAe;IACf,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAEzB,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,IAAI,KAAK,WAER;IAED,YAAY,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE;IAQvC,UAAU;IAKV,aAAa;IAIb,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;IAkC3D,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;CAe9E"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/symbol/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAC;AAEjE,qBAAa,WAAY,YAAW,IAAI,CAAC,WAAW;gBACtC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB;IAK7D,eAAe;IACf,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IAEzB,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,IAAI,KAAK,WAER;IAED,YAAY,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE;IAQvC,UAAU,IAAI,MAAM,EAAE;IAKtB,cAAc,IAAI,MAAM,EAAE;IAM1B,aAAa;IAIb,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;IAkC3D,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAgB7E,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;CA8BjF"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SymbolGraph = void 0;
4
4
  const traverse_1 = require("./traverse");
5
+ const utils_1 = require("./utils");
5
6
  class SymbolGraph {
6
7
  constructor(app, options = {}) {
7
8
  /** 作用域数据 */
@@ -23,6 +24,11 @@ class SymbolGraph {
23
24
  return this.getNamespaces()
24
25
  .reduce(((ans, item) => ans.concat(Array.from(item.getStrictLocalSymbols().values()))), []);
25
26
  }
27
+ getTypeSymbols() {
28
+ return this.getSymbols().filter(({ declaration }) => {
29
+ return declaration && (0, utils_1.isTypeNode)(declaration);
30
+ });
31
+ }
26
32
  getNamespaces() {
27
33
  return this.namespaces.slice();
28
34
  }
@@ -36,16 +42,16 @@ class SymbolGraph {
36
42
  }
37
43
  let maxLen = 0;
38
44
  let result = undefined;
39
- const nodePath = node.nodePath;
45
+ const { nodePath: inputPath } = node;
40
46
  // 搜索接近的作用域
41
47
  rootScope.traverse((namespace) => {
42
- const insidePath = namespace.node.nodePath;
48
+ const { nodePath: namespacePath } = namespace.node;
43
49
  // 过滤子节点
44
- if (!nodePath.startsWith(insidePath)) {
45
- return false;
50
+ if (!inputPath.startsWith(namespacePath)) {
51
+ return;
46
52
  }
47
- if (insidePath.length > maxLen) {
48
- maxLen = insidePath.length;
53
+ if (namespacePath.length > maxLen) {
54
+ maxLen = namespacePath.length;
49
55
  result = namespace;
50
56
  }
51
57
  });
@@ -63,6 +69,31 @@ class SymbolGraph {
63
69
  }
64
70
  return namespaces.getSymbolByToken(node.name);
65
71
  }
72
+ getTypeSymbolBySymbol(symbol, namespace) {
73
+ const node = symbol.declaration;
74
+ if (!node) {
75
+ return;
76
+ }
77
+ if ((0, utils_1.isTypeNode)(node)) {
78
+ return symbol;
79
+ }
80
+ const typeNode = node?.__TypeAnnotation ?? node?.typeAnnotation;
81
+ if (!typeNode) {
82
+ return;
83
+ }
84
+ if (typeNode.typeKind === 'anonymousStructure') {
85
+ // 匿名数据结构的符号就是默认导出
86
+ return this.getNamespaceByNode(typeNode)?.defaultExport;
87
+ }
88
+ else if (typeNode.typeKind === 'reference') {
89
+ return this
90
+ .getTypeSymbols()
91
+ .find((item) => item.semanticName === `${typeNode.typeNamespace}.${typeNode.typeName}`);
92
+ }
93
+ else if (typeNode.typeKind === 'union') {
94
+ // TODO:
95
+ }
96
+ }
66
97
  }
67
98
  exports.SymbolGraph = SymbolGraph;
68
99
  //# sourceMappingURL=graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/symbol/graph.ts"],"names":[],"mappings":";;;AAGA,yCAAsC;AAItC,MAAa,WAAW;IACtB,YAAY,GAAe,EAAE,UAA8B,EAAE;QAQ7D,YAAY;QACK,eAAU,GAAgB,EAAE,CAAC;QAR5C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAA,mBAAQ,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAQD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,GAAG,UAAuB;QACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,EAAE;aACxB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAc,CAAC,CAAC;IAC5G,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,IAAgB;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;QAE/D,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAA0B,SAAS,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,WAAW;QACX,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAE3C,QAAQ;YACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;gBAC/B,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC3B,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,IAAgB,EAAE,UAAsB;QACtD,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAlFD,kCAkFC"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/symbol/graph.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,7 @@ export declare class Symbol implements SymbolType.Symbol {
15
15
  readonly semanticName?: string;
16
16
  constructor(graph: SymbolGraph, name: string, namespace: Namespace, declaration?: SyntaxNode | undefined, isVirtual?: boolean, isExport?: boolean);
17
17
  get isUsed(): boolean;
18
+ hasRef(nodePath: string): boolean;
19
+ hasRef(node: SyntaxNode): boolean;
18
20
  }
19
21
  //# sourceMappingURL=symbol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../src/symbol/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,qBAAa,MAAO,YAAW,UAAU,CAAC,MAAM;aAO5B,KAAK,EAAE,WAAW;aAClB,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,SAAS;aACpB,WAAW,CAAC;aACZ,SAAS;aACT,QAAQ;IAX1B,QAAQ,CAAC,EAAE,SAAQ;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAM;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAGb,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,wBAAY,EACxB,SAAS,UAAQ,EACjB,QAAQ,UAAO;IAajC,IAAI,MAAM,YAET;CACF"}
1
+ {"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../src/symbol/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,qBAAa,MAAO,YAAW,UAAU,CAAC,MAAM;aAO5B,KAAK,EAAE,WAAW;aAClB,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,SAAS;aACpB,WAAW,CAAC;aACZ,SAAS;aACT,QAAQ;IAX1B,QAAQ,CAAC,EAAE,SAAQ;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAM;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAGb,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,wBAAY,EACxB,SAAS,UAAQ,EACjB,QAAQ,UAAO;IAajC,IAAI,MAAM,YAET;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IACjC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;CAMlC"}
@@ -23,6 +23,11 @@ class Symbol {
23
23
  get isUsed() {
24
24
  return this.references.length > 0;
25
25
  }
26
+ hasRef(node) {
27
+ return typeof node === 'string'
28
+ ? this.references.some((ref) => ref.nodePath === node)
29
+ : this.references.some((ref) => ref === node);
30
+ }
26
31
  }
27
32
  exports.Symbol = Symbol;
28
33
  //# sourceMappingURL=symbol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../src/symbol/symbol.ts"],"names":[],"mappings":";;;AAKA,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX,MAAa,MAAM;IAMjB,YACkB,KAAkB,EAClB,IAAY,EACZ,SAAoB,EACpB,WAAwB,EACxB,YAAY,KAAK,EACjB,WAAW,IAAI;QALf,UAAK,GAAL,KAAK,CAAa;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAQ;QACjB,aAAQ,GAAR,QAAQ,CAAO;QAXxB,OAAE,GAAG,EAAE,EAAE,CAAC;QACV,eAAU,GAAiB,EAAE,CAAC;QAYrC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;YAErC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,wBAAwB,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;CACF;AA5BD,wBA4BC"}
1
+ {"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../src/symbol/symbol.ts"],"names":[],"mappings":";;;AAKA,IAAI,EAAE,GAAG,CAAC,CAAC;AAEX,MAAa,MAAM;IAMjB,YACkB,KAAkB,EAClB,IAAY,EACZ,SAAoB,EACpB,WAAwB,EACxB,YAAY,KAAK,EACjB,WAAW,IAAI;QALf,UAAK,GAAL,KAAK,CAAa;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAQ;QACjB,aAAQ,GAAR,QAAQ,CAAO;QAXxB,OAAE,GAAG,EAAE,EAAE,CAAC;QACV,eAAU,GAAiB,EAAE,CAAC;QAYrC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;YAErC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,wBAAwB,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;IAID,MAAM,CAAC,IAAyB;QAC9B,OAAO,OAAO,IAAI,KAAK,QAAQ;YAC7B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAClD,CAAC;CACF;AApCD,wBAoCC"}
@@ -9,7 +9,7 @@ const utils_1 = require("../utils");
9
9
  */
10
10
  const traverseEntityProperty = (node, context) => {
11
11
  // 属性添加节点
12
- context.addSymbol(node.name, context.namespace, node, false);
12
+ context.addSymbol(node.name, context.namespace, node);
13
13
  // 节点定义类型
14
14
  if (node.typeAnnotation) {
15
15
  (0, other_1.traverseTypeAnnotation)(node.typeAnnotation, context);
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/data-source/entity.ts"],"names":[],"mappings":";;;AAEA,oCAAqE;AACrE,oCAA8C;AAC9C,oCAAyD;AAEzD;;GAEG;AACI,MAAM,sBAAsB,GAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChF,SAAS;IACT,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE7D,SAAS;IACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,IAAA,8BAAsB,EAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,UAAU;IACV,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAA,0BAAkB,EAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,SAAS;IACT,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClD,IAAA,oBAAY,EAAC,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxG,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC;AAEF;;GAEG;AACI,MAAM,cAAc,GAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS;IACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;IACP,IAAA,uBAAe,EAAC,yBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAErD,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/data-source/entity.ts"],"names":[],"mappings":";;;AAEA,oCAAqE;AACrE,oCAA8C;AAC9C,oCAAyD;AAEzD;;GAEG;AACI,MAAM,sBAAsB,GAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChF,SAAS;IACT,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEtD,SAAS;IACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,IAAA,8BAAsB,EAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,UAAU;IACV,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAA,0BAAkB,EAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,SAAS;IACT,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClD,IAAA,oBAAY,EAAC,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxG,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC;AAEF;;GAEG;AACI,MAAM,cAAc,GAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS;IACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;IACP,IAAA,uBAAe,EAAC,yBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAErD,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
@@ -5,8 +5,8 @@ exports.traverseEnum = exports.traverseEnumItem = void 0;
5
5
  * EnumItem 节点迭代
6
6
  */
7
7
  const traverseEnumItem = (node, context) => {
8
- if (node.name) {
9
- context.addSymbol(node.name, context.namespace, node, false);
8
+ if (node.value) {
9
+ context.addSymbol(node.getTokenKeyWithNamespace(), context.namespace, node);
10
10
  }
11
11
  };
12
12
  exports.traverseEnumItem = traverseEnumItem;
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/enum/enum.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACI,MAAM,gBAAgB,GAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACpE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAEF;;GAEG;AACI,MAAM,YAAY,GAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC5D,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS;IACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,IAAA,wBAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/enum/enum.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACI,MAAM,gBAAgB,GAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACpE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAEF;;GAEG;AACI,MAAM,YAAY,GAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC5D,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS;IACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAClC,IAAA,wBAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"identifier.d.ts","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/identifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAGnD,CAAC"}
1
+ {"version":3,"file":"identifier.d.ts","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/identifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAEnD,CAAC"}
@@ -6,8 +6,7 @@ const utils_1 = require("../../utils");
6
6
  * Identifier 节点迭代
7
7
  */
8
8
  const traverseIdentifier = (node, { namespace }) => {
9
- const tokenName = node.namespace ? `${node.namespace}.${node.name}` : node.name;
10
- (0, utils_1.addSymbolRef)(tokenName, node, namespace, '标识符');
9
+ (0, utils_1.addSymbolRef)(node.getTokenKeyWithNamespace(), node, namespace, '标识符');
11
10
  };
12
11
  exports.traverseIdentifier = traverseIdentifier;
13
12
  //# sourceMappingURL=identifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/identifier.ts"],"names":[],"mappings":";;;AAEA,uCAA2C;AAE3C;;GAEG;AACI,MAAM,kBAAkB,GAAyB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAChF,IAAA,oBAAY,EAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B"}
1
+ {"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/identifier.ts"],"names":[],"mappings":";;;AAEA,uCAA2C;AAE3C;;GAEG;AACI,MAAM,kBAAkB,GAAyB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAC9E,IAAA,oBAAY,EAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"member-expression.d.ts","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/member-expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,gBAAgB,CAE/D,CAAC"}
1
+ {"version":3,"file":"member-expression.d.ts","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/member-expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,gBAAgB,CAgD/D,CAAC"}
@@ -1,12 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.traverseMemberExpression = void 0;
4
- const expression_1 = require("./expression");
4
+ const utils_1 = require("../../utils");
5
5
  /**
6
6
  * MemberExpression 节点迭代
7
7
  */
8
- const traverseMemberExpression = (node, context) => {
9
- (0, expression_1.traverseExpression)(node.object, context);
8
+ const traverseMemberExpression = (node, { namespace, symbolGraph }) => {
9
+ function getRealType(symbol) {
10
+ const { declaration } = symbol;
11
+ if (!declaration) {
12
+ return;
13
+ }
14
+ const typeNode = declaration.__TypeAnnotation ?? declaration.typeAnnotation;
15
+ if (typeNode?.typeKind === 'reference') {
16
+ const token = `${typeNode.typeNamespace}.${typeNode.typeName}`;
17
+ return symbolGraph.getTypeSymbols().find((item) => item.semanticName === token);
18
+ }
19
+ else {
20
+ return symbol;
21
+ }
22
+ }
23
+ function getMemberExpressionType(member) {
24
+ let refTypeSymbol = undefined;
25
+ const { object, property } = member;
26
+ if (!object || !property) {
27
+ return;
28
+ }
29
+ if (object.concept === 'MemberExpression') {
30
+ refTypeSymbol = getMemberExpressionType(object);
31
+ }
32
+ else if (object.concept === 'Identifier') {
33
+ const refSymbol = (0, utils_1.addSymbolRef)(object.getTokenKeyWithNamespace(), object, namespace, '标识符');
34
+ refTypeSymbol = refSymbol ? symbolGraph.getTypeSymbolBySymbol(refSymbol, namespace) : undefined;
35
+ }
36
+ if (!refTypeSymbol) {
37
+ return;
38
+ }
39
+ // 匿名数据结构符号没有 semanticName 字段,所以用 name 代替
40
+ const subTypeToken = `${refTypeSymbol.semanticName ?? refTypeSymbol.name}.${property.name}`;
41
+ const subTypeSymbol = (0, utils_1.addSymbolRef)(subTypeToken, member, namespace, '属性访问');
42
+ const realTypeSymbol = subTypeSymbol ? getRealType(subTypeSymbol) : undefined;
43
+ return realTypeSymbol;
44
+ }
45
+ getMemberExpressionType(node);
10
46
  };
11
47
  exports.traverseMemberExpression = traverseMemberExpression;
12
48
  //# sourceMappingURL=member-expression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"member-expression.js","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/member-expression.ts"],"names":[],"mappings":";;;AAEA,6CAAkD;AAElD;;GAEG;AACI,MAAM,wBAAwB,GAA+B,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACpF,IAAA,+BAAkB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC"}
1
+ {"version":3,"file":"member-expression.js","sourceRoot":"","sources":["../../../../../../src/symbol/traverse/concepts/logic/expression/member-expression.ts"],"names":[],"mappings":";;;AAGA,uCAA2C;AAE3C;;GAEG;AACI,MAAM,wBAAwB,GAA+B,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;IACvG,SAAS,WAAW,CAAC,MAAc;QACjC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,IAAK,WAAmB,CAAC,cAAc,CAAC;QAErF,IAAI,QAAQ,EAAE,QAAQ,KAAK,WAAW,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC/D,OAAO,WAAW,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;QAClF,CAAC;aACI,CAAC;YACJ,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,SAAS,uBAAuB,CAAC,MAAwB;QACvD,IAAI,aAAa,GAAuB,SAAS,CAAC;QAElD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEpC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;YAC1C,aAAa,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;aACI,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5F,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,MAAM,YAAY,GAAG,GAAG,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5F,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAhDW,QAAA,wBAAwB,4BAgDnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/logic/logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwB5C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,KAAK,GAAG,aAAa,GAAG,eAAe,CAK3E,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,KAAK,GAAG,aAAa,GAAG,eAAe,CAKnF,CAAC"}
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/logic/logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA0C5C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,KAAK,GAAG,aAAa,GAAG,eAAe,CAK3E,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,KAAK,GAAG,aAAa,GAAG,eAAe,CAKnF,CAAC"}
@@ -4,11 +4,21 @@ exports.traverseLogicNoExport = exports.traverseLogic = void 0;
4
4
  const variable_1 = require("./variable");
5
5
  const statement_1 = require("./statement");
6
6
  const addSymbolLogic = (node, context) => {
7
- for (const param of node.params) {
8
- (0, variable_1.traverseVariable)(param, context);
7
+ const ignoreProps = context.getIgnoreProps(node.concept);
8
+ if (!ignoreProps.params) {
9
+ for (const param of node.params) {
10
+ (0, variable_1.traverseVariable)(param, context);
11
+ }
12
+ }
13
+ if (!ignoreProps.returns) {
14
+ for (const returnVal of node.returns) {
15
+ (0, variable_1.traverseVariable)(returnVal, context);
16
+ }
9
17
  }
10
- for (const returnVal of node.returns) {
11
- (0, variable_1.traverseVariable)(returnVal, context);
18
+ if (!ignoreProps.variables) {
19
+ for (const variable of node.variables) {
20
+ (0, variable_1.traverseVariable)(variable, context);
21
+ }
12
22
  }
13
23
  };
14
24
  const recursionLogic = (node, context) => {
@@ -18,6 +28,11 @@ const recursionLogic = (node, context) => {
18
28
  (0, statement_1.traverseStatement)(item, context);
19
29
  }
20
30
  }
31
+ if (!ignoreProps.playground) {
32
+ for (const item of node.playground) {
33
+ (0, statement_1.traverseStatement)(item, context);
34
+ }
35
+ }
21
36
  };
22
37
  /**
23
38
  * Logic 节点迭代
@@ -1 +1 @@
1
- {"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/logic/logic.ts"],"names":[],"mappings":";;;AAEA,yCAA8C;AAC9C,2CAAgD;AAEhD,MAAM,cAAc,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC1F,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAA,2BAAgB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,IAAA,2BAAgB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAA,6BAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACI,MAAM,aAAa,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,qBAAqB,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACxG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC"}
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/logic/logic.ts"],"names":[],"mappings":";;;AAEA,yCAA8C;AAC9C,2CAAgD;AAEhD,MAAM,cAAc,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAA,2BAAgB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,IAAA,2BAAgB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAA,2BAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAA,6BAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAA,6BAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACI,MAAM,aAAa,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,qBAAqB,GAAsD,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACxG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ5C,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CA2BlD,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAyBlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAKjD,CAAC"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CA2BlD,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAyBlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,SAAS,CAKjD,CAAC"}
@@ -5,9 +5,8 @@ const logic_1 = require("../logic");
5
5
  const structure_1 = require("../structure");
6
6
  const logic_2 = require("../logic");
7
7
  const enum_1 = require("../enum");
8
- // import { traverseEntityProp } from './entity-property';
9
8
  const addSymbolNamespace = (node, context) => {
10
- const { namespace, addSymbolWithScope } = context;
9
+ const { namespace, addSymbol, addSymbolWithScope } = context;
11
10
  // 逻辑
12
11
  for (const logic of node.logics) {
13
12
  addSymbolWithScope(logic.name, namespace, logic);
@@ -22,7 +21,7 @@ const addSymbolNamespace = (node, context) => {
22
21
  }
23
22
  // 接口
24
23
  for (const interfaceItem of node.interfaces) {
25
- context.addSymbol(interfaceItem.name, namespace, interfaceItem);
24
+ addSymbol(interfaceItem.name, namespace, interfaceItem);
26
25
  }
27
26
  // 子命名空间
28
27
  for (const child of node.children) {
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/namespace.ts"],"names":[],"mappings":";;;AAGA,oCAAyC;AACzC,4CAAiD;AACjD,oCAA6C;AAC7C,kCAAuC;AACvC,0DAA0D;AAEnD,MAAM,kBAAkB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAElD,KAAK;IACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;IACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK;IACL,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,KAAK;IACL,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAA,0BAAkB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAA;AA3BY,QAAA,kBAAkB,sBA2B9B;AAEM,MAAM,kBAAkB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACvE,SAAS;IACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAA,qBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;IACP,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAA,6BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;IACP,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,IAAA,mBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAA,0BAAkB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK;IACL,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAA,yBAAiB,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC,CAAA;AAzBY,QAAA,kBAAkB,sBAyB9B;AAED;;GAEG;AACI,MAAM,iBAAiB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACtE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAA,0BAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,IAAA,0BAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/namespace.ts"],"names":[],"mappings":";;;AAEA,oCAAyC;AACzC,4CAAiD;AACjD,oCAA6C;AAC7C,kCAAuC;AAEhC,MAAM,kBAAkB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAE7D,KAAK;IACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;IACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK;IACL,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,KAAK;IACL,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAA,0BAAkB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAA;AA3BY,QAAA,kBAAkB,sBA2B9B;AAEM,MAAM,kBAAkB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACvE,SAAS;IACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAA,qBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;IACP,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAA,6BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;IACP,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,IAAA,mBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAA,0BAAkB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK;IACL,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAA,yBAAiB,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC,CAAA;AAzBY,QAAA,kBAAkB,sBAyB9B;AAED;;GAEG;AACI,MAAM,iBAAiB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACtE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAA,0BAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,IAAA,0BAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"type-annotation.d.ts","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/type-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiC5C;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CA4B3D,CAAC"}
1
+ {"version":3,"file":"type-annotation.d.ts","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/type-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiC5C;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAgC3D,CAAC"}
@@ -56,9 +56,13 @@ const traverseTypeAnnotation = (node, context) => {
56
56
  (0, utils_1.addSymbolRef)(`${node.typeNamespace}.${node.typeName}`, node, context.namespace, getMessage(node.typeNamespace ?? ''));
57
57
  }
58
58
  else if (node.typeKind === 'anonymousStructure') {
59
+ // 匿名数据结构需要就地声明符号
60
+ context.addSymbolWithScope(node.getTokenKeyWithNamespace(), context.namespace, node, false);
61
+ context.pushNamespace(node);
59
62
  for (const prop of node.properties ?? []) {
60
63
  (0, structure_1.traverseStructureProperty)(prop, context);
61
64
  }
65
+ context.popNamespace();
62
66
  }
63
67
  };
64
68
  exports.traverseTypeAnnotation = traverseTypeAnnotation;
@@ -1 +1 @@
1
- {"version":3,"file":"type-annotation.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/type-annotation.ts"],"names":[],"mappings":";;;AAEA,oCAAwC;AACxC,4CAAyD;AAEzD,SAAS,UAAU,CAAC,SAAiB;IACnC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACI,MAAM,sBAAsB,GAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChF,QAAQ;IACR,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,SAAS;IACT,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACvC,IAAA,oBAAY,EAAC,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IACxH,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACzC,IAAA,qCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AA5BW,QAAA,sBAAsB,0BA4BjC"}
1
+ {"version":3,"file":"type-annotation.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/other/type-annotation.ts"],"names":[],"mappings":";;;AAEA,oCAAwC;AACxC,4CAAyD;AAEzD,SAAS,UAAU,CAAC,SAAiB;IACnC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;SACI,IAAI,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACI,MAAM,sBAAsB,GAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAChF,QAAQ;IACR,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,SAAS;IACT,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACvC,IAAA,oBAAY,EAAC,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;IACxH,CAAC;SACI,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QAChD,iBAAiB;QACjB,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5F,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACzC,IAAA,qCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,YAAY,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,sBAAsB,0BAgCjC"}
@@ -8,7 +8,7 @@ const expression_1 = require("../logic/expression");
8
8
  */
9
9
  const traverseStructureProperty = (node, context) => {
10
10
  // 属性添加节点
11
- context.addSymbol(node.name, context.namespace, node, false);
11
+ context.addSymbol(node.name, context.namespace, node);
12
12
  // 节点定义类型
13
13
  if (node.typeAnnotation) {
14
14
  (0, type_annotation_1.traverseTypeAnnotation)(node.typeAnnotation, context);
@@ -1 +1 @@
1
- {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/structure/structure.ts"],"names":[],"mappings":";;;AAEA,8DAAkE;AAClE,oDAAyD;AAEzD;;GAEG;AACI,MAAM,yBAAyB,GAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACtF,SAAS;IACT,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE7D,SAAS;IACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,IAAA,wCAAsB,EAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,UAAU;IACV,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAA,+BAAkB,EAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAbW,QAAA,yBAAyB,6BAapC;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACtE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS;IACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAA,iCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../../../src/symbol/traverse/concepts/structure/structure.ts"],"names":[],"mappings":";;;AAEA,8DAAkE;AAClE,oDAAyD;AAEzD;;GAEG;AACI,MAAM,yBAAyB,GAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACtF,SAAS;IACT,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEtD,SAAS;IACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,IAAA,wCAAsB,EAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,UAAU;IACV,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAA,+BAAkB,EAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAbW,QAAA,yBAAyB,6BAapC;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IACtE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS;IACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,IAAA,iCAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
@@ -13,5 +13,5 @@ export declare function TraverseVirtual<T extends SyntaxNode>(cb: Traverse<T>):
13
13
  /**
14
14
  * 记录令牌引用
15
15
  */
16
- export declare function addSymbolRef(token: string | Symbol, node: SyntaxNode, namespace: Namespace, message: string): void;
16
+ export declare function addSymbolRef(token: string | Symbol, node: SyntaxNode, namespace: Namespace, message: string): Symbol | undefined;
17
17
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/symbol/traverse/concepts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAoC,CAAC;AAEjE;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAQlF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAW3G"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/symbol/traverse/concepts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAoC,CAAC;AAEjE;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAQlF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAkB3G"}
@@ -29,7 +29,12 @@ function addSymbolRef(token, node, namespace, message) {
29
29
  // TODO: 未定义的符号错误
30
30
  return;
31
31
  }
32
+ // 跳过实体对自身的引用
33
+ if (symbol.declaration?.concept === 'Entity' && symbol.naslName && node.nodePath.indexOf(symbol.naslName) >= 0) {
34
+ return;
35
+ }
32
36
  symbol.references.push(node);
37
+ return symbol;
33
38
  }
34
39
  exports.addSymbolRef = addSymbolRef;
35
40
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/symbol/traverse/concepts/utils.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACI,MAAM,aAAa,GAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAApD,QAAA,aAAa,iBAAuC;AAEjE;;GAEG;AACH,SAAgB,eAAe,CAAuB,EAAe;IACnE,MAAM,QAAQ,GAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AARD,0CAQC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAsB,EAAE,IAAgB,EAAE,SAAoB,EAAE,OAAe;IAC1G,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ;QACtC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC;IAEV,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,iBAAiB;QACjB,OAAO;IACT,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAXD,oCAWC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/symbol/traverse/concepts/utils.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACI,MAAM,aAAa,GAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAApD,QAAA,aAAa,iBAAuC;AAEjE;;GAEG;AACH,SAAgB,eAAe,CAAuB,EAAe;IACnE,MAAM,QAAQ,GAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AARD,0CAQC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAsB,EAAE,IAAgB,EAAE,SAAoB,EAAE,OAAe;IAC1G,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ;QACtC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC;IAEV,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,iBAAiB;QACjB,OAAO;IACT,CAAC;IAED,aAAa;IACb,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/G,OAAO;IACT,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO,MAAM,CAAC;AAChB,CAAC;AAlBD,oCAkBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/symbol/traverse/traverse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,QAgG/F"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/symbol/traverse/traverse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,QAiG/F"}
@@ -10,6 +10,7 @@ function traverse(node, symbolGraph, options) {
10
10
  const nodeSymbolMap = new Map();
11
11
  const nodeNamespaceMap = new Map();
12
12
  const context = {
13
+ symbolGraph,
13
14
  pushNamespace(node, isExport = true) {
14
15
  const currentScope = scopeStack[scopeStack.length - 1];
15
16
  const oldNamespace = node && nodeNamespaceMap.get(node);
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/symbol/traverse/traverse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/symbol/traverse/traverse.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Namespace } from '../namespace';
2
+ import type { SymbolGraph } from '../graph';
2
3
  import type { SyntaxNode, SyntaxNodeConcept } from '@lcap/nasl-concepts';
3
4
  export interface Context {
4
5
  /** 当前命名空间 */
@@ -7,6 +8,8 @@ export interface Context {
7
8
  globalNamespace: Namespace;
8
9
  /** 当前子树是否是虚拟的 */
9
10
  isVirtual: boolean;
11
+ /** 符号表 */
12
+ symbolGraph: SymbolGraph;
10
13
  /** 获取忽略属性 */
11
14
  getIgnoreProps(concept: string): Readonly<Record<string, boolean>>;
12
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/symbol/traverse/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,WAAW,OAAO;IACtB,aAAa;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa;IACb,eAAe,EAAE,SAAS,CAAC;IAC3B,iBAAiB;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa;IACb,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1G;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClG,YAAY;IACZ,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1D,aAAa;IACb,YAAY,IAAI,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AACpG,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/symbol/traverse/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,MAAM,WAAW,OAAO;IACtB,aAAa;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa;IACb,eAAe,EAAE,SAAS,CAAC;IAC3B,iBAAiB;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU;IACV,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa;IACb,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1G;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClG,YAAY;IACZ,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1D,aAAa;IACb,YAAY,IAAI,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AACpG,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SyntaxNode, Enum, Structure, Entity } from '@lcap/nasl-concepts';
2
+ /** 类型节点 */
3
+ export type TypeNode = Enum | Structure | Entity;
4
+ export declare function isTypeNode(node: SyntaxNode): node is TypeNode;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/symbol/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,IAAI,EAAE,SAAS,EAAE,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAEnG,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,QAAQ,CAM7D"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTypeNode = void 0;
4
+ const nasl_concepts_1 = require("@lcap/nasl-concepts");
5
+ function isTypeNode(node) {
6
+ return (nasl_concepts_1.asserts.isStructure(node) ||
7
+ nasl_concepts_1.asserts.isEntity(node) ||
8
+ nasl_concepts_1.asserts.isEnum(node));
9
+ }
10
+ exports.isTypeNode = isTypeNode;
11
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/symbol/utils.ts"],"names":[],"mappings":";;;AAAA,uDAAmG;AAKnG,SAAgB,UAAU,CAAC,IAAgB;IACzC,OAAO,CACL,uBAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QACzB,uBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,uBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CACrB,CAAC;AACJ,CAAC;AAND,gCAMC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lcap/nasl-language-server-core",
3
3
  "description": "NetEase Application Specific Language",
4
- "version": "3.13.1-debug.6",
4
+ "version": "3.13.1-rc.10",
5
5
  "main": "./out",
6
6
  "types": "./out",
7
7
  "source": "./src",
@@ -14,9 +14,9 @@
14
14
  "dependencies": {
15
15
  "lodash": "4.17.21",
16
16
  "vue": "3.4.33",
17
- "@lcap/nasl-concepts": "3.13.1-debug.6",
18
- "@lcap/nasl-types": "3.13.1-debug.6",
19
- "@lcap/nasl-utils": "3.13.1-debug.6"
17
+ "@lcap/nasl-types": "3.13.1-rc.10",
18
+ "@lcap/nasl-concepts": "3.13.1-rc.10",
19
+ "@lcap/nasl-utils": "3.13.1-rc.10"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/lodash": "4.17.0",
@@ -26,7 +26,7 @@
26
26
  "tslib": "2.6.2",
27
27
  "typescript": "5.4.4",
28
28
  "@lcap/nasl-test-toolkit": "1.0.0",
29
- "@lcap/nasl-translator": "3.13.1-debug.6",
29
+ "@lcap/nasl-translator": "3.13.1-rc.10",
30
30
  "@lcap/nasl-tsconfig": "1.0.1"
31
31
  },
32
32
  "scripts": {