brighterscript 1.0.0-alpha.41 → 1.0.0-alpha.43

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 (212) hide show
  1. package/CHANGELOG.md +78 -2
  2. package/dist/AstValidationSegmenter.d.ts +3 -0
  3. package/dist/AstValidationSegmenter.js +62 -2
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +7 -7
  6. package/dist/CrossScopeValidator.js +3 -3
  7. package/dist/CrossScopeValidator.js.map +1 -1
  8. package/dist/DiagnosticFilterer.d.ts +5 -1
  9. package/dist/DiagnosticFilterer.js +92 -33
  10. package/dist/DiagnosticFilterer.js.map +1 -1
  11. package/dist/DiagnosticManager.js +12 -9
  12. package/dist/DiagnosticManager.js.map +1 -1
  13. package/dist/DiagnosticMessages.d.ts +374 -225
  14. package/dist/DiagnosticMessages.js +641 -424
  15. package/dist/DiagnosticMessages.js.map +1 -1
  16. package/dist/DiagnosticSeverityAdjuster.js +4 -0
  17. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  18. package/dist/LanguageServer.js +0 -7
  19. package/dist/LanguageServer.js.map +1 -1
  20. package/dist/PluginInterface.js +2 -0
  21. package/dist/PluginInterface.js.map +1 -1
  22. package/dist/Program.d.ts +22 -1
  23. package/dist/Program.js +206 -49
  24. package/dist/Program.js.map +1 -1
  25. package/dist/SymbolTable.d.ts +3 -0
  26. package/dist/SymbolTable.js +19 -1
  27. package/dist/SymbolTable.js.map +1 -1
  28. package/dist/XmlScope.js +3 -6
  29. package/dist/XmlScope.js.map +1 -1
  30. package/dist/astUtils/creators.d.ts +35 -3
  31. package/dist/astUtils/creators.js +52 -1
  32. package/dist/astUtils/creators.js.map +1 -1
  33. package/dist/astUtils/reflection.d.ts +24 -5
  34. package/dist/astUtils/reflection.js +89 -19
  35. package/dist/astUtils/reflection.js.map +1 -1
  36. package/dist/astUtils/visitors.d.ts +3 -2
  37. package/dist/astUtils/visitors.js +37 -14
  38. package/dist/astUtils/visitors.js.map +1 -1
  39. package/dist/astUtils/visitors.spec.js +172 -6
  40. package/dist/astUtils/visitors.spec.js.map +1 -1
  41. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +0 -1
  42. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +0 -13
  43. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  44. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +2 -1
  45. package/dist/bscPlugin/completions/CompletionsProcessor.js +5 -5
  46. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  47. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +106 -2
  48. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  49. package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -3
  50. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  51. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +1 -0
  52. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +149 -0
  53. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  54. package/dist/bscPlugin/validation/BrsFileValidator.js +15 -8
  55. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  56. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +170 -24
  57. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  58. package/dist/bscPlugin/validation/ScopeValidator.d.ts +7 -0
  59. package/dist/bscPlugin/validation/ScopeValidator.js +150 -80
  60. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  61. package/dist/bscPlugin/validation/ScopeValidator.spec.js +1341 -29
  62. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  63. package/dist/bscPlugin/validation/XmlFileValidator.js +0 -8
  64. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  65. package/dist/diagnosticUtils.js +6 -5
  66. package/dist/diagnosticUtils.js.map +1 -1
  67. package/dist/files/BrsFile.Class.spec.js +87 -28
  68. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  69. package/dist/files/BrsFile.d.ts +1 -0
  70. package/dist/files/BrsFile.js +20 -8
  71. package/dist/files/BrsFile.js.map +1 -1
  72. package/dist/files/BrsFile.spec.js +133 -34
  73. package/dist/files/BrsFile.spec.js.map +1 -1
  74. package/dist/files/XmlFile.js +2 -2
  75. package/dist/files/XmlFile.js.map +1 -1
  76. package/dist/files/XmlFile.spec.js +3 -20
  77. package/dist/files/XmlFile.spec.js.map +1 -1
  78. package/dist/globalCallables.js +1 -1
  79. package/dist/index.d.ts +8 -3
  80. package/dist/index.js +24 -16
  81. package/dist/index.js.map +1 -1
  82. package/dist/interfaces.d.ts +18 -0
  83. package/dist/interfaces.js.map +1 -1
  84. package/dist/lexer/Lexer.js +17 -11
  85. package/dist/lexer/Lexer.js.map +1 -1
  86. package/dist/lexer/Lexer.spec.js +21 -3
  87. package/dist/lexer/Lexer.spec.js.map +1 -1
  88. package/dist/lexer/TokenKind.d.ts +9 -0
  89. package/dist/lexer/TokenKind.js +11 -1
  90. package/dist/lexer/TokenKind.js.map +1 -1
  91. package/dist/parser/AstNode.d.ts +2 -1
  92. package/dist/parser/AstNode.js +3 -2
  93. package/dist/parser/AstNode.js.map +1 -1
  94. package/dist/parser/Expression.d.ts +22 -2
  95. package/dist/parser/Expression.js +84 -49
  96. package/dist/parser/Expression.js.map +1 -1
  97. package/dist/parser/Parser.Class.spec.js +3 -3
  98. package/dist/parser/Parser.Class.spec.js.map +1 -1
  99. package/dist/parser/Parser.js +73 -61
  100. package/dist/parser/Parser.js.map +1 -1
  101. package/dist/parser/Parser.spec.js +198 -15
  102. package/dist/parser/Parser.spec.js.map +1 -1
  103. package/dist/parser/SGParser.js +9 -9
  104. package/dist/parser/SGParser.js.map +1 -1
  105. package/dist/parser/SGParser.spec.js +3 -2
  106. package/dist/parser/SGParser.spec.js.map +1 -1
  107. package/dist/parser/Statement.d.ts +16 -18
  108. package/dist/parser/Statement.js +136 -82
  109. package/dist/parser/Statement.js.map +1 -1
  110. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  111. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  112. package/dist/parser/tests/expression/ArrayLiterals.spec.js +3 -3
  113. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  114. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +3 -3
  115. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  116. package/dist/parser/tests/expression/Call.spec.js +9 -9
  117. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  118. package/dist/parser/tests/expression/Indexing.spec.js +3 -3
  119. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  120. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +1 -1
  121. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  122. package/dist/parser/tests/expression/TernaryExpression.spec.js +353 -71
  123. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  124. package/dist/parser/tests/statement/Dim.spec.js +10 -3
  125. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  126. package/dist/parser/tests/statement/Enum.spec.js +2 -2
  127. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/Increment.spec.js +3 -5
  129. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  130. package/dist/parser/tests/statement/PrintStatement.spec.js +3 -3
  131. package/dist/parser/tests/statement/TryCatch.spec.js +1 -1
  132. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  133. package/dist/roku-types/data.json +567 -247
  134. package/dist/roku-types/index.d.ts +72 -42
  135. package/dist/types/ArrayType.d.ts +3 -0
  136. package/dist/types/ArrayType.js +18 -5
  137. package/dist/types/ArrayType.js.map +1 -1
  138. package/dist/types/AssociativeArrayType.d.ts +1 -0
  139. package/dist/types/AssociativeArrayType.js +1 -0
  140. package/dist/types/AssociativeArrayType.js.map +1 -1
  141. package/dist/types/BaseFunctionType.d.ts +1 -0
  142. package/dist/types/BaseFunctionType.js +1 -0
  143. package/dist/types/BaseFunctionType.js.map +1 -1
  144. package/dist/types/BooleanType.d.ts +1 -0
  145. package/dist/types/BooleanType.js +1 -0
  146. package/dist/types/BooleanType.js.map +1 -1
  147. package/dist/types/BscType.d.ts +8 -1
  148. package/dist/types/BscType.js +22 -6
  149. package/dist/types/BscType.js.map +1 -1
  150. package/dist/types/BuiltInInterfaceAdder.js +10 -6
  151. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  152. package/dist/types/ClassType.d.ts +1 -0
  153. package/dist/types/ClassType.js +5 -2
  154. package/dist/types/ClassType.js.map +1 -1
  155. package/dist/types/ComponentType.d.ts +11 -4
  156. package/dist/types/ComponentType.js +100 -8
  157. package/dist/types/ComponentType.js.map +1 -1
  158. package/dist/types/DoubleType.d.ts +2 -0
  159. package/dist/types/DoubleType.js +4 -5
  160. package/dist/types/DoubleType.js.map +1 -1
  161. package/dist/types/DynamicType.d.ts +1 -0
  162. package/dist/types/DynamicType.js +4 -0
  163. package/dist/types/DynamicType.js.map +1 -1
  164. package/dist/types/EnumType.d.ts +2 -0
  165. package/dist/types/EnumType.js +20 -2
  166. package/dist/types/EnumType.js.map +1 -1
  167. package/dist/types/FloatType.d.ts +2 -0
  168. package/dist/types/FloatType.js +4 -5
  169. package/dist/types/FloatType.js.map +1 -1
  170. package/dist/types/FunctionType.js +2 -1
  171. package/dist/types/FunctionType.js.map +1 -1
  172. package/dist/types/InheritableType.js +8 -0
  173. package/dist/types/InheritableType.js.map +1 -1
  174. package/dist/types/IntegerType.d.ts +2 -0
  175. package/dist/types/IntegerType.js +4 -5
  176. package/dist/types/IntegerType.js.map +1 -1
  177. package/dist/types/InterfaceType.js +4 -1
  178. package/dist/types/InterfaceType.js.map +1 -1
  179. package/dist/types/InvalidType.d.ts +2 -1
  180. package/dist/types/InvalidType.js +3 -2
  181. package/dist/types/InvalidType.js.map +1 -1
  182. package/dist/types/LongIntegerType.d.ts +2 -0
  183. package/dist/types/LongIntegerType.js +4 -5
  184. package/dist/types/LongIntegerType.js.map +1 -1
  185. package/dist/types/ObjectType.d.ts +1 -0
  186. package/dist/types/ObjectType.js +1 -0
  187. package/dist/types/ObjectType.js.map +1 -1
  188. package/dist/types/ReferenceType.d.ts +20 -2
  189. package/dist/types/ReferenceType.js +106 -5
  190. package/dist/types/ReferenceType.js.map +1 -1
  191. package/dist/types/StringType.d.ts +1 -0
  192. package/dist/types/StringType.js +3 -2
  193. package/dist/types/StringType.js.map +1 -1
  194. package/dist/types/TypedFunctionType.d.ts +1 -1
  195. package/dist/types/TypedFunctionType.js +8 -2
  196. package/dist/types/TypedFunctionType.js.map +1 -1
  197. package/dist/types/UninitializedType.d.ts +2 -0
  198. package/dist/types/UninitializedType.js +5 -6
  199. package/dist/types/UninitializedType.js.map +1 -1
  200. package/dist/types/UnionType.js +8 -2
  201. package/dist/types/UnionType.js.map +1 -1
  202. package/dist/types/VoidType.d.ts +4 -1
  203. package/dist/types/VoidType.js +5 -0
  204. package/dist/types/VoidType.js.map +1 -1
  205. package/dist/types/helpers.js +8 -1
  206. package/dist/types/helpers.js.map +1 -1
  207. package/dist/util.d.ts +17 -6
  208. package/dist/util.js +320 -24
  209. package/dist/util.js.map +1 -1
  210. package/dist/validators/ClassValidator.js +13 -5
  211. package/dist/validators/ClassValidator.js.map +1 -1
  212. package/package.json +2 -2
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConditionalCompileConstStatement = exports.ConditionalCompileStatement = exports.AliasStatement = exports.ConditionalCompileErrorStatement = exports.TypecastStatement = exports.ContinueStatement = exports.ConstStatement = exports.EnumMemberStatement = exports.EnumStatement = exports.ThrowStatement = exports.CatchStatement = exports.TryCatchStatement = exports.FieldStatement = exports.MethodStatement = exports.ClassStatement = exports.InterfaceMethodStatement = exports.InterfaceFieldStatement = exports.InterfaceStatement = exports.ImportStatement = exports.NamespaceStatement = exports.LibraryStatement = exports.IndexedSetStatement = exports.DottedSetStatement = exports.WhileStatement = exports.ForEachStatement = exports.ForStatement = exports.StopStatement = exports.EndStatement = exports.ReturnStatement = exports.LabelStatement = exports.GotoStatement = exports.DimStatement = exports.PrintStatement = exports.IncrementStatement = exports.IfStatement = exports.FunctionStatement = exports.ExitStatement = exports.ExpressionStatement = exports.Block = exports.AugmentedAssignmentStatement = exports.AssignmentStatement = exports.Body = exports.EmptyStatement = void 0;
4
4
  const TokenKind_1 = require("../lexer/TokenKind");
5
5
  const Expression_1 = require("./Expression");
6
+ const Expression_2 = require("./Expression");
6
7
  const util_1 = require("../util");
7
8
  const Parser_1 = require("./Parser");
8
9
  const visitors_1 = require("../astUtils/visitors");
@@ -12,7 +13,6 @@ const creators_1 = require("../astUtils/creators");
12
13
  const DynamicType_1 = require("../types/DynamicType");
13
14
  const SymbolTable_1 = require("../SymbolTable");
14
15
  const AstNode_1 = require("./AstNode");
15
- const AstNode_2 = require("./AstNode");
16
16
  const ClassType_1 = require("../types/ClassType");
17
17
  const EnumType_1 = require("../types/EnumType");
18
18
  const NamespaceType_1 = require("../types/NamespaceType");
@@ -21,7 +21,7 @@ const VoidType_1 = require("../types/VoidType");
21
21
  const TypedFunctionType_1 = require("../types/TypedFunctionType");
22
22
  const ArrayType_1 = require("../types/ArrayType");
23
23
  const BrightScriptDocParser_1 = require("./BrightScriptDocParser");
24
- class EmptyStatement extends AstNode_2.Statement {
24
+ class EmptyStatement extends AstNode_1.Statement {
25
25
  constructor(options) {
26
26
  super();
27
27
  this.kind = AstNode_1.AstNodeKind.EmptyStatement;
@@ -43,7 +43,7 @@ exports.EmptyStatement = EmptyStatement;
43
43
  /**
44
44
  * This is a top-level statement. Consider this the root of the AST
45
45
  */
46
- class Body extends AstNode_2.Statement {
46
+ class Body extends AstNode_1.Statement {
47
47
  constructor(options) {
48
48
  var _a;
49
49
  super();
@@ -116,7 +116,7 @@ class Body extends AstNode_2.Statement {
116
116
  }
117
117
  }
118
118
  exports.Body = Body;
119
- class AssignmentStatement extends AstNode_2.Statement {
119
+ class AssignmentStatement extends AstNode_1.Statement {
120
120
  constructor(options) {
121
121
  super();
122
122
  this.kind = AstNode_1.AstNodeKind.AssignmentStatement;
@@ -134,7 +134,7 @@ class AssignmentStatement extends AstNode_2.Statement {
134
134
  return [
135
135
  state.transpileToken(this.tokens.name),
136
136
  ' ',
137
- state.transpileToken((_a = this.tokens.equals) !== null && _a !== void 0 ? _a : (0, creators_1.createToken)(TokenKind_1.TokenKind.Equal)),
137
+ state.transpileToken((_a = this.tokens.equals) !== null && _a !== void 0 ? _a : (0, creators_1.createToken)(TokenKind_1.TokenKind.Equal), '='),
138
138
  ' ',
139
139
  ...this.value.transpile(state)
140
140
  ];
@@ -171,7 +171,7 @@ class AssignmentStatement extends AstNode_2.Statement {
171
171
  }
172
172
  }
173
173
  exports.AssignmentStatement = AssignmentStatement;
174
- class AugmentedAssignmentStatement extends AstNode_2.Statement {
174
+ class AugmentedAssignmentStatement extends AstNode_1.Statement {
175
175
  constructor(options) {
176
176
  super();
177
177
  this.kind = AstNode_1.AstNodeKind.AugmentedAssignmentStatement;
@@ -219,7 +219,7 @@ class AugmentedAssignmentStatement extends AstNode_2.Statement {
219
219
  }
220
220
  }
221
221
  exports.AugmentedAssignmentStatement = AugmentedAssignmentStatement;
222
- class Block extends AstNode_2.Statement {
222
+ class Block extends AstNode_1.Statement {
223
223
  constructor(options) {
224
224
  super();
225
225
  this.kind = AstNode_1.AstNodeKind.Block;
@@ -333,7 +333,7 @@ class Block extends AstNode_2.Statement {
333
333
  }
334
334
  }
335
335
  exports.Block = Block;
336
- class ExpressionStatement extends AstNode_2.Statement {
336
+ class ExpressionStatement extends AstNode_1.Statement {
337
337
  constructor(options) {
338
338
  var _a;
339
339
  super();
@@ -363,7 +363,7 @@ class ExpressionStatement extends AstNode_2.Statement {
363
363
  }
364
364
  }
365
365
  exports.ExpressionStatement = ExpressionStatement;
366
- class ExitStatement extends AstNode_2.Statement {
366
+ class ExitStatement extends AstNode_1.Statement {
367
367
  constructor(options) {
368
368
  super();
369
369
  this.kind = AstNode_1.AstNodeKind.ExitStatement;
@@ -396,7 +396,7 @@ class ExitStatement extends AstNode_2.Statement {
396
396
  }
397
397
  }
398
398
  exports.ExitStatement = ExitStatement;
399
- class FunctionStatement extends AstNode_2.Statement {
399
+ class FunctionStatement extends AstNode_1.Statement {
400
400
  constructor(options) {
401
401
  var _a, _b;
402
402
  super();
@@ -467,7 +467,7 @@ class FunctionStatement extends AstNode_2.Statement {
467
467
  }
468
468
  }
469
469
  exports.FunctionStatement = FunctionStatement;
470
- class IfStatement extends AstNode_2.Statement {
470
+ class IfStatement extends AstNode_1.Statement {
471
471
  constructor(options) {
472
472
  super();
473
473
  this.kind = AstNode_1.AstNodeKind.IfStatement;
@@ -504,7 +504,7 @@ class IfStatement extends AstNode_2.Statement {
504
504
  //then
505
505
  if (this.tokens.then) {
506
506
  results.push(' ');
507
- results.push(state.transpileToken(this.tokens.then));
507
+ results.push(state.transpileToken(this.tokens.then, 'then'));
508
508
  }
509
509
  state.lineage.unshift(this);
510
510
  //if statement body
@@ -580,7 +580,7 @@ class IfStatement extends AstNode_2.Statement {
580
580
  }
581
581
  }
582
582
  exports.IfStatement = IfStatement;
583
- class IncrementStatement extends AstNode_2.Statement {
583
+ class IncrementStatement extends AstNode_1.Statement {
584
584
  constructor(options) {
585
585
  super();
586
586
  this.kind = AstNode_1.AstNodeKind.IncrementStatement;
@@ -617,12 +617,12 @@ exports.IncrementStatement = IncrementStatement;
617
617
  /**
618
618
  * Represents a `print` statement within BrightScript.
619
619
  */
620
- class PrintStatement extends AstNode_2.Statement {
620
+ class PrintStatement extends AstNode_1.Statement {
621
621
  /**
622
622
  * Creates a new internal representation of a BrightScript `print` statement.
623
623
  * @param options the options for this statement
624
624
  * @param options.print a print token
625
- * @param options.expressions an array of expressions or `PrintSeparator`s to be evaluated and printed.
625
+ * @param options.expressions an array of expressions to be evaluated and printed. Wrap PrintSeparator tokens (`;` or `,`) in `PrintSeparatorExpression`
626
626
  */
627
627
  constructor(options) {
628
628
  var _a;
@@ -637,28 +637,30 @@ class PrintStatement extends AstNode_2.Statement {
637
637
  transpile(state) {
638
638
  var _a;
639
639
  let result = [
640
- state.transpileToken(this.tokens.print),
641
- ' '
640
+ state.transpileToken(this.tokens.print, 'print')
642
641
  ];
642
+ //if the first expression has no leading whitespace, add a single space between the `print` and the expression
643
+ if (this.expressions.length > 0 && !this.expressions[0].leadingTrivia.find(t => t.kind === TokenKind_1.TokenKind.Whitespace)) {
644
+ result.push(' ');
645
+ }
646
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
643
647
  for (let i = 0; i < this.expressions.length; i++) {
644
- const expressionOrSeparator = this.expressions[i];
645
- if (expressionOrSeparator.transpile) {
646
- result.push(...expressionOrSeparator.transpile(state));
647
- }
648
- else {
649
- result.push(state.tokenToSourceNode(expressionOrSeparator));
648
+ const expression = this.expressions[i];
649
+ let leadingWhitespace = (_a = expression.leadingTrivia.find(t => t.kind === TokenKind_1.TokenKind.Whitespace)) === null || _a === void 0 ? void 0 : _a.text;
650
+ if (leadingWhitespace) {
651
+ result.push(leadingWhitespace);
652
+ //if the previous expression was NOT a separator, and this one is not also, add a space between them
650
653
  }
651
- //if there's an expression after us, add a space
652
- if ((_a = this.expressions[i + 1]) === null || _a === void 0 ? void 0 : _a.transpile) {
654
+ else if (i > 0 && !(0, reflection_1.isPrintSeparatorExpression)(this.expressions[i - 1]) && !(0, reflection_1.isPrintSeparatorExpression)(expression) && !leadingWhitespace) {
653
655
  result.push(' ');
654
656
  }
657
+ result.push(...expression.transpile(state));
655
658
  }
656
659
  return result;
657
660
  }
658
661
  walk(visitor, options) {
659
662
  if (options.walkMode & visitors_1.InternalWalkMode.walkExpressions) {
660
- //sometimes we have semicolon Tokens in the expressions list (should probably fix that...), so only walk the actual expressions
661
- (0, visitors_1.walkArray)(this.expressions, visitor, options, this, (item) => (0, reflection_1.isExpression)(item));
663
+ (0, visitors_1.walkArray)(this.expressions, visitor, options, this);
662
664
  }
663
665
  }
664
666
  get leadingTrivia() {
@@ -669,19 +671,12 @@ class PrintStatement extends AstNode_2.Statement {
669
671
  var _a;
670
672
  return this.finalizeClone(new PrintStatement({
671
673
  print: util_1.util.cloneToken(this.tokens.print),
672
- expressions: (_a = this.expressions) === null || _a === void 0 ? void 0 : _a.map(e => {
673
- if ((0, reflection_1.isExpression)(e)) {
674
- return e.clone();
675
- }
676
- else {
677
- return util_1.util.cloneToken(e);
678
- }
679
- })
674
+ expressions: (_a = this.expressions) === null || _a === void 0 ? void 0 : _a.map(e => e === null || e === void 0 ? void 0 : e.clone())
680
675
  }), ['expressions']);
681
676
  }
682
677
  }
683
678
  exports.PrintStatement = PrintStatement;
684
- class DimStatement extends AstNode_2.Statement {
679
+ class DimStatement extends AstNode_1.Statement {
685
680
  constructor(options) {
686
681
  var _a;
687
682
  super();
@@ -742,7 +737,7 @@ class DimStatement extends AstNode_2.Statement {
742
737
  }
743
738
  }
744
739
  exports.DimStatement = DimStatement;
745
- class GotoStatement extends AstNode_2.Statement {
740
+ class GotoStatement extends AstNode_1.Statement {
746
741
  constructor(options) {
747
742
  super();
748
743
  this.kind = AstNode_1.AstNodeKind.GotoStatement;
@@ -774,7 +769,7 @@ class GotoStatement extends AstNode_2.Statement {
774
769
  }
775
770
  }
776
771
  exports.GotoStatement = GotoStatement;
777
- class LabelStatement extends AstNode_2.Statement {
772
+ class LabelStatement extends AstNode_1.Statement {
778
773
  constructor(options) {
779
774
  super();
780
775
  this.kind = AstNode_1.AstNodeKind.LabelStatement;
@@ -804,7 +799,7 @@ class LabelStatement extends AstNode_2.Statement {
804
799
  }
805
800
  }
806
801
  exports.LabelStatement = LabelStatement;
807
- class ReturnStatement extends AstNode_2.Statement {
802
+ class ReturnStatement extends AstNode_1.Statement {
808
803
  constructor(options) {
809
804
  super();
810
805
  this.kind = AstNode_1.AstNodeKind.ReturnStatement;
@@ -841,7 +836,7 @@ class ReturnStatement extends AstNode_2.Statement {
841
836
  }
842
837
  }
843
838
  exports.ReturnStatement = ReturnStatement;
844
- class EndStatement extends AstNode_2.Statement {
839
+ class EndStatement extends AstNode_1.Statement {
845
840
  constructor(options) {
846
841
  var _a;
847
842
  super();
@@ -870,7 +865,7 @@ class EndStatement extends AstNode_2.Statement {
870
865
  }
871
866
  }
872
867
  exports.EndStatement = EndStatement;
873
- class StopStatement extends AstNode_2.Statement {
868
+ class StopStatement extends AstNode_1.Statement {
874
869
  constructor(options) {
875
870
  var _a, _b;
876
871
  super();
@@ -897,7 +892,7 @@ class StopStatement extends AstNode_2.Statement {
897
892
  }
898
893
  }
899
894
  exports.StopStatement = StopStatement;
900
- class ForStatement extends AstNode_2.Statement {
895
+ class ForStatement extends AstNode_1.Statement {
901
896
  constructor(options) {
902
897
  super();
903
898
  this.kind = AstNode_1.AstNodeKind.ForStatement;
@@ -970,7 +965,7 @@ class ForStatement extends AstNode_2.Statement {
970
965
  }
971
966
  }
972
967
  exports.ForStatement = ForStatement;
973
- class ForEachStatement extends AstNode_2.Statement {
968
+ class ForEachStatement extends AstNode_1.Statement {
974
969
  constructor(options) {
975
970
  super();
976
971
  this.kind = AstNode_1.AstNodeKind.ForEachStatement;
@@ -1034,7 +1029,7 @@ class ForEachStatement extends AstNode_2.Statement {
1034
1029
  }
1035
1030
  }
1036
1031
  exports.ForEachStatement = ForEachStatement;
1037
- class WhileStatement extends AstNode_2.Statement {
1032
+ class WhileStatement extends AstNode_1.Statement {
1038
1033
  constructor(options) {
1039
1034
  super();
1040
1035
  this.kind = AstNode_1.AstNodeKind.WhileStatement;
@@ -1087,7 +1082,7 @@ class WhileStatement extends AstNode_2.Statement {
1087
1082
  }
1088
1083
  }
1089
1084
  exports.WhileStatement = WhileStatement;
1090
- class DottedSetStatement extends AstNode_2.Statement {
1085
+ class DottedSetStatement extends AstNode_1.Statement {
1091
1086
  constructor(options) {
1092
1087
  super();
1093
1088
  this.kind = AstNode_1.AstNodeKind.DottedSetStatement;
@@ -1098,7 +1093,7 @@ class DottedSetStatement extends AstNode_2.Statement {
1098
1093
  };
1099
1094
  this.obj = options.obj;
1100
1095
  this.value = options.value;
1101
- this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.dot, this.tokens.name, this.value);
1096
+ this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.dot, this.tokens.equals, this.tokens.name, this.value);
1102
1097
  }
1103
1098
  transpile(state) {
1104
1099
  //if the value is a compound assignment, don't add the obj, dot, name, or operator...the expression will handle that
@@ -1148,7 +1143,7 @@ class DottedSetStatement extends AstNode_2.Statement {
1148
1143
  }
1149
1144
  }
1150
1145
  exports.DottedSetStatement = DottedSetStatement;
1151
- class IndexedSetStatement extends AstNode_2.Statement {
1146
+ class IndexedSetStatement extends AstNode_1.Statement {
1152
1147
  constructor(options) {
1153
1148
  var _a;
1154
1149
  super();
@@ -1159,9 +1154,9 @@ class IndexedSetStatement extends AstNode_2.Statement {
1159
1154
  equals: options.equals
1160
1155
  };
1161
1156
  this.obj = options.obj;
1162
- this.indexes = options.indexes;
1157
+ this.indexes = (_a = options.indexes) !== null && _a !== void 0 ? _a : [];
1163
1158
  this.value = options.value;
1164
- this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.openingSquare, ...(_a = this.indexes) !== null && _a !== void 0 ? _a : [], this.tokens.closingSquare, this.value);
1159
+ this.location = util_1.util.createBoundingLocation(this.obj, this.tokens.openingSquare, ...this.indexes, this.tokens.closingSquare, this.value);
1165
1160
  }
1166
1161
  transpile(state) {
1167
1162
  var _a;
@@ -1198,14 +1193,14 @@ class IndexedSetStatement extends AstNode_2.Statement {
1198
1193
  obj: (_a = this.obj) === null || _a === void 0 ? void 0 : _a.clone(),
1199
1194
  openingSquare: util_1.util.cloneToken(this.tokens.openingSquare),
1200
1195
  indexes: (_b = this.indexes) === null || _b === void 0 ? void 0 : _b.map(x => x === null || x === void 0 ? void 0 : x.clone()),
1196
+ closingSquare: util_1.util.cloneToken(this.tokens.closingSquare),
1201
1197
  equals: util_1.util.cloneToken(this.tokens.equals),
1202
- value: (_c = this.value) === null || _c === void 0 ? void 0 : _c.clone(),
1203
- closingSquare: util_1.util.cloneToken(this.tokens.closingSquare)
1198
+ value: (_c = this.value) === null || _c === void 0 ? void 0 : _c.clone()
1204
1199
  }), ['obj', 'indexes', 'value']);
1205
1200
  }
1206
1201
  }
1207
1202
  exports.IndexedSetStatement = IndexedSetStatement;
1208
- class LibraryStatement extends AstNode_2.Statement {
1203
+ class LibraryStatement extends AstNode_1.Statement {
1209
1204
  constructor(options) {
1210
1205
  super();
1211
1206
  this.kind = AstNode_1.AstNodeKind.LibraryStatement;
@@ -1243,7 +1238,7 @@ class LibraryStatement extends AstNode_2.Statement {
1243
1238
  }
1244
1239
  }
1245
1240
  exports.LibraryStatement = LibraryStatement;
1246
- class NamespaceStatement extends AstNode_2.Statement {
1241
+ class NamespaceStatement extends AstNode_1.Statement {
1247
1242
  constructor(options) {
1248
1243
  super();
1249
1244
  this.kind = AstNode_1.AstNodeKind.NamespaceStatement;
@@ -1342,7 +1337,7 @@ class NamespaceStatement extends AstNode_2.Statement {
1342
1337
  }
1343
1338
  }
1344
1339
  exports.NamespaceStatement = NamespaceStatement;
1345
- class ImportStatement extends AstNode_2.Statement {
1340
+ class ImportStatement extends AstNode_1.Statement {
1346
1341
  constructor(options) {
1347
1342
  var _a, _b;
1348
1343
  super();
@@ -1397,7 +1392,7 @@ class ImportStatement extends AstNode_2.Statement {
1397
1392
  }
1398
1393
  }
1399
1394
  exports.ImportStatement = ImportStatement;
1400
- class InterfaceStatement extends AstNode_2.Statement {
1395
+ class InterfaceStatement extends AstNode_1.Statement {
1401
1396
  constructor(options) {
1402
1397
  var _a;
1403
1398
  super();
@@ -1552,7 +1547,7 @@ class InterfaceStatement extends AstNode_2.Statement {
1552
1547
  }
1553
1548
  }
1554
1549
  exports.InterfaceStatement = InterfaceStatement;
1555
- class InterfaceFieldStatement extends AstNode_2.Statement {
1550
+ class InterfaceFieldStatement extends AstNode_1.Statement {
1556
1551
  constructor(options) {
1557
1552
  super();
1558
1553
  this.kind = AstNode_1.AstNodeKind.InterfaceFieldStatement;
@@ -1617,7 +1612,7 @@ class InterfaceFieldStatement extends AstNode_2.Statement {
1617
1612
  exports.InterfaceFieldStatement = InterfaceFieldStatement;
1618
1613
  //TODO: there is much that is similar with this and FunctionExpression.
1619
1614
  //It would be nice to refactor this so there is less duplicated code
1620
- class InterfaceMethodStatement extends AstNode_2.Statement {
1615
+ class InterfaceMethodStatement extends AstNode_1.Statement {
1621
1616
  constructor(options) {
1622
1617
  var _a;
1623
1618
  super();
@@ -1726,7 +1721,7 @@ class InterfaceMethodStatement extends AstNode_2.Statement {
1726
1721
  }
1727
1722
  }
1728
1723
  exports.InterfaceMethodStatement = InterfaceMethodStatement;
1729
- class ClassStatement extends AstNode_2.Statement {
1724
+ class ClassStatement extends AstNode_1.Statement {
1730
1725
  constructor(options) {
1731
1726
  var _a, _b, _c, _d, _e;
1732
1727
  super();
@@ -1870,7 +1865,7 @@ class ClassStatement extends AstNode_2.Statement {
1870
1865
  let stmt = this;
1871
1866
  while (stmt) {
1872
1867
  if (stmt.parentClassName) {
1873
- const namespace = this.findAncestor(reflection_1.isNamespaceStatement);
1868
+ const namespace = stmt.findAncestor(reflection_1.isNamespaceStatement);
1874
1869
  stmt = (_a = state.file.getClassFileLink(stmt.parentClassName.getName(), namespace === null || namespace === void 0 ? void 0 : namespace.getName(Parser_1.ParseMode.BrighterScript))) === null || _a === void 0 ? void 0 : _a.item;
1875
1870
  ancestors.push(stmt);
1876
1871
  }
@@ -1901,6 +1896,20 @@ class ClassStatement extends AstNode_2.Statement {
1901
1896
  return ((_b = (_a = stmt === null || stmt === void 0 ? void 0 : stmt.tokens.name) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'new';
1902
1897
  });
1903
1898
  }
1899
+ /**
1900
+ * Return the parameters for the first constructor function for this class
1901
+ * @param ancestors The list of ancestors for this class
1902
+ * @returns The parameters for the first constructor function for this class
1903
+ */
1904
+ getConstructorParams(ancestors) {
1905
+ for (let ancestor of ancestors) {
1906
+ const ctor = ancestor === null || ancestor === void 0 ? void 0 : ancestor.getConstructorFunction();
1907
+ if (ctor) {
1908
+ return ctor.func.parameters;
1909
+ }
1910
+ }
1911
+ return [];
1912
+ }
1904
1913
  /**
1905
1914
  * Determine if the specified field was declared in one of the ancestor classes
1906
1915
  */
@@ -1943,10 +1952,43 @@ class ClassStatement extends AstNode_2.Statement {
1943
1952
  let body = this.body;
1944
1953
  //inject an empty "new" method if missing
1945
1954
  if (!this.getConstructorFunction()) {
1946
- body = [
1947
- (0, creators_1.createMethodStatement)('new', TokenKind_1.TokenKind.Sub),
1948
- ...this.body
1949
- ];
1955
+ if (ancestors.length === 0) {
1956
+ body = [
1957
+ (0, creators_1.createMethodStatement)('new', TokenKind_1.TokenKind.Sub),
1958
+ ...this.body
1959
+ ];
1960
+ }
1961
+ else {
1962
+ const params = this.getConstructorParams(ancestors);
1963
+ const call = new ExpressionStatement({
1964
+ expression: new Expression_2.CallExpression({
1965
+ callee: new Expression_2.VariableExpression({
1966
+ name: (0, creators_1.createToken)(TokenKind_1.TokenKind.Identifier, 'super')
1967
+ }),
1968
+ openingParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.LeftParen),
1969
+ args: params.map(x => new Expression_2.VariableExpression({
1970
+ name: util_1.util.cloneToken(x.tokens.name)
1971
+ })),
1972
+ closingParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.RightParen)
1973
+ })
1974
+ });
1975
+ body = [
1976
+ new MethodStatement({
1977
+ name: (0, creators_1.createIdentifier)('new'),
1978
+ func: new Expression_1.FunctionExpression({
1979
+ parameters: params.map(x => x.clone()),
1980
+ body: new Block({
1981
+ statements: [call]
1982
+ }),
1983
+ functionType: (0, creators_1.createToken)(TokenKind_1.TokenKind.Sub),
1984
+ endFunctionType: (0, creators_1.createToken)(TokenKind_1.TokenKind.EndSub),
1985
+ leftParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.LeftParen),
1986
+ rightParen: (0, creators_1.createToken)(TokenKind_1.TokenKind.RightParen)
1987
+ })
1988
+ }),
1989
+ ...this.body
1990
+ ];
1991
+ }
1950
1992
  }
1951
1993
  for (let statement of body) {
1952
1994
  //is field statement
@@ -1994,7 +2036,13 @@ class ClassStatement extends AstNode_2.Statement {
1994
2036
  getTranspiledClassFunction(state) {
1995
2037
  let result = state.transpileAnnotations(this);
1996
2038
  const constructorFunction = this.getConstructorFunction();
1997
- const constructorParams = constructorFunction ? constructorFunction.func.parameters : [];
2039
+ let constructorParams = [];
2040
+ if (constructorFunction) {
2041
+ constructorParams = constructorFunction.func.parameters;
2042
+ }
2043
+ else {
2044
+ constructorParams = this.getConstructorParams(this.getAncestors(state));
2045
+ }
1998
2046
  result.push(state.transpileLeadingComments(this.tokens.class), state.sourceNode(this.tokens.class, 'function'), state.sourceNode(this.tokens.class, ' '), state.sourceNode(this.tokens.name, this.getName(Parser_1.ParseMode.BrightScript)), `(`);
1999
2047
  let i = 0;
2000
2048
  for (let param of constructorParams) {
@@ -2184,8 +2232,8 @@ class MethodStatement extends FunctionStatement {
2184
2232
  }
2185
2233
  //this is a child class, and the constructor doesn't contain a call to super. Inject one
2186
2234
  const superCall = new ExpressionStatement({
2187
- expression: new Expression_1.CallExpression({
2188
- callee: new Expression_1.VariableExpression({
2235
+ expression: new Expression_2.CallExpression({
2236
+ callee: new Expression_2.VariableExpression({
2189
2237
  name: {
2190
2238
  kind: TokenKind_1.TokenKind.Identifier,
2191
2239
  text: 'super',
@@ -2261,7 +2309,7 @@ class MethodStatement extends FunctionStatement {
2261
2309
  }
2262
2310
  }
2263
2311
  exports.MethodStatement = MethodStatement;
2264
- class FieldStatement extends AstNode_2.Statement {
2312
+ class FieldStatement extends AstNode_1.Statement {
2265
2313
  constructor(options) {
2266
2314
  super();
2267
2315
  this.kind = AstNode_1.AstNodeKind.FieldStatement;
@@ -2282,7 +2330,11 @@ class FieldStatement extends AstNode_2.Statement {
2282
2330
  */
2283
2331
  getType(options) {
2284
2332
  var _a, _b, _c, _d;
2285
- return (_d = (_b = (_a = this.typeExpression) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: 2 /* SymbolTypeFlag.typetime */ }))) !== null && _b !== void 0 ? _b : (_c = this.initialValue) === null || _c === void 0 ? void 0 : _c.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */ }))) !== null && _d !== void 0 ? _d : DynamicType_1.DynamicType.instance;
2333
+ let initialValueType = (_a = this.initialValue) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */ }));
2334
+ if ((0, reflection_1.isInvalidType)(initialValueType) || (0, reflection_1.isVoidType)(initialValueType) || (0, reflection_1.isUninitializedType)(initialValueType)) {
2335
+ initialValueType = undefined;
2336
+ }
2337
+ return (_d = (_c = (_b = this.typeExpression) === null || _b === void 0 ? void 0 : _b.getType(Object.assign(Object.assign({}, options), { flags: 2 /* SymbolTypeFlag.typetime */ }))) !== null && _c !== void 0 ? _c : util_1.util.getDefaultTypeFromValueType(initialValueType)) !== null && _d !== void 0 ? _d : DynamicType_1.DynamicType.instance;
2286
2338
  }
2287
2339
  get leadingTrivia() {
2288
2340
  var _a, _b, _c, _d;
@@ -2305,7 +2357,7 @@ class FieldStatement extends AstNode_2.Statement {
2305
2357
  result.push(...annotation.getTypedef(state), state.newline, state.indent());
2306
2358
  }
2307
2359
  let type = this.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
2308
- if ((0, reflection_1.isInvalidType)(type) || (0, reflection_1.isVoidType)(type)) {
2360
+ if ((0, reflection_1.isInvalidType)(type) || (0, reflection_1.isVoidType)(type) || (0, reflection_1.isUninitializedType)(type)) {
2309
2361
  type = new DynamicType_1.DynamicType();
2310
2362
  }
2311
2363
  result.push((_d = (_c = this.tokens.accessModifier) === null || _c === void 0 ? void 0 : _c.text) !== null && _d !== void 0 ? _d : 'public', ' ');
@@ -2336,7 +2388,7 @@ class FieldStatement extends AstNode_2.Statement {
2336
2388
  }
2337
2389
  }
2338
2390
  exports.FieldStatement = FieldStatement;
2339
- class TryCatchStatement extends AstNode_2.Statement {
2391
+ class TryCatchStatement extends AstNode_1.Statement {
2340
2392
  constructor(options) {
2341
2393
  super();
2342
2394
  this.kind = AstNode_1.AstNodeKind.TryCatchStatement;
@@ -2386,7 +2438,7 @@ class TryCatchStatement extends AstNode_2.Statement {
2386
2438
  }
2387
2439
  }
2388
2440
  exports.TryCatchStatement = TryCatchStatement;
2389
- class CatchStatement extends AstNode_2.Statement {
2441
+ class CatchStatement extends AstNode_1.Statement {
2390
2442
  constructor(options) {
2391
2443
  super();
2392
2444
  this.kind = AstNode_1.AstNodeKind.CatchStatement;
@@ -2430,7 +2482,7 @@ class CatchStatement extends AstNode_2.Statement {
2430
2482
  }
2431
2483
  }
2432
2484
  exports.CatchStatement = CatchStatement;
2433
- class ThrowStatement extends AstNode_2.Statement {
2485
+ class ThrowStatement extends AstNode_1.Statement {
2434
2486
  constructor(options) {
2435
2487
  super();
2436
2488
  this.kind = AstNode_1.AstNodeKind.ThrowStatement;
@@ -2473,7 +2525,7 @@ class ThrowStatement extends AstNode_2.Statement {
2473
2525
  }
2474
2526
  }
2475
2527
  exports.ThrowStatement = ThrowStatement;
2476
- class EnumStatement extends AstNode_2.Statement {
2528
+ class EnumStatement extends AstNode_1.Statement {
2477
2529
  constructor(options) {
2478
2530
  var _a;
2479
2531
  super();
@@ -2612,7 +2664,9 @@ class EnumStatement extends AstNode_2.Statement {
2612
2664
  const resultType = new EnumType_1.EnumType(this.fullName, (_a = members[0]) === null || _a === void 0 ? void 0 : _a.getType(options).underlyingType);
2613
2665
  resultType.pushMemberProvider(() => this.getSymbolTable());
2614
2666
  for (const statement of members) {
2615
- resultType.addMember((_c = (_b = statement === null || statement === void 0 ? void 0 : statement.tokens) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.text, { definingNode: statement }, statement.getType(options), 1 /* SymbolTypeFlag.runtime */);
2667
+ const memberType = statement.getType(Object.assign(Object.assign({}, options), { typeChain: undefined }));
2668
+ memberType.parentEnumType = resultType;
2669
+ resultType.addMember((_c = (_b = statement === null || statement === void 0 ? void 0 : statement.tokens) === null || _b === void 0 ? void 0 : _b.name) === null || _c === void 0 ? void 0 : _c.text, { definingNode: statement }, memberType, 1 /* SymbolTypeFlag.runtime */);
2616
2670
  }
2617
2671
  return resultType;
2618
2672
  }
@@ -2627,7 +2681,7 @@ class EnumStatement extends AstNode_2.Statement {
2627
2681
  }
2628
2682
  }
2629
2683
  exports.EnumStatement = EnumStatement;
2630
- class EnumMemberStatement extends AstNode_2.Statement {
2684
+ class EnumMemberStatement extends AstNode_1.Statement {
2631
2685
  constructor(options) {
2632
2686
  super();
2633
2687
  this.kind = AstNode_1.AstNodeKind.EnumMemberStatement;
@@ -2686,7 +2740,7 @@ class EnumMemberStatement extends AstNode_2.Statement {
2686
2740
  }
2687
2741
  }
2688
2742
  exports.EnumMemberStatement = EnumMemberStatement;
2689
- class ConstStatement extends AstNode_2.Statement {
2743
+ class ConstStatement extends AstNode_1.Statement {
2690
2744
  constructor(options) {
2691
2745
  super();
2692
2746
  this.kind = AstNode_1.AstNodeKind.ConstStatement;
@@ -2761,7 +2815,7 @@ class ConstStatement extends AstNode_2.Statement {
2761
2815
  }
2762
2816
  }
2763
2817
  exports.ConstStatement = ConstStatement;
2764
- class ContinueStatement extends AstNode_2.Statement {
2818
+ class ContinueStatement extends AstNode_1.Statement {
2765
2819
  constructor(options) {
2766
2820
  super();
2767
2821
  this.kind = AstNode_1.AstNodeKind.ContinueStatement;
@@ -2794,7 +2848,7 @@ class ContinueStatement extends AstNode_2.Statement {
2794
2848
  }
2795
2849
  }
2796
2850
  exports.ContinueStatement = ContinueStatement;
2797
- class TypecastStatement extends AstNode_2.Statement {
2851
+ class TypecastStatement extends AstNode_1.Statement {
2798
2852
  constructor(options) {
2799
2853
  super();
2800
2854
  this.kind = AstNode_1.AstNodeKind.TypecastStatement;
@@ -2837,7 +2891,7 @@ class TypecastStatement extends AstNode_2.Statement {
2837
2891
  }
2838
2892
  }
2839
2893
  exports.TypecastStatement = TypecastStatement;
2840
- class ConditionalCompileErrorStatement extends AstNode_2.Statement {
2894
+ class ConditionalCompileErrorStatement extends AstNode_1.Statement {
2841
2895
  constructor(options) {
2842
2896
  super();
2843
2897
  this.kind = AstNode_1.AstNodeKind.ConditionalCompileErrorStatement;
@@ -2869,7 +2923,7 @@ class ConditionalCompileErrorStatement extends AstNode_2.Statement {
2869
2923
  }
2870
2924
  }
2871
2925
  exports.ConditionalCompileErrorStatement = ConditionalCompileErrorStatement;
2872
- class AliasStatement extends AstNode_2.Statement {
2926
+ class AliasStatement extends AstNode_1.Statement {
2873
2927
  constructor(options) {
2874
2928
  super();
2875
2929
  this.kind = AstNode_1.AstNodeKind.AliasStatement;
@@ -2916,7 +2970,7 @@ class AliasStatement extends AstNode_2.Statement {
2916
2970
  }
2917
2971
  }
2918
2972
  exports.AliasStatement = AliasStatement;
2919
- class ConditionalCompileStatement extends AstNode_2.Statement {
2973
+ class ConditionalCompileStatement extends AstNode_1.Statement {
2920
2974
  constructor(options) {
2921
2975
  super();
2922
2976
  this.kind = AstNode_1.AstNodeKind.ConditionalCompileStatement;
@@ -3028,7 +3082,7 @@ class ConditionalCompileStatement extends AstNode_2.Statement {
3028
3082
  }
3029
3083
  }
3030
3084
  exports.ConditionalCompileStatement = ConditionalCompileStatement;
3031
- class ConditionalCompileConstStatement extends AstNode_2.Statement {
3085
+ class ConditionalCompileConstStatement extends AstNode_1.Statement {
3032
3086
  constructor(options) {
3033
3087
  super();
3034
3088
  this.kind = AstNode_1.AstNodeKind.ConditionalCompileConstStatement;