brighterscript 1.0.0-alpha.41 → 1.0.0-alpha.42

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 (210) hide show
  1. package/CHANGELOG.md +62 -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 +4 -2
  34. package/dist/astUtils/reflection.js +12 -3
  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 +80 -9
  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 +149 -79
  60. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  61. package/dist/bscPlugin/validation/ScopeValidator.spec.js +1227 -27
  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 +76 -48
  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 +430 -235
  134. package/dist/roku-types/index.d.ts +30 -37
  135. package/dist/types/ArrayType.d.ts +2 -0
  136. package/dist/types/ArrayType.js +14 -4
  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 +12 -3
  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 +2 -0
  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 +2 -0
  169. package/dist/types/FloatType.js.map +1 -1
  170. package/dist/types/InheritableType.js +8 -0
  171. package/dist/types/InheritableType.js.map +1 -1
  172. package/dist/types/IntegerType.d.ts +2 -0
  173. package/dist/types/IntegerType.js +2 -0
  174. package/dist/types/IntegerType.js.map +1 -1
  175. package/dist/types/InterfaceType.js +4 -1
  176. package/dist/types/InterfaceType.js.map +1 -1
  177. package/dist/types/InvalidType.d.ts +2 -1
  178. package/dist/types/InvalidType.js +1 -0
  179. package/dist/types/InvalidType.js.map +1 -1
  180. package/dist/types/LongIntegerType.d.ts +2 -0
  181. package/dist/types/LongIntegerType.js +2 -0
  182. package/dist/types/LongIntegerType.js.map +1 -1
  183. package/dist/types/ObjectType.d.ts +1 -0
  184. package/dist/types/ObjectType.js +1 -0
  185. package/dist/types/ObjectType.js.map +1 -1
  186. package/dist/types/ReferenceType.d.ts +20 -2
  187. package/dist/types/ReferenceType.js +106 -5
  188. package/dist/types/ReferenceType.js.map +1 -1
  189. package/dist/types/StringType.d.ts +1 -0
  190. package/dist/types/StringType.js +1 -0
  191. package/dist/types/StringType.js.map +1 -1
  192. package/dist/types/TypedFunctionType.d.ts +1 -1
  193. package/dist/types/TypedFunctionType.js +8 -2
  194. package/dist/types/TypedFunctionType.js.map +1 -1
  195. package/dist/types/UninitializedType.d.ts +2 -0
  196. package/dist/types/UninitializedType.js +5 -6
  197. package/dist/types/UninitializedType.js.map +1 -1
  198. package/dist/types/UnionType.js +8 -2
  199. package/dist/types/UnionType.js.map +1 -1
  200. package/dist/types/VoidType.d.ts +4 -1
  201. package/dist/types/VoidType.js +5 -0
  202. package/dist/types/VoidType.js.map +1 -1
  203. package/dist/types/helpers.js +8 -1
  204. package/dist/types/helpers.js.map +1 -1
  205. package/dist/util.d.ts +15 -5
  206. package/dist/util.js +281 -14
  207. package/dist/util.js.map +1 -1
  208. package/dist/validators/ClassValidator.js +13 -5
  209. package/dist/validators/ClassValidator.js.map +1 -1
  210. package/package.json +2 -2
@@ -1,17 +1,17 @@
1
1
  import type { Token, Identifier } from '../lexer/Token';
2
- import { TokenKind } from '../lexer/TokenKind';
3
- import type { DottedGetExpression, FunctionExpression, FunctionParameterExpression, TypeExpression, TypecastExpression } from './Expression';
2
+ import type { DottedGetExpression, FunctionParameterExpression, TypecastExpression, TypeExpression } from './Expression';
3
+ import { FunctionExpression } from './Expression';
4
4
  import { VariableExpression } from './Expression';
5
5
  import type { Location } from 'vscode-languageserver';
6
6
  import type { BrsTranspileState } from './BrsTranspileState';
7
7
  import { ParseMode } from './Parser';
8
8
  import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
9
- import { type GetTypeOptions, type TranspileResult, type TypedefProvider } from '../interfaces';
9
+ import type { GetTypeOptions } from '../interfaces';
10
+ import { type TranspileResult, type TypedefProvider } from '../interfaces';
10
11
  import type { BscType } from '../types/BscType';
11
12
  import { SymbolTable } from '../SymbolTable';
12
13
  import type { Expression } from './AstNode';
13
- import { AstNodeKind } from './AstNode';
14
- import { Statement } from './AstNode';
14
+ import { AstNodeKind, Statement } from './AstNode';
15
15
  import { ClassType } from '../types/ClassType';
16
16
  import { NamespaceType } from '../types/NamespaceType';
17
17
  import { InterfaceType } from '../types/InterfaceType';
@@ -198,14 +198,6 @@ export declare class IncrementStatement extends Statement {
198
198
  get leadingTrivia(): Token[];
199
199
  clone(): IncrementStatement;
200
200
  }
201
- /** Used to indent the current `print` position to the next 16-character-width output zone. */
202
- export interface PrintSeparatorTab extends Token {
203
- kind: TokenKind.Comma;
204
- }
205
- /** Used to insert a single whitespace character at the current `print` position. */
206
- export interface PrintSeparatorSpace extends Token {
207
- kind: TokenKind.Semicolon;
208
- }
209
201
  /**
210
202
  * Represents a `print` statement within BrightScript.
211
203
  */
@@ -214,16 +206,16 @@ export declare class PrintStatement extends Statement {
214
206
  * Creates a new internal representation of a BrightScript `print` statement.
215
207
  * @param options the options for this statement
216
208
  * @param options.print a print token
217
- * @param options.expressions an array of expressions or `PrintSeparator`s to be evaluated and printed.
209
+ * @param options.expressions an array of expressions to be evaluated and printed. Wrap PrintSeparator tokens (`;` or `,`) in `PrintSeparatorExpression`
218
210
  */
219
211
  constructor(options: {
220
- print: Token;
221
- expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>;
212
+ print?: Token;
213
+ expressions: Array<Expression>;
222
214
  });
223
215
  readonly tokens: {
224
- readonly print: Token;
216
+ readonly print?: Token;
225
217
  };
226
- readonly expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>;
218
+ readonly expressions: Array<Expression>;
227
219
  readonly kind = AstNodeKind.PrintStatement;
228
220
  readonly location: Location | undefined;
229
221
  transpile(state: BrsTranspileState): TranspileResult;
@@ -674,6 +666,12 @@ export declare class ClassStatement extends Statement implements TypedefProvider
674
666
  * Get the constructor function for this class (if exists), or undefined if not exist
675
667
  */
676
668
  private getConstructorFunction;
669
+ /**
670
+ * Return the parameters for the first constructor function for this class
671
+ * @param ancestors The list of ancestors for this class
672
+ * @returns The parameters for the first constructor function for this class
673
+ */
674
+ private getConstructorParams;
677
675
  /**
678
676
  * Determine if the specified field was declared in one of the ancestor classes
679
677
  */