brighterscript 0.67.6 → 0.67.8

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 (76) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +11 -0
  3. package/dist/ProgramBuilder.js +3 -1
  4. package/dist/ProgramBuilder.js.map +1 -1
  5. package/dist/astUtils/reflection.d.ts +5 -2
  6. package/dist/astUtils/reflection.js +17 -2
  7. package/dist/astUtils/reflection.js.map +1 -1
  8. package/dist/astUtils/visitors.js +1 -1
  9. package/dist/astUtils/visitors.js.map +1 -1
  10. package/dist/files/BrsFile.d.ts +1 -1
  11. package/dist/files/BrsFile.js +8 -0
  12. package/dist/files/BrsFile.js.map +1 -1
  13. package/dist/files/BrsFile.spec.js +31 -0
  14. package/dist/files/BrsFile.spec.js.map +1 -1
  15. package/dist/parser/AstNode.d.ts +12 -1
  16. package/dist/parser/AstNode.js +20 -0
  17. package/dist/parser/AstNode.js.map +1 -1
  18. package/dist/parser/AstNode.spec.js +1266 -0
  19. package/dist/parser/AstNode.spec.js.map +1 -1
  20. package/dist/parser/Expression.d.ts +27 -0
  21. package/dist/parser/Expression.js +131 -11
  22. package/dist/parser/Expression.js.map +1 -1
  23. package/dist/parser/Statement.d.ts +40 -1
  24. package/dist/parser/Statement.js +227 -6
  25. package/dist/parser/Statement.js.map +1 -1
  26. package/dist/parser/Statement.spec.js.map +1 -1
  27. package/dist/types/ArrayType.d.ts +1 -0
  28. package/dist/types/ArrayType.js +4 -0
  29. package/dist/types/ArrayType.js.map +1 -1
  30. package/dist/types/BooleanType.d.ts +1 -0
  31. package/dist/types/BooleanType.js +3 -0
  32. package/dist/types/BooleanType.js.map +1 -1
  33. package/dist/types/BscType.d.ts +1 -0
  34. package/dist/types/CustomType.d.ts +1 -0
  35. package/dist/types/CustomType.js +3 -0
  36. package/dist/types/CustomType.js.map +1 -1
  37. package/dist/types/DoubleType.d.ts +1 -0
  38. package/dist/types/DoubleType.js +3 -0
  39. package/dist/types/DoubleType.js.map +1 -1
  40. package/dist/types/DynamicType.d.ts +1 -0
  41. package/dist/types/DynamicType.js +3 -0
  42. package/dist/types/DynamicType.js.map +1 -1
  43. package/dist/types/FloatType.d.ts +1 -0
  44. package/dist/types/FloatType.js +3 -0
  45. package/dist/types/FloatType.js.map +1 -1
  46. package/dist/types/FunctionType.d.ts +1 -0
  47. package/dist/types/FunctionType.js +10 -0
  48. package/dist/types/FunctionType.js.map +1 -1
  49. package/dist/types/IntegerType.d.ts +1 -0
  50. package/dist/types/IntegerType.js +3 -0
  51. package/dist/types/IntegerType.js.map +1 -1
  52. package/dist/types/InterfaceType.d.ts +1 -0
  53. package/dist/types/InterfaceType.js +9 -0
  54. package/dist/types/InterfaceType.js.map +1 -1
  55. package/dist/types/InvalidType.d.ts +1 -0
  56. package/dist/types/InvalidType.js +3 -0
  57. package/dist/types/InvalidType.js.map +1 -1
  58. package/dist/types/LongIntegerType.d.ts +1 -0
  59. package/dist/types/LongIntegerType.js +3 -0
  60. package/dist/types/LongIntegerType.js.map +1 -1
  61. package/dist/types/ObjectType.d.ts +1 -0
  62. package/dist/types/ObjectType.js +3 -0
  63. package/dist/types/ObjectType.js.map +1 -1
  64. package/dist/types/StringType.d.ts +1 -0
  65. package/dist/types/StringType.js +3 -0
  66. package/dist/types/StringType.js.map +1 -1
  67. package/dist/types/UninitializedType.d.ts +1 -0
  68. package/dist/types/UninitializedType.js +3 -0
  69. package/dist/types/UninitializedType.js.map +1 -1
  70. package/dist/types/VoidType.d.ts +1 -0
  71. package/dist/types/VoidType.js +3 -0
  72. package/dist/types/VoidType.js.map +1 -1
  73. package/dist/util.d.ts +8 -0
  74. package/dist/util.js +33 -0
  75. package/dist/util.js.map +1 -1
  76. package/package.json +3 -3
@@ -23,6 +23,7 @@ export declare class EmptyStatement extends Statement {
23
23
  range?: Range);
24
24
  transpile(state: BrsTranspileState): any[];
25
25
  walk(visitor: WalkVisitor, options: WalkOptions): void;
26
+ clone(): EmptyStatement;
26
27
  }
27
28
  /**
28
29
  * This is a top-level statement. Consider this the root of the AST
@@ -35,6 +36,7 @@ export declare class Body extends Statement implements TypedefProvider {
35
36
  transpile(state: BrsTranspileState): TranspileResult;
36
37
  getTypedef(state: BrsTranspileState): TranspileResult;
37
38
  walk(visitor: WalkVisitor, options: WalkOptions): void;
39
+ clone(): Body;
38
40
  }
39
41
  export declare class AssignmentStatement extends Statement {
40
42
  readonly equals: Token;
@@ -49,6 +51,7 @@ export declare class AssignmentStatement extends Statement {
49
51
  get containingFunction(): FunctionExpression;
50
52
  transpile(state: BrsTranspileState): TranspileResult;
51
53
  walk(visitor: WalkVisitor, options: WalkOptions): void;
54
+ clone(): AssignmentStatement;
52
55
  }
53
56
  export declare class Block extends Statement {
54
57
  readonly statements: Statement[];
@@ -57,6 +60,7 @@ export declare class Block extends Statement {
57
60
  readonly range: Range | undefined;
58
61
  transpile(state: BrsTranspileState): TranspileResult;
59
62
  walk(visitor: WalkVisitor, options: WalkOptions): void;
63
+ clone(): Block;
60
64
  }
61
65
  export declare class ExpressionStatement extends Statement {
62
66
  readonly expression: Expression;
@@ -64,6 +68,7 @@ export declare class ExpressionStatement extends Statement {
64
68
  readonly range: Range | undefined;
65
69
  transpile(state: BrsTranspileState): TranspileResult;
66
70
  walk(visitor: WalkVisitor, options: WalkOptions): void;
71
+ clone(): ExpressionStatement;
67
72
  }
68
73
  export declare class CommentStatement extends Statement implements Expression, TypedefProvider {
69
74
  comments: Token[];
@@ -73,6 +78,7 @@ export declare class CommentStatement extends Statement implements Expression, T
73
78
  transpile(state: BrsTranspileState): TranspileResult;
74
79
  getTypedef(state: TranspileState): TranspileResult;
75
80
  walk(visitor: WalkVisitor, options: WalkOptions): void;
81
+ clone(): CommentStatement;
76
82
  }
77
83
  export declare class ExitForStatement extends Statement {
78
84
  readonly tokens: {
@@ -84,6 +90,7 @@ export declare class ExitForStatement extends Statement {
84
90
  readonly range: Range;
85
91
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
86
92
  walk(visitor: WalkVisitor, options: WalkOptions): void;
93
+ clone(): ExitForStatement;
87
94
  }
88
95
  export declare class ExitWhileStatement extends Statement {
89
96
  readonly tokens: {
@@ -95,6 +102,7 @@ export declare class ExitWhileStatement extends Statement {
95
102
  readonly range: Range;
96
103
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
97
104
  walk(visitor: WalkVisitor, options: WalkOptions): void;
105
+ clone(): ExitWhileStatement;
98
106
  }
99
107
  export declare class FunctionStatement extends Statement implements TypedefProvider {
100
108
  name: Identifier;
@@ -113,6 +121,7 @@ export declare class FunctionStatement extends Statement implements TypedefProvi
113
121
  transpile(state: BrsTranspileState): TranspileResult;
114
122
  getTypedef(state: BrsTranspileState): TranspileResult;
115
123
  walk(visitor: WalkVisitor, options: WalkOptions): void;
124
+ clone(): FunctionStatement;
116
125
  }
117
126
  export declare class IfStatement extends Statement {
118
127
  readonly tokens: {
@@ -134,6 +143,7 @@ export declare class IfStatement extends Statement {
134
143
  readonly range: Range | undefined;
135
144
  transpile(state: BrsTranspileState): TranspileResult;
136
145
  walk(visitor: WalkVisitor, options: WalkOptions): void;
146
+ clone(): any;
137
147
  }
138
148
  export declare class IncrementStatement extends Statement {
139
149
  readonly value: Expression;
@@ -142,6 +152,7 @@ export declare class IncrementStatement extends Statement {
142
152
  readonly range: Range | undefined;
143
153
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode | TranspileResult)[];
144
154
  walk(visitor: WalkVisitor, options: WalkOptions): void;
155
+ clone(): IncrementStatement;
145
156
  }
146
157
  /** Used to indent the current `print` position to the next 16-character-width output zone. */
147
158
  export interface PrintSeparatorTab extends Token {
@@ -171,6 +182,7 @@ export declare class PrintStatement extends Statement {
171
182
  readonly range: Range | undefined;
172
183
  transpile(state: BrsTranspileState): TranspileResult;
173
184
  walk(visitor: WalkVisitor, options: WalkOptions): void;
185
+ clone(): PrintStatement;
174
186
  }
175
187
  export declare class DimStatement extends Statement {
176
188
  dimToken: Token;
@@ -182,6 +194,7 @@ export declare class DimStatement extends Statement {
182
194
  range: Range | undefined;
183
195
  transpile(state: BrsTranspileState): TranspileResult;
184
196
  walk(visitor: WalkVisitor, options: WalkOptions): void;
197
+ clone(): DimStatement;
185
198
  }
186
199
  export declare class GotoStatement extends Statement {
187
200
  readonly tokens: {
@@ -195,6 +208,7 @@ export declare class GotoStatement extends Statement {
195
208
  readonly range: Range | undefined;
196
209
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
197
210
  walk(visitor: WalkVisitor, options: WalkOptions): void;
211
+ clone(): GotoStatement;
198
212
  }
199
213
  export declare class LabelStatement extends Statement {
200
214
  readonly tokens: {
@@ -208,6 +222,7 @@ export declare class LabelStatement extends Statement {
208
222
  readonly range: Range | undefined;
209
223
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
210
224
  walk(visitor: WalkVisitor, options: WalkOptions): void;
225
+ clone(): LabelStatement;
211
226
  }
212
227
  export declare class ReturnStatement extends Statement {
213
228
  readonly tokens: {
@@ -220,6 +235,7 @@ export declare class ReturnStatement extends Statement {
220
235
  readonly range: Range | undefined;
221
236
  transpile(state: BrsTranspileState): TranspileResult;
222
237
  walk(visitor: WalkVisitor, options: WalkOptions): void;
238
+ clone(): ReturnStatement;
223
239
  }
224
240
  export declare class EndStatement extends Statement {
225
241
  readonly tokens: {
@@ -231,6 +247,7 @@ export declare class EndStatement extends Statement {
231
247
  readonly range: Range;
232
248
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
233
249
  walk(visitor: WalkVisitor, options: WalkOptions): void;
250
+ clone(): EndStatement;
234
251
  }
235
252
  export declare class StopStatement extends Statement {
236
253
  readonly tokens: {
@@ -242,6 +259,7 @@ export declare class StopStatement extends Statement {
242
259
  readonly range: Range;
243
260
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
244
261
  walk(visitor: WalkVisitor, options: WalkOptions): void;
262
+ clone(): StopStatement;
245
263
  }
246
264
  export declare class ForStatement extends Statement {
247
265
  forToken: Token;
@@ -256,6 +274,7 @@ export declare class ForStatement extends Statement {
256
274
  readonly range: Range | undefined;
257
275
  transpile(state: BrsTranspileState): TranspileResult;
258
276
  walk(visitor: WalkVisitor, options: WalkOptions): void;
277
+ clone(): ForStatement;
259
278
  }
260
279
  export declare class ForEachStatement extends Statement {
261
280
  readonly tokens: {
@@ -274,6 +293,7 @@ export declare class ForEachStatement extends Statement {
274
293
  readonly range: Range | undefined;
275
294
  transpile(state: BrsTranspileState): TranspileResult;
276
295
  walk(visitor: WalkVisitor, options: WalkOptions): void;
296
+ clone(): ForEachStatement;
277
297
  }
278
298
  export declare class WhileStatement extends Statement {
279
299
  readonly tokens: {
@@ -289,6 +309,7 @@ export declare class WhileStatement extends Statement {
289
309
  readonly range: Range | undefined;
290
310
  transpile(state: BrsTranspileState): TranspileResult;
291
311
  walk(visitor: WalkVisitor, options: WalkOptions): void;
312
+ clone(): WhileStatement;
292
313
  }
293
314
  export declare class DottedSetStatement extends Statement {
294
315
  readonly obj: Expression;
@@ -299,6 +320,7 @@ export declare class DottedSetStatement extends Statement {
299
320
  readonly range: Range | undefined;
300
321
  transpile(state: BrsTranspileState): TranspileResult;
301
322
  walk(visitor: WalkVisitor, options: WalkOptions): void;
323
+ clone(): DottedSetStatement;
302
324
  }
303
325
  export declare class IndexedSetStatement extends Statement {
304
326
  readonly obj: Expression;
@@ -311,6 +333,7 @@ export declare class IndexedSetStatement extends Statement {
311
333
  readonly range: Range | undefined;
312
334
  transpile(state: BrsTranspileState): any[];
313
335
  walk(visitor: WalkVisitor, options: WalkOptions): void;
336
+ clone(): IndexedSetStatement;
314
337
  }
315
338
  export declare class LibraryStatement extends Statement implements TypedefProvider {
316
339
  readonly tokens: {
@@ -325,6 +348,7 @@ export declare class LibraryStatement extends Statement implements TypedefProvid
325
348
  transpile(state: BrsTranspileState): TranspileResult;
326
349
  getTypedef(state: BrsTranspileState): TranspileResult;
327
350
  walk(visitor: WalkVisitor, options: WalkOptions): void;
351
+ clone(): LibraryStatement;
328
352
  }
329
353
  export declare class NamespaceStatement extends Statement implements TypedefProvider {
330
354
  keyword: Token;
@@ -335,7 +359,7 @@ export declare class NamespaceStatement extends Statement implements TypedefProv
335
359
  /**
336
360
  * The string name for this namespace
337
361
  */
338
- name: string;
362
+ get name(): string;
339
363
  get range(): Range;
340
364
  private _range;
341
365
  cacheRange(): Range;
@@ -343,6 +367,7 @@ export declare class NamespaceStatement extends Statement implements TypedefProv
343
367
  transpile(state: BrsTranspileState): TranspileResult;
344
368
  getTypedef(state: BrsTranspileState): TranspileResult;
345
369
  walk(visitor: WalkVisitor, options: WalkOptions): void;
370
+ clone(): NamespaceStatement;
346
371
  }
347
372
  export declare class ImportStatement extends Statement implements TypedefProvider {
348
373
  readonly importToken: Token;
@@ -356,6 +381,7 @@ export declare class ImportStatement extends Statement implements TypedefProvide
356
381
  */
357
382
  getTypedef(state: BrsTranspileState): string[];
358
383
  walk(visitor: WalkVisitor, options: WalkOptions): void;
384
+ clone(): ImportStatement;
359
385
  }
360
386
  export declare class InterfaceStatement extends Statement implements TypedefProvider {
361
387
  parentInterfaceName: NamespacedVariableNameExpression;
@@ -390,6 +416,7 @@ export declare class InterfaceStatement extends Statement implements TypedefProv
390
416
  transpile(state: BrsTranspileState): TranspileResult;
391
417
  getTypedef(state: BrsTranspileState): TranspileResult;
392
418
  walk(visitor: WalkVisitor, options: WalkOptions): void;
419
+ clone(): InterfaceStatement;
393
420
  }
394
421
  export declare class InterfaceFieldStatement extends Statement implements TypedefProvider {
395
422
  type: BscType;
@@ -406,6 +433,7 @@ export declare class InterfaceFieldStatement extends Statement implements Typede
406
433
  get isOptional(): boolean;
407
434
  walk(visitor: WalkVisitor, options: WalkOptions): void;
408
435
  getTypedef(state: BrsTranspileState): TranspileResult;
436
+ clone(): InterfaceFieldStatement;
409
437
  }
410
438
  export declare class InterfaceMethodStatement extends Statement implements TypedefProvider {
411
439
  params: FunctionParameterExpression[];
@@ -425,6 +453,7 @@ export declare class InterfaceMethodStatement extends Statement implements Typed
425
453
  get isOptional(): boolean;
426
454
  walk(visitor: WalkVisitor, options: WalkOptions): void;
427
455
  getTypedef(state: BrsTranspileState): TranspileResult;
456
+ clone(): InterfaceMethodStatement;
428
457
  }
429
458
  export declare class ClassStatement extends Statement implements TypedefProvider {
430
459
  readonly classKeyword: Token;
@@ -487,6 +516,7 @@ export declare class ClassStatement extends Statement implements TypedefProvider
487
516
  */
488
517
  private getTranspiledClassFunction;
489
518
  walk(visitor: WalkVisitor, options: WalkOptions): void;
519
+ clone(): ClassStatement;
490
520
  }
491
521
  export declare class MethodStatement extends FunctionStatement {
492
522
  override: Token;
@@ -510,6 +540,7 @@ export declare class MethodStatement extends FunctionStatement {
510
540
  */
511
541
  private injectFieldInitializersForConstructor;
512
542
  walk(visitor: WalkVisitor, options: WalkOptions): void;
543
+ clone(): MethodStatement;
513
544
  }
514
545
  /**
515
546
  * @deprecated use `MethodStatement`
@@ -535,6 +566,7 @@ export declare class FieldStatement extends Statement implements TypedefProvider
535
566
  transpile(state: BrsTranspileState): TranspileResult;
536
567
  getTypedef(state: BrsTranspileState): TranspileResult;
537
568
  walk(visitor: WalkVisitor, options: WalkOptions): void;
569
+ clone(): FieldStatement;
538
570
  }
539
571
  /**
540
572
  * @deprecated use `FieldStatement`
@@ -560,6 +592,7 @@ export declare class TryCatchStatement extends Statement {
560
592
  readonly range: Range | undefined;
561
593
  transpile(state: BrsTranspileState): TranspileResult;
562
594
  walk(visitor: WalkVisitor, options: WalkOptions): void;
595
+ clone(): TryCatchStatement;
563
596
  }
564
597
  export declare class CatchStatement extends Statement {
565
598
  tokens: {
@@ -573,6 +606,7 @@ export declare class CatchStatement extends Statement {
573
606
  range: Range | undefined;
574
607
  transpile(state: BrsTranspileState): TranspileResult;
575
608
  walk(visitor: WalkVisitor, options: WalkOptions): void;
609
+ clone(): CatchStatement;
576
610
  }
577
611
  export declare class ThrowStatement extends Statement {
578
612
  throwToken: Token;
@@ -581,6 +615,7 @@ export declare class ThrowStatement extends Statement {
581
615
  range: Range | undefined;
582
616
  transpile(state: BrsTranspileState): TranspileResult;
583
617
  walk(visitor: WalkVisitor, options: WalkOptions): void;
618
+ clone(): ThrowStatement;
584
619
  }
585
620
  export declare class EnumStatement extends Statement implements TypedefProvider {
586
621
  tokens: {
@@ -618,6 +653,7 @@ export declare class EnumStatement extends Statement implements TypedefProvider
618
653
  transpile(state: BrsTranspileState): any[];
619
654
  getTypedef(state: BrsTranspileState): TranspileResult;
620
655
  walk(visitor: WalkVisitor, options: WalkOptions): void;
656
+ clone(): EnumStatement;
621
657
  }
622
658
  export declare class EnumMemberStatement extends Statement implements TypedefProvider {
623
659
  tokens: {
@@ -641,6 +677,7 @@ export declare class EnumMemberStatement extends Statement implements TypedefPro
641
677
  transpile(state: BrsTranspileState): TranspileResult;
642
678
  getTypedef(state: BrsTranspileState): TranspileResult;
643
679
  walk(visitor: WalkVisitor, options: WalkOptions): void;
680
+ clone(): EnumMemberStatement;
644
681
  }
645
682
  export declare class ConstStatement extends Statement implements TypedefProvider {
646
683
  tokens: {
@@ -663,6 +700,7 @@ export declare class ConstStatement extends Statement implements TypedefProvider
663
700
  transpile(state: BrsTranspileState): TranspileResult;
664
701
  getTypedef(state: BrsTranspileState): TranspileResult;
665
702
  walk(visitor: WalkVisitor, options: WalkOptions): void;
703
+ clone(): ConstStatement;
666
704
  }
667
705
  export declare class ContinueStatement extends Statement {
668
706
  tokens: {
@@ -676,4 +714,5 @@ export declare class ContinueStatement extends Statement {
676
714
  range: Range | undefined;
677
715
  transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
678
716
  walk(visitor: WalkVisitor, options: WalkOptions): void;
717
+ clone(): ContinueStatement;
679
718
  }