brighterscript 1.0.0-alpha.21 → 1.0.0-alpha.22

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 (73) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/README.md +6 -3
  3. package/bsconfig.schema.json +10 -2
  4. package/dist/BsConfig.d.ts +5 -0
  5. package/dist/DependencyGraph.d.ts +2 -2
  6. package/dist/DependencyGraph.js +15 -3
  7. package/dist/DependencyGraph.js.map +1 -1
  8. package/dist/DiagnosticCollection.d.ts +3 -3
  9. package/dist/DiagnosticCollection.js +11 -11
  10. package/dist/DiagnosticCollection.js.map +1 -1
  11. package/dist/DiagnosticFilterer.js +4 -3
  12. package/dist/DiagnosticFilterer.js.map +1 -1
  13. package/dist/LanguageServer.d.ts +48 -26
  14. package/dist/LanguageServer.js +281 -211
  15. package/dist/LanguageServer.js.map +1 -1
  16. package/dist/Program.js +1 -1
  17. package/dist/Program.js.map +1 -1
  18. package/dist/ProgramBuilder.js +11 -11
  19. package/dist/ProgramBuilder.js.map +1 -1
  20. package/dist/Scope.js +6 -3
  21. package/dist/Scope.js.map +1 -1
  22. package/dist/astUtils/AstEditor.d.ts +32 -0
  23. package/dist/astUtils/AstEditor.js +132 -0
  24. package/dist/astUtils/AstEditor.js.map +1 -1
  25. package/dist/astUtils/AstEditor.spec.js +118 -34
  26. package/dist/astUtils/AstEditor.spec.js.map +1 -1
  27. package/dist/astUtils/creators.d.ts +6 -2
  28. package/dist/astUtils/creators.js +9 -2
  29. package/dist/astUtils/creators.js.map +1 -1
  30. package/dist/astUtils/reflection.d.ts +3 -3
  31. package/dist/astUtils/reflection.js +9 -7
  32. package/dist/astUtils/reflection.js.map +1 -1
  33. package/dist/astUtils/visitors.d.ts +74 -64
  34. package/dist/astUtils/visitors.js +30 -10
  35. package/dist/astUtils/visitors.js.map +1 -1
  36. package/dist/astUtils/visitors.spec.js +95 -3
  37. package/dist/astUtils/visitors.spec.js.map +1 -1
  38. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +36 -25
  39. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  40. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +57 -0
  41. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  42. package/dist/cli.js +1 -0
  43. package/dist/cli.js.map +1 -1
  44. package/dist/files/BrsFile.Class.spec.js +83 -2
  45. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  46. package/dist/files/BrsFile.d.ts +8 -0
  47. package/dist/files/BrsFile.js +46 -28
  48. package/dist/files/BrsFile.js.map +1 -1
  49. package/dist/files/BrsFile.spec.js +83 -0
  50. package/dist/files/BrsFile.spec.js.map +1 -1
  51. package/dist/files/XmlFile.js +5 -4
  52. package/dist/files/XmlFile.js.map +1 -1
  53. package/dist/index.js +5 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/interfaces.d.ts +1 -1
  56. package/dist/parser/BrsTranspileState.d.ts +2 -0
  57. package/dist/parser/BrsTranspileState.js +5 -0
  58. package/dist/parser/BrsTranspileState.js.map +1 -1
  59. package/dist/parser/Expression.js +6 -23
  60. package/dist/parser/Expression.js.map +1 -1
  61. package/dist/parser/Parser.Class.spec.js.map +1 -1
  62. package/dist/parser/Parser.d.ts +3 -3
  63. package/dist/parser/Parser.js +6 -6
  64. package/dist/parser/Parser.js.map +1 -1
  65. package/dist/parser/Statement.d.ts +12 -16
  66. package/dist/parser/Statement.js +76 -69
  67. package/dist/parser/Statement.js.map +1 -1
  68. package/dist/util.d.ts +4 -5
  69. package/dist/util.js +26 -21
  70. package/dist/util.js.map +1 -1
  71. package/dist/validators/ClassValidator.js +6 -6
  72. package/dist/validators/ClassValidator.js.map +1 -1
  73. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"AstEditor.spec.js","sourceRoot":"","sources":["../../src/astUtils/AstEditor.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AstEditor.spec.js","sourceRoot":"","sources":["../../src/astUtils/AstEditor.spec.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { SGAttribute, SGComponent, SGInterface, SGInterfaceField, SGInterfaceFun
4
4
  import { TokenKind } from '../lexer/TokenKind';
5
5
  import type { Expression, NamespacedVariableNameExpression } from '../parser/Expression';
6
6
  import { LiteralExpression, CallExpression, DottedGetExpression, VariableExpression, FunctionExpression } from '../parser/Expression';
7
- import { ClassMethodStatement } from '../parser/Statement';
7
+ import { MethodStatement } from '../parser/Statement';
8
8
  /**
9
9
  * A range that points to the beginning of the file. Used to give non-null ranges to programmatically-added source code.
10
10
  * (Hardcoded range to prevent circular dependency issue in `../util.ts`)
@@ -27,7 +27,11 @@ export declare function createFloatLiteral(value: string, range?: Range): Litera
27
27
  export declare function createInvalidLiteral(value?: string, range?: Range): LiteralExpression;
28
28
  export declare function createBooleanLiteral(value: 'true' | 'false', range?: Range): LiteralExpression;
29
29
  export declare function createFunctionExpression(kind: TokenKind.Sub | TokenKind.Function): FunctionExpression;
30
- export declare function createClassMethodStatement(name: string, kind?: TokenKind.Sub | TokenKind.Function, accessModifier?: Token): ClassMethodStatement;
30
+ export declare function createMethodStatement(name: string, kind?: TokenKind.Sub | TokenKind.Function, modifiers?: Token[]): MethodStatement;
31
+ /**
32
+ * @deprecated use `createMethodStatement`
33
+ */
34
+ export declare function createClassMethodStatement(name: string, kind?: TokenKind.Sub | TokenKind.Function, accessModifier?: Token): MethodStatement;
31
35
  export declare function createCall(callee: Expression, args?: Expression[], namespaceName?: NamespacedVariableNameExpression): CallExpression;
32
36
  /**
33
37
  * Create an SGAttribute without any ranges
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSGScript = exports.createSGInterface = exports.createSGInterfaceFunction = exports.createSGComponent = exports.createSGInterfaceField = exports.createSGAttribute = exports.createCall = exports.createClassMethodStatement = exports.createFunctionExpression = exports.createBooleanLiteral = exports.createInvalidLiteral = exports.createFloatLiteral = exports.createIntegerLiteral = exports.createStringLiteral = exports.createDottedIdentifier = exports.createVariableExpression = exports.createIdentifier = exports.createToken = exports.interpolatedRange = void 0;
3
+ exports.createSGScript = exports.createSGInterface = exports.createSGInterfaceFunction = exports.createSGComponent = exports.createSGInterfaceField = exports.createSGAttribute = exports.createCall = exports.createClassMethodStatement = exports.createMethodStatement = exports.createFunctionExpression = exports.createBooleanLiteral = exports.createInvalidLiteral = exports.createFloatLiteral = exports.createIntegerLiteral = exports.createStringLiteral = exports.createDottedIdentifier = exports.createVariableExpression = exports.createIdentifier = exports.createToken = exports.interpolatedRange = void 0;
4
4
  const SGTypes_1 = require("../parser/SGTypes");
5
5
  const TokenKind_1 = require("../lexer/TokenKind");
6
6
  const Expression_1 = require("../parser/Expression");
@@ -144,8 +144,15 @@ function createFunctionExpression(kind) {
144
144
  return new Expression_1.FunctionExpression([], new Statement_1.Block([], exports.interpolatedRange), createToken(kind), kind === TokenKind_1.TokenKind.Sub ? createToken(TokenKind_1.TokenKind.EndSub) : createToken(TokenKind_1.TokenKind.EndFunction), createToken(TokenKind_1.TokenKind.LeftParen), createToken(TokenKind_1.TokenKind.RightParen));
145
145
  }
146
146
  exports.createFunctionExpression = createFunctionExpression;
147
+ function createMethodStatement(name, kind = TokenKind_1.TokenKind.Function, modifiers) {
148
+ return new Statement_1.MethodStatement(modifiers, createIdentifier(name), createFunctionExpression(kind), null);
149
+ }
150
+ exports.createMethodStatement = createMethodStatement;
151
+ /**
152
+ * @deprecated use `createMethodStatement`
153
+ */
147
154
  function createClassMethodStatement(name, kind = TokenKind_1.TokenKind.Function, accessModifier) {
148
- return new Statement_1.ClassMethodStatement(accessModifier, createIdentifier(name), createFunctionExpression(kind), null);
155
+ return createMethodStatement(name, kind, [accessModifier]);
149
156
  }
150
157
  exports.createClassMethodStatement = createClassMethodStatement;
151
158
  function createCall(callee, args, namespaceName) {
@@ -1 +1 @@
1
- {"version":3,"file":"creators.js","sourceRoot":"","sources":["../../src/astUtils/creators.ts"],"names":[],"mappings":";;;AAEA,+CAA2H;AAC3H,kDAA+C;AAE/C,qDAAsI;AACtI,mDAAkE;AAElE;;;GAGG;AACU,QAAA,iBAAiB,GAAG;IAC7B,KAAK,EAAE;QACH,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;KACf;IACD,GAAG,EAAE;QACD,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;KACf;CACK,CAAC;AAEX,MAAM,aAAa,GAAG;IAClB,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,GAAG;IACzB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,KAAK;IACjC,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;IAC1B,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,IAAI;IACzB,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,GAAG;IACvB,CAAC,qBAAS,CAAC,GAAG,CAAC,EAAE,GAAG;IACpB,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,WAAW;IACjC,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,UAAU;IAC/B,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,SAAS;IAC7B,CAAC,qBAAS,CAAC,WAAW,CAAC,EAAE,cAAc;IACvC,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,QAAQ;IAC3B,CAAC,qBAAS,CAAC,YAAY,CAAC,EAAE,eAAe;IACzC,CAAC,qBAAS,CAAC,YAAY,CAAC,EAAE,eAAe;IACzC,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,SAAS;IAC7B,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,SAAS;IAC7B,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,WAAW;IACjC,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,GAAG;IACxB,CAAC,qBAAS,CAAC,YAAY,CAAC,EAAE,IAAI;IAC9B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,GAAG;IAC/B,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,GAAG;IAC1B,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,KAAK;IACjC,CAAC,qBAAS,CAAC,iBAAiB,CAAC,EAAE,GAAG;IAClC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IACrB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,WAAW,CAAC,EAAE,IAAI;IAC7B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,UAAU;IACtC,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IAC5B,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IAC5B,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,IAAI;IACzB,CAAC,qBAAS,CAAC,kBAAkB,CAAC,EAAE,cAAc;IAC9C,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,UAAU;IACtC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IACrB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;IAC1B,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,GAAG;IACzB,CAAC,qBAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI;IAClC,CAAC,qBAAS,CAAC,eAAe,CAAC,EAAE,GAAG;IAChC,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,GAAG;IAC3B,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IAC5B,CAAC,qBAAS,CAAC,eAAe,CAAC,EAAE,KAAK;IAClC,CAAC,qBAAS,CAAC,kBAAkB,CAAC,EAAE,GAAG;IACnC,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,GAAG;IAC1B,CAAC,qBAAS,CAAC,qBAAqB,CAAC,EAAE,kBAAkB;IACrD,CAAC,qBAAS,CAAC,yBAAyB,CAAC,EAAE,sBAAsB;IAC7D,CAAC,qBAAS,CAAC,oBAAoB,CAAC,EAAE,iBAAiB;IACnD,CAAC,qBAAS,CAAC,qBAAqB,CAAC,EAAE,iBAAiB;IACpD,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IACrB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,GAAG,CAAC,EAAE,IAAI;IACrB,CAAC,qBAAS,CAAC,6BAA6B,CAAC,EAAE,IAAI;IAC/C,CAAC,qBAAS,CAAC,2BAA2B,CAAC,EAAE,GAAG;IAC5C,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,GAAG;CAC9B,CAAC;AAEF,SAAgB,WAAW,CAAsB,IAAO,EAAE,IAAa,EAAE,KAAK,GAAG,yBAAiB;;IAC9F,OAAO;QACH,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,aAAa,CAAC,IAAc,CAAC,mCAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;QAC5E,UAAU,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC7C,KAAK,EAAE,KAAK;QACZ,iBAAiB,EAAE,EAAE;KACxB,CAAC;AACN,CAAC;AARD,kCAQC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,KAAa;IACxD,OAAO;QACH,IAAI,EAAE,qBAAS,CAAC,UAAU;QAC1B,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,KAAK;QACZ,iBAAiB,EAAE,EAAE;KACxB,CAAC;AACN,CAAC;AARD,4CAQC;AAED,SAAgB,wBAAwB,CAAC,KAAa,EAAE,KAAa,EAAE,aAAgD;IACnH,OAAO,IAAI,+BAAkB,CAAC,WAAW,CAAC,qBAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;AAClG,CAAC;AAFD,4DAEC;AAED,SAAgB,sBAAsB,CAAC,IAAc,EAAE,KAAa,EAAE,aAAgD;IAClH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC3I,OAAO,IAAI,gCAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,qBAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,qBAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACjI,CAAC;AAJD,wDAIC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,KAAa;IAC5D,iCAAiC;IACjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAChD,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;KAC7B;IACD,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrF,CAAC;AAND,kDAMC;AACD,SAAgB,oBAAoB,CAAC,KAAa,EAAE,KAAa;IAC7D,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtF,CAAC;AAFD,oDAEC;AACD,SAAgB,kBAAkB,CAAC,KAAa,EAAE,KAAa;IAC3D,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC;AAFD,gDAEC;AACD,SAAgB,oBAAoB,CAAC,KAAc,EAAE,KAAa;IAC9D,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAFD,oDAEC;AACD,SAAgB,oBAAoB,CAAC,KAAuB,EAAE,KAAa;IACvE,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACjH,CAAC;AAFD,oDAEC;AACD,SAAgB,wBAAwB,CAAC,IAAwC;IAC7E,OAAO,IAAI,+BAAkB,CACzB,EAAE,EACF,IAAI,iBAAK,CAAC,EAAE,EAAE,yBAAiB,CAAC,EAChC,WAAW,CAAC,IAAI,CAAC,EACjB,IAAI,KAAK,qBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,qBAAS,CAAC,WAAW,CAAC,EAC3F,WAAW,CAAC,qBAAS,CAAC,SAAS,CAAC,EAChC,WAAW,CAAC,qBAAS,CAAC,UAAU,CAAC,CACpC,CAAC;AACN,CAAC;AATD,4DASC;AAED,SAAgB,0BAA0B,CAAC,IAAY,EAAE,OAA2C,qBAAS,CAAC,QAAQ,EAAE,cAAsB;IAC1I,OAAO,IAAI,gCAAoB,CAC3B,cAAc,EACd,gBAAgB,CAAC,IAAI,CAAC,EACtB,wBAAwB,CAAC,IAAI,CAAC,EAC9B,IAAI,CACP,CAAC;AACN,CAAC;AAPD,gEAOC;AAED,SAAgB,UAAU,CAAC,MAAkB,EAAE,IAAmB,EAAE,aAAgD;IAChH,OAAO,IAAI,2BAAc,CACrB,MAAM,EACN,WAAW,CAAC,qBAAS,CAAC,SAAS,EAAE,GAAG,CAAC,EACrC,WAAW,CAAC,qBAAS,CAAC,UAAU,EAAE,GAAG,CAAC,EACtC,IAAI,IAAI,EAAE,EACV,aAAa,CAChB,CAAC;AACN,CAAC;AARD,gCAQC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,KAAa;IAC5D,OAAO,IAAI,qBAAW,CAClB,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,EAAE,IAAI,EAAE,GAAG,EAAE,CAChB,CAAC;AACN,CAAC;AARD,8CAQC;AAED,SAAgB,sBAAsB,CAAC,EAAU,EAAE,aAA0G,EAAE;IAC3J,MAAM,KAAK,GAAG;QACV,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;KAC9B,CAAC;IACF,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QACxB,KAAK,CAAC,IAAI,CACN,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAC1C,CAAC;KACL;IACD,OAAO,IAAI,0BAAgB,CACvB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,KAAK,EACL,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;AACN,CAAC;AAfD,wDAeC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,UAAmB;IAC/D,MAAM,UAAU,GAAG;QACf,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;KAClC,CAAC;IACF,IAAI,UAAU,EAAE;QACZ,UAAU,CAAC,IAAI,CACX,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAC3C,CAAC;KACL;IACD,OAAO,IAAI,qBAAW,CAClB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,UAAU,EACV,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,EACF,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,IAAI,EAAE,GAAG,EAAE,CAChB,CAAC;AACN,CAAC;AAnBD,8CAmBC;AAED,SAAgB,yBAAyB,CAAC,YAAoB;IAC1D,OAAO,IAAI,6BAAmB,CAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EACzC,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;AACN,CAAC;AAPD,8DAOC;AAED,SAAgB,iBAAiB;IAC7B,OAAO,IAAI,qBAAW,CAClB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,EACF,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,EACF,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,IAAI,EAAE,GAAG,EAAE,CAChB,CAAC;AACN,CAAC;AAXD,8CAWC;AAED,SAAgB,cAAc,CAAC,UAA2C;IACtE,MAAM,KAAK,GAAG,EAAmB,CAAC;IAClC,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QACxB,KAAK,CAAC,IAAI,CACN,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAC1C,CAAC;KACL;IACD,OAAO,IAAI,kBAAQ,CACf,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,KAAK,EACL,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;AACN,CAAC;AAbD,wCAaC"}
1
+ {"version":3,"file":"creators.js","sourceRoot":"","sources":["../../src/astUtils/creators.ts"],"names":[],"mappings":";;;AAEA,+CAA2H;AAC3H,kDAA+C;AAE/C,qDAAsI;AACtI,mDAA6D;AAE7D;;;GAGG;AACU,QAAA,iBAAiB,GAAG;IAC7B,KAAK,EAAE;QACH,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;KACf;IACD,GAAG,EAAE;QACD,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,CAAC;KACf;CACK,CAAC;AAEX,MAAM,aAAa,GAAG;IAClB,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,GAAG;IACzB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,KAAK;IACjC,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;IAC1B,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,IAAI;IACzB,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,GAAG;IACvB,CAAC,qBAAS,CAAC,GAAG,CAAC,EAAE,GAAG;IACpB,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,WAAW;IACjC,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,UAAU;IAC/B,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,SAAS;IAC7B,CAAC,qBAAS,CAAC,WAAW,CAAC,EAAE,cAAc;IACvC,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,QAAQ;IAC3B,CAAC,qBAAS,CAAC,YAAY,CAAC,EAAE,eAAe;IACzC,CAAC,qBAAS,CAAC,YAAY,CAAC,EAAE,eAAe;IACzC,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,SAAS;IAC7B,CAAC,qBAAS,CAAC,MAAM,CAAC,EAAE,SAAS;IAC7B,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,WAAW;IACjC,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,GAAG;IACxB,CAAC,qBAAS,CAAC,YAAY,CAAC,EAAE,IAAI;IAC9B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,GAAG;IAC/B,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,GAAG;IAC1B,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,KAAK;IACjC,CAAC,qBAAS,CAAC,iBAAiB,CAAC,EAAE,GAAG;IAClC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IACrB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,WAAW,CAAC,EAAE,IAAI;IAC7B,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,UAAU;IACtC,CAAC,qBAAS,CAAC,KAAK,CAAC,EAAE,GAAG;IACtB,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IAC5B,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IAC5B,CAAC,qBAAS,CAAC,OAAO,CAAC,EAAE,IAAI;IACzB,CAAC,qBAAS,CAAC,kBAAkB,CAAC,EAAE,cAAc;IAC9C,CAAC,qBAAS,CAAC,cAAc,CAAC,EAAE,UAAU;IACtC,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IACrB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;IAC1B,CAAC,qBAAS,CAAC,QAAQ,CAAC,EAAE,GAAG;IACzB,CAAC,qBAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI;IAClC,CAAC,qBAAS,CAAC,eAAe,CAAC,EAAE,GAAG;IAChC,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,GAAG;IAC3B,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,IAAI;IAC5B,CAAC,qBAAS,CAAC,eAAe,CAAC,EAAE,KAAK;IAClC,CAAC,qBAAS,CAAC,kBAAkB,CAAC,EAAE,GAAG;IACnC,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,GAAG;IAC1B,CAAC,qBAAS,CAAC,qBAAqB,CAAC,EAAE,kBAAkB;IACrD,CAAC,qBAAS,CAAC,yBAAyB,CAAC,EAAE,sBAAsB;IAC7D,CAAC,qBAAS,CAAC,oBAAoB,CAAC,EAAE,iBAAiB;IACnD,CAAC,qBAAS,CAAC,qBAAqB,CAAC,EAAE,iBAAiB;IACpD,CAAC,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG;IACrB,CAAC,qBAAS,CAAC,SAAS,CAAC,EAAE,IAAI;IAC3B,CAAC,qBAAS,CAAC,GAAG,CAAC,EAAE,IAAI;IACrB,CAAC,qBAAS,CAAC,6BAA6B,CAAC,EAAE,IAAI;IAC/C,CAAC,qBAAS,CAAC,2BAA2B,CAAC,EAAE,GAAG;IAC5C,CAAC,qBAAS,CAAC,UAAU,CAAC,EAAE,GAAG;CAC9B,CAAC;AAEF,SAAgB,WAAW,CAAsB,IAAO,EAAE,IAAa,EAAE,KAAK,GAAG,yBAAiB;;IAC9F,OAAO;QACH,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,aAAa,CAAC,IAAc,CAAC,mCAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;QAC5E,UAAU,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC7C,KAAK,EAAE,KAAK;QACZ,iBAAiB,EAAE,EAAE;KACxB,CAAC;AACN,CAAC;AARD,kCAQC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,KAAa;IACxD,OAAO;QACH,IAAI,EAAE,qBAAS,CAAC,UAAU;QAC1B,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,KAAK;QACZ,iBAAiB,EAAE,EAAE;KACxB,CAAC;AACN,CAAC;AARD,4CAQC;AAED,SAAgB,wBAAwB,CAAC,KAAa,EAAE,KAAa,EAAE,aAAgD;IACnH,OAAO,IAAI,+BAAkB,CAAC,WAAW,CAAC,qBAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;AAClG,CAAC;AAFD,4DAEC;AAED,SAAgB,sBAAsB,CAAC,IAAc,EAAE,KAAa,EAAE,aAAgD;IAClH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC3I,OAAO,IAAI,gCAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,qBAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,qBAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACjI,CAAC;AAJD,wDAIC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,KAAa;IAC5D,iCAAiC;IACjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAChD,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;KAC7B;IACD,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrF,CAAC;AAND,kDAMC;AACD,SAAgB,oBAAoB,CAAC,KAAa,EAAE,KAAa;IAC7D,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtF,CAAC;AAFD,oDAEC;AACD,SAAgB,kBAAkB,CAAC,KAAa,EAAE,KAAa;IAC3D,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC;AAFD,gDAEC;AACD,SAAgB,oBAAoB,CAAC,KAAc,EAAE,KAAa;IAC9D,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,qBAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAFD,oDAEC;AACD,SAAgB,oBAAoB,CAAC,KAAuB,EAAE,KAAa;IACvE,OAAO,IAAI,8BAAiB,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACjH,CAAC;AAFD,oDAEC;AACD,SAAgB,wBAAwB,CAAC,IAAwC;IAC7E,OAAO,IAAI,+BAAkB,CACzB,EAAE,EACF,IAAI,iBAAK,CAAC,EAAE,EAAE,yBAAiB,CAAC,EAChC,WAAW,CAAC,IAAI,CAAC,EACjB,IAAI,KAAK,qBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,qBAAS,CAAC,WAAW,CAAC,EAC3F,WAAW,CAAC,qBAAS,CAAC,SAAS,CAAC,EAChC,WAAW,CAAC,qBAAS,CAAC,UAAU,CAAC,CACpC,CAAC;AACN,CAAC;AATD,4DASC;AAED,SAAgB,qBAAqB,CAAC,IAAY,EAAE,OAA2C,qBAAS,CAAC,QAAQ,EAAE,SAAmB;IAClI,OAAO,IAAI,2BAAe,CACtB,SAAS,EACT,gBAAgB,CAAC,IAAI,CAAC,EACtB,wBAAwB,CAAC,IAAI,CAAC,EAC9B,IAAI,CACP,CAAC;AACN,CAAC;AAPD,sDAOC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,IAAY,EAAE,OAA2C,qBAAS,CAAC,QAAQ,EAAE,cAAsB;IAC1I,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC/D,CAAC;AAFD,gEAEC;AAED,SAAgB,UAAU,CAAC,MAAkB,EAAE,IAAmB,EAAE,aAAgD;IAChH,OAAO,IAAI,2BAAc,CACrB,MAAM,EACN,WAAW,CAAC,qBAAS,CAAC,SAAS,EAAE,GAAG,CAAC,EACrC,WAAW,CAAC,qBAAS,CAAC,UAAU,EAAE,GAAG,CAAC,EACtC,IAAI,IAAI,EAAE,EACV,aAAa,CAChB,CAAC;AACN,CAAC;AARD,gCAQC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,KAAa;IAC5D,OAAO,IAAI,qBAAW,CAClB,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,EAAE,IAAI,EAAE,GAAG,EAAE,CAChB,CAAC;AACN,CAAC;AARD,8CAQC;AAED,SAAgB,sBAAsB,CAAC,EAAU,EAAE,aAA0G,EAAE;IAC3J,MAAM,KAAK,GAAG;QACV,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;KAC9B,CAAC;IACF,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QACxB,KAAK,CAAC,IAAI,CACN,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAC1C,CAAC;KACL;IACD,OAAO,IAAI,0BAAgB,CACvB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,KAAK,EACL,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;AACN,CAAC;AAfD,wDAeC;AAED,SAAgB,iBAAiB,CAAC,IAAY,EAAE,UAAmB;IAC/D,MAAM,UAAU,GAAG;QACf,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;KAClC,CAAC;IACF,IAAI,UAAU,EAAE;QACZ,UAAU,CAAC,IAAI,CACX,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAC3C,CAAC;KACL;IACD,OAAO,IAAI,qBAAW,CAClB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,UAAU,EACV,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,EACF,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,IAAI,EAAE,GAAG,EAAE,CAChB,CAAC;AACN,CAAC;AAnBD,8CAmBC;AAED,SAAgB,yBAAyB,CAAC,YAAoB;IAC1D,OAAO,IAAI,6BAAmB,CAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EACzC,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;AACN,CAAC;AAPD,8DAOC;AAED,SAAgB,iBAAiB;IAC7B,OAAO,IAAI,qBAAW,CAClB,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,EACF,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,EACF,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,EAAE,IAAI,EAAE,WAAW,EAAE,EACrB,EAAE,IAAI,EAAE,GAAG,EAAE,CAChB,CAAC;AACN,CAAC;AAXD,8CAWC;AAED,SAAgB,cAAc,CAAC,UAA2C;IACtE,MAAM,KAAK,GAAG,EAAmB,CAAC;IAClC,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QACxB,KAAK,CAAC,IAAI,CACN,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAC1C,CAAC;KACL;IACD,OAAO,IAAI,kBAAQ,CACf,EAAE,IAAI,EAAE,GAAG,EAAE,EACb,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,KAAK,EACL,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAC;AACN,CAAC;AAbD,wCAaC"}
@@ -1,4 +1,4 @@
1
- import type { Body, AssignmentStatement, Block, ExpressionStatement, CommentStatement, ExitForStatement, ExitWhileStatement, FunctionStatement, IfStatement, IncrementStatement, PrintStatement, GotoStatement, LabelStatement, ReturnStatement, EndStatement, StopStatement, ForStatement, ForEachStatement, WhileStatement, DottedSetStatement, IndexedSetStatement, LibraryStatement, NamespaceStatement, ImportStatement, ClassFieldStatement, ClassMethodStatement, ClassStatement, Statement, InterfaceFieldStatement, InterfaceMethodStatement, InterfaceStatement, EnumStatement, EnumMemberStatement, TryCatchStatement, CatchStatement } from '../parser/Statement';
1
+ import type { Body, AssignmentStatement, Block, ExpressionStatement, CommentStatement, ExitForStatement, ExitWhileStatement, FunctionStatement, IfStatement, IncrementStatement, PrintStatement, GotoStatement, LabelStatement, ReturnStatement, EndStatement, StopStatement, ForStatement, ForEachStatement, WhileStatement, DottedSetStatement, IndexedSetStatement, LibraryStatement, NamespaceStatement, ImportStatement, ClassStatement, Statement, InterfaceFieldStatement, InterfaceMethodStatement, InterfaceStatement, EnumStatement, EnumMemberStatement, TryCatchStatement, CatchStatement, MethodStatement, FieldStatement } from '../parser/Statement';
2
2
  import type { LiteralExpression, Expression, BinaryExpression, CallExpression, FunctionExpression, NamespacedVariableNameExpression, DottedGetExpression, XmlAttributeGetExpression, IndexedGetExpression, GroupingExpression, EscapedCharCodeLiteralExpression, ArrayLiteralExpression, AALiteralExpression, UnaryExpression, VariableExpression, SourceLiteralExpression, NewExpression, CallfuncExpression, TemplateStringQuasiExpression, TemplateStringExpression, TaggedTemplateStringExpression, AnnotationExpression, FunctionParameterExpression, AAMemberExpression, RegexLiteralExpression, TypeExpression } from '../parser/Expression';
3
3
  import type { BrsFile } from '../files/BrsFile';
4
4
  import type { XmlFile } from '../files/XmlFile';
@@ -59,8 +59,8 @@ export declare function isLibraryStatement(element: Statement | Expression | und
59
59
  export declare function isNamespaceStatement(element: Statement | Expression | undefined): element is NamespaceStatement;
60
60
  export declare function isClassStatement(element: Statement | Expression | undefined): element is ClassStatement;
61
61
  export declare function isImportStatement(element: Statement | Expression | undefined): element is ImportStatement;
62
- export declare function isClassMethodStatement(element: Statement | Expression | undefined): element is ClassMethodStatement;
63
- export declare function isClassFieldStatement(element: Statement | Expression | undefined): element is ClassFieldStatement;
62
+ export declare function isMethodStatement(element: Statement | Expression | undefined): element is MethodStatement;
63
+ export declare function isFieldStatement(element: Statement | Expression | undefined): element is FieldStatement;
64
64
  export declare function isInterfaceStatement(element: Statement | Expression | undefined): element is InterfaceStatement;
65
65
  export declare function isInterfaceMethodStatement(element: Statement | Expression | undefined): element is InterfaceMethodStatement;
66
66
  export declare function isInterfaceFieldStatement(element: Statement | Expression | undefined): element is InterfaceFieldStatement;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isNamespacedVariableNameExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isCatchStatement = exports.isTryCatchStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isClassFieldStatement = exports.isClassMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitWhileStatement = exports.isExitForStatement = exports.isCommentStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isXmlScope = exports.isXmlFile = exports.isBrsFile = void 0;
3
+ exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isNamespacedVariableNameExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isCatchStatement = exports.isTryCatchStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isFieldStatement = exports.isMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitWhileStatement = exports.isExitForStatement = exports.isCommentStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isXmlScope = exports.isXmlFile = exports.isBrsFile = void 0;
4
4
  exports.isSGInterfaceFunction = exports.isSGInterfaceField = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNumberType = exports.isEnumMemberType = exports.isEnumType = exports.isLazyType = exports.isDynamicType = exports.isObjectType = exports.isArrayType = exports.isInterfaceType = exports.isUninitializedType = exports.isCustomType = exports.isVoidType = exports.isInvalidType = exports.isPrimitiveType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isTypedFunctionType = exports.isFunctionType = exports.isStringType = exports.isTypedefProvider = exports.isTypeExpression = exports.isRegexLiteralExpression = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = void 0;
5
5
  const visitors_1 = require("./visitors");
6
6
  // File reflection
@@ -153,14 +153,16 @@ function isImportStatement(element) {
153
153
  return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ImportStatement';
154
154
  }
155
155
  exports.isImportStatement = isImportStatement;
156
- function isClassMethodStatement(element) {
157
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassMethodStatement';
156
+ function isMethodStatement(element) {
157
+ const name = element === null || element === void 0 ? void 0 : element.constructor.name;
158
+ return name === 'MethodStatement' || name === 'ClassMethodStatement';
158
159
  }
159
- exports.isClassMethodStatement = isClassMethodStatement;
160
- function isClassFieldStatement(element) {
161
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassFieldStatement';
160
+ exports.isMethodStatement = isMethodStatement;
161
+ function isFieldStatement(element) {
162
+ const name = element === null || element === void 0 ? void 0 : element.constructor.name;
163
+ return name === 'FieldStatement' || name === 'ClassFieldStatement';
162
164
  }
163
- exports.isClassFieldStatement = isClassFieldStatement;
165
+ exports.isFieldStatement = isFieldStatement;
164
166
  function isInterfaceStatement(element) {
165
167
  return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'InterfaceStatement';
166
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../src/astUtils/reflection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../src/astUtils/reflection.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,21 @@
1
1
  import type { CancellationToken } from 'vscode-languageserver';
2
- import type { Statement, Body, AssignmentStatement, Block, ExpressionStatement, CommentStatement, ExitForStatement, ExitWhileStatement, FunctionStatement, IfStatement, IncrementStatement, PrintStatement, GotoStatement, LabelStatement, ReturnStatement, EndStatement, StopStatement, ForStatement, ForEachStatement, WhileStatement, DottedSetStatement, IndexedSetStatement, LibraryStatement, NamespaceStatement, ImportStatement, ClassStatement, ClassMethodStatement, ClassFieldStatement, EnumStatement, EnumMemberStatement, DimStatement, TryCatchStatement, CatchStatement, ThrowStatement, InterfaceStatement, InterfaceFieldStatement, InterfaceMethodStatement } from '../parser/Statement';
2
+ import type { Statement, Body, AssignmentStatement, Block, ExpressionStatement, CommentStatement, ExitForStatement, ExitWhileStatement, FunctionStatement, IfStatement, IncrementStatement, PrintStatement, GotoStatement, LabelStatement, ReturnStatement, EndStatement, StopStatement, ForStatement, ForEachStatement, WhileStatement, DottedSetStatement, IndexedSetStatement, LibraryStatement, NamespaceStatement, ImportStatement, ClassStatement, EnumStatement, EnumMemberStatement, DimStatement, TryCatchStatement, CatchStatement, ThrowStatement, InterfaceStatement, FieldStatement, MethodStatement, InterfaceFieldStatement, InterfaceMethodStatement } from '../parser/Statement';
3
3
  import type { AALiteralExpression, AAMemberExpression, AnnotationExpression, ArrayLiteralExpression, BinaryExpression, CallExpression, CallfuncExpression, DottedGetExpression, EscapedCharCodeLiteralExpression, Expression, FunctionExpression, FunctionParameterExpression, GroupingExpression, IndexedGetExpression, LiteralExpression, NamespacedVariableNameExpression, NewExpression, NullCoalescingExpression, RegexLiteralExpression, SourceLiteralExpression, TaggedTemplateStringExpression, TemplateStringExpression, TemplateStringQuasiExpression, TernaryExpression, UnaryExpression, VariableExpression, XmlAttributeGetExpression } from '../parser/Expression';
4
+ import type { AstEditor } from './AstEditor';
4
5
  /**
5
6
  * Walks the statements of a block and descendent sub-blocks, and allow replacing statements
6
7
  */
7
- export declare function walkStatements(statement: Statement, visitor: (statement: Statement, parent?: Statement) => Statement | void, cancel?: CancellationToken): void;
8
- export declare type WalkVisitor = <T = Statement | Expression>(stmtExpr: Statement | Expression, parent?: Statement | Expression) => void | T;
8
+ export declare function walkStatements(statement: Statement, visitor: (statement: Statement, parent?: Statement, owner?: any, key?: any) => Statement | void, cancel?: CancellationToken): void;
9
+ export declare type WalkVisitor = <T = Statement | Expression>(stmtExpr: Statement | Expression, parent?: Statement | Expression, owner?: any, key?: any) => void | T;
9
10
  /**
10
11
  * A helper function for Statement and Expression `walkAll` calls.
11
12
  */
12
- export declare function walk<T>(keyParent: T, key: keyof T, visitor: WalkVisitor, options: WalkOptions, parent?: Expression | Statement): void;
13
+ export declare function walk<T>(owner: T, key: keyof T, visitor: WalkVisitor, options: WalkOptions, parent?: Expression | Statement): void;
14
+ /**
15
+ * Helper for AST elements to walk arrays when visitors might change the array size (to delete/insert items).
16
+ * @param filter a function used to filter items from the array. return true if that item should be walked
17
+ */
18
+ export declare function walkArray<T>(array: Array<T>, visitor: WalkVisitor, options: WalkOptions, parent?: Expression | Statement, filter?: <T>(element: T) => boolean): void;
13
19
  /**
14
20
  * Creates an optimized visitor function.
15
21
  * Conventional visitors will need to inspect each incoming Statement/Expression, leading to many if statements.
@@ -17,68 +23,68 @@ export declare function walk<T>(keyParent: T, key: keyof T, visitor: WalkVisitor
17
23
  * to know which function to call.
18
24
  */
19
25
  export declare function createVisitor(visitor: {
20
- Body?: (statement: Body, parent?: Statement) => Statement | void;
21
- AssignmentStatement?: (statement: AssignmentStatement, parent?: Statement) => Statement | void;
22
- Block?: (statement: Block, parent?: Statement) => Statement | void;
23
- ExpressionStatement?: (statement: ExpressionStatement, parent?: Statement) => Statement | void;
24
- CommentStatement?: (statement: CommentStatement, parent?: Statement) => Statement | void;
25
- ExitForStatement?: (statement: ExitForStatement, parent?: Statement) => Statement | void;
26
- ExitWhileStatement?: (statement: ExitWhileStatement, parent?: Statement) => Statement | void;
27
- FunctionStatement?: (statement: FunctionStatement, parent?: Statement) => Statement | void;
28
- IfStatement?: (statement: IfStatement, parent?: Statement) => Statement | void;
29
- IncrementStatement?: (statement: IncrementStatement, parent?: Statement) => Statement | void;
30
- PrintStatement?: (statement: PrintStatement, parent?: Statement) => Statement | void;
31
- DimStatement?: (statement: DimStatement, parent?: Statement) => Statement | void;
32
- GotoStatement?: (statement: GotoStatement, parent?: Statement) => Statement | void;
33
- LabelStatement?: (statement: LabelStatement, parent?: Statement) => Statement | void;
34
- ReturnStatement?: (statement: ReturnStatement, parent?: Statement) => Statement | void;
35
- EndStatement?: (statement: EndStatement, parent?: Statement) => Statement | void;
36
- StopStatement?: (statement: StopStatement, parent?: Statement) => Statement | void;
37
- ForStatement?: (statement: ForStatement, parent?: Statement) => Statement | void;
38
- ForEachStatement?: (statement: ForEachStatement, parent?: Statement) => Statement | void;
39
- WhileStatement?: (statement: WhileStatement, parent?: Statement) => Statement | void;
26
+ Body?: (statement: Body, parent?: Statement, owner?: any, key?: any) => Statement | void;
27
+ AssignmentStatement?: (statement: AssignmentStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
28
+ Block?: (statement: Block, parent?: Statement, owner?: any, key?: any) => Statement | void;
29
+ ExpressionStatement?: (statement: ExpressionStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
30
+ CommentStatement?: (statement: CommentStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
31
+ ExitForStatement?: (statement: ExitForStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
32
+ ExitWhileStatement?: (statement: ExitWhileStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
33
+ FunctionStatement?: (statement: FunctionStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
34
+ IfStatement?: (statement: IfStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
35
+ IncrementStatement?: (statement: IncrementStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
36
+ PrintStatement?: (statement: PrintStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
37
+ DimStatement?: (statement: DimStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
38
+ GotoStatement?: (statement: GotoStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
39
+ LabelStatement?: (statement: LabelStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
40
+ ReturnStatement?: (statement: ReturnStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
41
+ EndStatement?: (statement: EndStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
42
+ StopStatement?: (statement: StopStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
43
+ ForStatement?: (statement: ForStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
44
+ ForEachStatement?: (statement: ForEachStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
45
+ WhileStatement?: (statement: WhileStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
40
46
  DottedSetStatement?: (statement: DottedSetStatement, parent?: Statement) => Statement | void;
41
- IndexedSetStatement?: (statement: IndexedSetStatement, parent?: Statement) => Statement | void;
42
- LibraryStatement?: (statement: LibraryStatement, parent?: Statement) => Statement | void;
43
- NamespaceStatement?: (statement: NamespaceStatement, parent?: Statement) => Statement | void;
44
- ImportStatement?: (statement: ImportStatement, parent?: Statement) => Statement | void;
45
- InterfaceStatement?: (statement: InterfaceStatement, parent?: Statement) => Statement | void;
47
+ IndexedSetStatement?: (statement: IndexedSetStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
48
+ LibraryStatement?: (statement: LibraryStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
49
+ NamespaceStatement?: (statement: NamespaceStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
50
+ ImportStatement?: (statement: ImportStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
51
+ InterfaceStatement?: (statement: InterfaceStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
46
52
  InterfaceFieldStatement?: (statement: InterfaceFieldStatement, parent?: Statement) => Statement | void;
47
- InterfaceMethodStatement?: (statement: InterfaceMethodStatement, parent?: Statement) => Statement | void;
48
- ClassStatement?: (statement: ClassStatement, parent?: Statement) => Statement | void;
49
- ClassMethodStatement?: (statement: ClassMethodStatement, parent?: Statement) => Statement | void;
50
- ClassFieldStatement?: (statement: ClassFieldStatement, parent?: Statement) => Statement | void;
51
- TryCatchStatement?: (statement: TryCatchStatement, parent?: Statement) => Statement | void;
52
- CatchStatement?: (statement: CatchStatement, parent?: Statement) => Statement | void;
53
- ThrowStatement?: (statement: ThrowStatement, parent?: Statement) => Statement | void;
54
- EnumStatement?: (statement: EnumStatement, parent?: Statement) => Statement | void;
55
- EnumMemberStatement?: (statement: EnumMemberStatement, parent?: Statement) => Statement | void;
56
- BinaryExpression?: (expression: BinaryExpression, parent?: Statement | Expression) => Expression | void;
57
- CallExpression?: (expression: CallExpression, parent?: Statement | Expression) => Expression | void;
58
- FunctionExpression?: (expression: FunctionExpression, parent?: Statement | Expression) => Expression | void;
59
- FunctionParameterExpression?: (expression: FunctionParameterExpression, parent?: Statement | Expression) => Expression | void;
60
- NamespacedVariableNameExpression?: (expression: NamespacedVariableNameExpression, parent?: Statement | Expression) => Expression | void;
61
- DottedGetExpression?: (expression: DottedGetExpression, parent?: Statement | Expression) => Expression | void;
62
- XmlAttributeGetExpression?: (expression: XmlAttributeGetExpression, parent?: Statement | Expression) => Expression | void;
63
- IndexedGetExpression?: (expression: IndexedGetExpression, parent?: Statement | Expression) => Expression | void;
64
- GroupingExpression?: (expression: GroupingExpression, parent?: Statement | Expression) => Expression | void;
65
- LiteralExpression?: (expression: LiteralExpression, parent?: Statement | Expression) => Expression | void;
66
- EscapedCharCodeLiteralExpression?: (expression: EscapedCharCodeLiteralExpression, parent?: Statement | Expression) => Expression | void;
67
- ArrayLiteralExpression?: (expression: ArrayLiteralExpression, parent?: Statement | Expression) => Expression | void;
68
- AAMemberExpression?: (expression: AAMemberExpression, parent?: Statement | Expression) => Expression | void;
69
- AALiteralExpression?: (expression: AALiteralExpression, parent?: Statement | Expression) => Expression | void;
70
- UnaryExpression?: (expression: UnaryExpression, parent?: Statement | Expression) => Expression | void;
71
- VariableExpression?: (expression: VariableExpression, parent?: Statement | Expression) => Expression | void;
72
- SourceLiteralExpression?: (expression: SourceLiteralExpression, parent?: Statement | Expression) => Expression | void;
73
- NewExpression?: (expression: NewExpression, parent?: Statement | Expression) => Expression | void;
74
- CallfuncExpression?: (expression: CallfuncExpression, parent?: Statement | Expression) => Expression | void;
75
- TemplateStringQuasiExpression?: (expression: TemplateStringQuasiExpression, parent?: Statement | Expression) => Expression | void;
76
- TemplateStringExpression?: (expression: TemplateStringExpression, parent?: Statement | Expression) => Expression | void;
77
- TaggedTemplateStringExpression?: (expression: TaggedTemplateStringExpression, parent?: Statement | Expression) => Expression | void;
78
- AnnotationExpression?: (expression: AnnotationExpression, parent?: Statement | Expression) => Expression | void;
79
- TernaryExpression?: (expression: TernaryExpression, parent?: Statement | Expression) => Expression | void;
80
- NullCoalescingExpression?: (expression: NullCoalescingExpression, parent?: Statement | Expression) => Expression | void;
81
- RegexLiteralExpression?: (expression: RegexLiteralExpression, parent?: Statement | Expression) => Expression | void;
53
+ InterfaceMethodStatement?: (statement: InterfaceMethodStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
54
+ ClassStatement?: (statement: ClassStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
55
+ MethodStatement?: (statement: MethodStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
56
+ FieldStatement?: (statement: FieldStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
57
+ TryCatchStatement?: (statement: TryCatchStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
58
+ CatchStatement?: (statement: CatchStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
59
+ ThrowStatement?: (statement: ThrowStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
60
+ EnumStatement?: (statement: EnumStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
61
+ EnumMemberStatement?: (statement: EnumMemberStatement, parent?: Statement, owner?: any, key?: any) => Statement | void;
62
+ BinaryExpression?: (expression: BinaryExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
63
+ CallExpression?: (expression: CallExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
64
+ FunctionExpression?: (expression: FunctionExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
65
+ FunctionParameterExpression?: (expression: FunctionParameterExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
66
+ NamespacedVariableNameExpression?: (expression: NamespacedVariableNameExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
67
+ DottedGetExpression?: (expression: DottedGetExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
68
+ XmlAttributeGetExpression?: (expression: XmlAttributeGetExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
69
+ IndexedGetExpression?: (expression: IndexedGetExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
70
+ GroupingExpression?: (expression: GroupingExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
71
+ LiteralExpression?: (expression: LiteralExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
72
+ EscapedCharCodeLiteralExpression?: (expression: EscapedCharCodeLiteralExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
73
+ ArrayLiteralExpression?: (expression: ArrayLiteralExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
74
+ AAMemberExpression?: (expression: AAMemberExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
75
+ AALiteralExpression?: (expression: AALiteralExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
76
+ UnaryExpression?: (expression: UnaryExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
77
+ VariableExpression?: (expression: VariableExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
78
+ SourceLiteralExpression?: (expression: SourceLiteralExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
79
+ NewExpression?: (expression: NewExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
80
+ CallfuncExpression?: (expression: CallfuncExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
81
+ TemplateStringQuasiExpression?: (expression: TemplateStringQuasiExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
82
+ TemplateStringExpression?: (expression: TemplateStringExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
83
+ TaggedTemplateStringExpression?: (expression: TaggedTemplateStringExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
84
+ AnnotationExpression?: (expression: AnnotationExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
85
+ TernaryExpression?: (expression: TernaryExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
86
+ NullCoalescingExpression?: (expression: NullCoalescingExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
87
+ RegexLiteralExpression?: (expression: RegexLiteralExpression, parent?: Statement | Expression, owner?: any, key?: any) => Expression | void;
82
88
  }): WalkVisitor;
83
89
  export interface WalkOptions {
84
90
  /**
@@ -90,6 +96,10 @@ export interface WalkOptions {
90
96
  * A token that can be used to cancel the walk operation
91
97
  */
92
98
  cancel?: CancellationToken;
99
+ /**
100
+ * If provided, any AST replacements will be done using this AstEditor instead of directly against the AST itself
101
+ */
102
+ editor?: AstEditor;
93
103
  }
94
104
  /**
95
105
  * An enum used to denote the specific WalkMode options (without
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WalkMode = exports.InternalWalkMode = exports.createVisitor = exports.walk = exports.walkStatements = void 0;
3
+ exports.WalkMode = exports.InternalWalkMode = exports.createVisitor = exports.walkArray = exports.walk = exports.walkStatements = void 0;
4
4
  const reflection_1 = require("./reflection");
5
5
  /**
6
6
  * Walks the statements of a block and descendent sub-blocks, and allow replacing statements
@@ -15,25 +15,30 @@ exports.walkStatements = walkStatements;
15
15
  /**
16
16
  * A helper function for Statement and Expression `walkAll` calls.
17
17
  */
18
- function walk(keyParent, key, visitor, options, parent) {
18
+ function walk(owner, key, visitor, options, parent) {
19
19
  var _a, _b;
20
20
  //stop processing if canceled
21
21
  if ((_a = options.cancel) === null || _a === void 0 ? void 0 : _a.isCancellationRequested) {
22
22
  return;
23
23
  }
24
24
  //the object we're visiting
25
- let element = keyParent[key];
25
+ let element = owner[key];
26
26
  if (!element) {
27
27
  return;
28
28
  }
29
29
  //notify the visitor of this element
30
30
  if (element.visitMode & options.walkMode) {
31
- const result = visitor(element, parent !== null && parent !== void 0 ? parent : keyParent);
31
+ const result = visitor(element, parent !== null && parent !== void 0 ? parent : owner, owner, key);
32
32
  //replace the value on the parent if the visitor returned a Statement or Expression (this is how visitors can edit AST)
33
33
  if (result && ((0, reflection_1.isExpression)(result) || (0, reflection_1.isStatement)(result))) {
34
- keyParent[key] = result;
35
- //don't walk the new element
36
- return;
34
+ if (options.editor) {
35
+ options.editor.setProperty(owner, key, result);
36
+ }
37
+ else {
38
+ owner[key] = result;
39
+ //don't walk the new element
40
+ return;
41
+ }
37
42
  }
38
43
  }
39
44
  //stop processing if canceled
@@ -41,12 +46,27 @@ function walk(keyParent, key, visitor, options, parent) {
41
46
  return;
42
47
  }
43
48
  if (!element.walk) {
44
- throw new Error(`${keyParent.constructor.name}["${String(key)}"]${parent ? ` for ${parent.constructor.name}` : ''} does not contain a "walk" method`);
49
+ throw new Error(`${owner.constructor.name}["${String(key)}"]${parent ? ` for ${parent.constructor.name}` : ''} does not contain a "walk" method`);
45
50
  }
46
51
  //walk the child expressions
47
52
  element.walk(visitor, options);
48
53
  }
49
54
  exports.walk = walk;
55
+ /**
56
+ * Helper for AST elements to walk arrays when visitors might change the array size (to delete/insert items).
57
+ * @param filter a function used to filter items from the array. return true if that item should be walked
58
+ */
59
+ function walkArray(array, visitor, options, parent, filter) {
60
+ for (let i = 0; i < array.length; i++) {
61
+ if (!filter || filter(array[i])) {
62
+ const startLength = array.length;
63
+ walk(array, i, visitor, options, parent);
64
+ //compensate for deleted or added items.
65
+ i += array.length - startLength;
66
+ }
67
+ }
68
+ }
69
+ exports.walkArray = walkArray;
50
70
  /**
51
71
  * Creates an optimized visitor function.
52
72
  * Conventional visitors will need to inspect each incoming Statement/Expression, leading to many if statements.
@@ -54,9 +74,9 @@ exports.walk = walk;
54
74
  * to know which function to call.
55
75
  */
56
76
  function createVisitor(visitor) {
57
- return ((statement, parent) => {
77
+ return ((statement, parent, owner, key) => {
58
78
  var _a;
59
- return (_a = visitor[statement.constructor.name]) === null || _a === void 0 ? void 0 : _a.call(visitor, statement, parent);
79
+ return (_a = visitor[statement.constructor.name]) === null || _a === void 0 ? void 0 : _a.call(visitor, statement, parent, owner, key);
60
80
  });
61
81
  }
62
82
  exports.createVisitor = createVisitor;
@@ -1 +1 @@
1
- {"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../src/astUtils/visitors.ts"],"names":[],"mappings":";;;AAIA,6CAAyD;AAGzD;;GAEG;AACH,SAAgB,cAAc,CAC1B,SAAoB,EACpB,OAAuE,EACvE,MAA0B;IAE1B,SAAS,CAAC,IAAI,CAAC,OAAc,EAAE;QAC3B,QAAQ,EAAE,QAAQ,CAAC,eAAe;QAClC,MAAM,EAAE,MAAM;KACjB,CAAC,CAAC;AACP,CAAC;AATD,wCASC;AAKD;;GAEG;AACH,SAAgB,IAAI,CAAI,SAAY,EAAE,GAAY,EAAE,OAAoB,EAAE,OAAoB,EAAE,MAA+B;;IAC3H,6BAA6B;IAC7B,IAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,uBAAuB,EAAE;QACzC,OAAO;KACV;IAED,2BAA2B;IAC3B,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAkC,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE;QACV,OAAO;KACV;IAED,oCAAoC;IACpC,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,SAAgB,CAAC,CAAC;QAE5D,uHAAuH;QACvH,IAAI,MAAM,IAAI,CAAC,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,IAAA,wBAAW,EAAC,MAAM,CAAC,CAAC,EAAE;YACxD,SAAiB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACjC,4BAA4B;YAC5B,OAAO;SACV;KACJ;IAED,6BAA6B;IAC7B,IAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,uBAAuB,EAAE;QACzC,OAAO;KACV;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;KACzJ;IACD,4BAA4B;IAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAlCD,oBAkCC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CACzB,OAiEC;IAED,OAAoB,CAAC,CAAC,SAAoB,EAAE,MAAkB,EAAoB,EAAE;;QAChF,OAAO,MAAA,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,+CAAnC,OAAO,EAA+B,SAAS,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC;AAvED,sCAuEC;AAcD;;GAEG;AACH,IAAY,gBAqBX;AArBD,WAAY,gBAAgB;IACxB;;OAEG;IACH,2EAAkB,CAAA;IAClB;;OAEG;IACH,6EAAmB,CAAA;IACnB;;OAEG;IACH,6EAAmB,CAAA;IACnB;;OAEG;IACH,+EAAoB,CAAA;IACpB;;OAEG;IACH,0FAA0B,CAAA;AAC9B,CAAC,EArBW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAqB3B;AAED,kEAAkE;AAClE,IAAY,QA0CX;AA1CD,WAAY,QAAQ;IAChB;;OAEG;IACH,2DAAgD,CAAA;IAChD;;OAEG;IACH,6DAAoF,CAAA;IACpF;;OAEG;IACH,6DAAkD,CAAA;IAClD;;OAEG;IACH,0EAA4F,CAAA;IAC5F;;OAEG;IACH,gEAAyH,CAAA;IACzH;;OAEG;IACH,gDAAoJ,CAAA;IACpJ;;;OAGG;IACH,0EAAiG,CAAA;IACjG;;OAEG;IACH,gFAAyK,CAAA;IACzK;;OAEG;IACH,kFAA2K,CAAA;IAC3K;;OAEG;IACH,kEAAsM,CAAA;AAC1M,CAAC,EA1CW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA0CnB"}
1
+ {"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../src/astUtils/visitors.ts"],"names":[],"mappings":"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"}