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
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.Class.spec.js","sourceRoot":"","sources":["../../src/parser/Parser.Class.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Parser.Class.spec.js","sourceRoot":"","sources":["../../src/parser/Parser.Class.spec.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ const Expression_1 = require("./Expression");
11
11
  const logging_1 = require("../logging");
12
12
  const reflection_1 = require("../astUtils/reflection");
13
13
  const creators_1 = require("../astUtils/creators");
14
+ const declarableTypesLower = TokenKind_1.DeclarableTypes.map(tokenKind => tokenKind.toLowerCase());
14
15
  class Parser {
15
16
  constructor() {
16
17
  /**
@@ -214,7 +215,7 @@ class Parser {
214
215
  return identifier;
215
216
  }
216
217
  enumMemberStatement() {
217
- const name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedClassFieldIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
218
+ const name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
218
219
  let equalsToken;
219
220
  let value;
220
221
  //look for `= SOME_EXPRESSION`
@@ -244,14 +245,14 @@ class Parser {
244
245
  //if there's nothing after the `as`, add a diagnostic and continue
245
246
  if (this.checkEndOfStatement()) {
246
247
  if (!ignoreDiagnostics) {
247
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword(asToken.text)), { location: asToken.location }));
248
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(asToken.text)), { location: asToken.location }));
248
249
  }
249
250
  //consume the statement separator
250
251
  this.consumeStatementSeparators();
251
252
  }
252
253
  else if (this.peek().kind !== TokenKind_1.TokenKind.Identifier && !this.checkAny(...TokenKind_1.DeclarableTypes, ...TokenKind_1.AllowedTypeIdentifiers)) {
253
254
  if (!ignoreDiagnostics) {
254
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword(asToken.text)), { location: asToken.location }));
255
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(asToken.text)), { location: asToken.location }));
255
256
  }
256
257
  }
257
258
  else {
@@ -305,7 +306,7 @@ class Parser {
305
306
  if (this.peek().text.toLowerCase() === 'extends') {
306
307
  extendsToken = this.advance();
307
308
  if (this.checkEndOfStatement()) {
308
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword(extendsToken.text)), { location: extendsToken.location }));
309
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(extendsToken.text)), { location: extendsToken.location }));
309
310
  }
310
311
  else {
311
312
  parentInterfaceName = this.typeExpression();
@@ -429,12 +430,12 @@ class Parser {
429
430
  let extendsKeyword;
430
431
  let parentClassName;
431
432
  //get the class name
432
- let className = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('class'), TokenKind_1.TokenKind.Identifier, ...this.allowedLocalIdentifiers);
433
+ let className = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('class'), TokenKind_1.TokenKind.Identifier, ...this.allowedLocalIdentifiers);
433
434
  //see if the class inherits from parent
434
435
  if (this.peek().text.toLowerCase() === 'extends') {
435
436
  extendsKeyword = this.advance();
436
437
  if (this.checkEndOfStatement()) {
437
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword(extendsKeyword.text)), { location: extendsKeyword.location }));
438
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(extendsKeyword.text)), { location: extendsKeyword.location }));
438
439
  }
439
440
  else {
440
441
  parentClassName = this.typeExpression();
@@ -535,7 +536,7 @@ class Parser {
535
536
  optionalKeyword = null;
536
537
  this.current--;
537
538
  }
538
- let name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedClassFieldIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
539
+ let name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
539
540
  let asToken;
540
541
  let fieldTypeExpression;
541
542
  //look for `as SOME_TYPE`
@@ -587,16 +588,16 @@ class Parser {
587
588
  let name;
588
589
  let leftParen;
589
590
  if (isAnonymous) {
590
- leftParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedLeftParenAfterCallable(functionTypeText), TokenKind_1.TokenKind.LeftParen);
591
+ leftParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedToken('('), TokenKind_1.TokenKind.LeftParen);
591
592
  }
592
593
  else {
593
- name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedNameAfterCallableKeyword(functionTypeText), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
594
- leftParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedLeftParenAfterCallableName(functionTypeText), TokenKind_1.TokenKind.LeftParen);
594
+ name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(functionTypeText), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
595
+ leftParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedToken('('), TokenKind_1.TokenKind.LeftParen);
595
596
  //prevent functions from ending with type designators
596
597
  let lastChar = name.text[name.text.length - 1];
597
598
  if (['$', '%', '!', '#', '&'].includes(lastChar)) {
598
599
  //don't throw this error; let the parser continue
599
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.functionNameCannotEndWithTypeDesignator(functionTypeText, name.text, lastChar)), { location: name.location }));
600
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.invalidIdentifier(name.text, lastChar)), { location: name.location }));
600
601
  }
601
602
  //flag functions with keywords for names (only for standard functions)
602
603
  if (checkIdentifier && TokenKind_1.DisallowedFunctionIdentifiersText.has(name.text.toLowerCase())) {
@@ -631,7 +632,7 @@ class Parser {
631
632
  //if `function` is ended with `end sub`, or `sub` is ended with `end function`, then
632
633
  //add an error but don't hard-fail so the AST can continue more gracefully
633
634
  if (endFunctionType.kind !== expectedEndKind) {
634
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.mismatchedEndCallableKeyword(functionTypeText, endFunctionType.text)), { location: endFunctionType.location }));
635
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.closingKeywordMismatch(functionTypeText, endFunctionType.text)), { location: endFunctionType.location }));
635
636
  }
636
637
  if (!body) {
637
638
  body = new Statement_1.Block({ statements: [] });
@@ -703,7 +704,7 @@ class Parser {
703
704
  [asToken, typeExpression] = this.consumeAsTokenAndTypeExpression();
704
705
  }
705
706
  }
706
- let operator = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedOperatorAfterIdentifier([TokenKind_1.TokenKind.Equal], name.text), ...[TokenKind_1.TokenKind.Equal]);
707
+ let operator = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedOperator([TokenKind_1.TokenKind.Equal], name.text), ...[TokenKind_1.TokenKind.Equal]);
707
708
  let value = this.expression();
708
709
  let result = new Statement_1.AssignmentStatement({ equals: operator, name: name, value: value, as: asToken, typeExpression: typeExpression });
709
710
  return result;
@@ -891,14 +892,15 @@ class Parser {
891
892
  });
892
893
  }
893
894
  exitStatement() {
895
+ var _a;
894
896
  let exitToken = this.advance();
895
897
  if (exitToken.kind === TokenKind_1.TokenKind.ExitWhile) {
896
898
  // `exitwhile` is allowed in code, and means `exit while`
897
899
  // use an ExitStatement that is nicer to work with by breaking the `exit` and `while` tokens apart
898
900
  const exitText = exitToken.text.substring(0, 4);
899
901
  const whileText = exitToken.text.substring(4);
900
- const originalRange = exitToken.location.range;
901
- const originalStart = originalRange.start;
902
+ const originalRange = (_a = exitToken.location) === null || _a === void 0 ? void 0 : _a.range;
903
+ const originalStart = originalRange === null || originalRange === void 0 ? void 0 : originalRange.start;
902
904
  const exitRange = util_1.util.createRange(originalStart.line, originalStart.character, originalStart.line, originalStart.character + 4);
903
905
  const whileRange = util_1.util.createRange(originalStart.line, originalStart.character + 4, originalStart.line, originalStart.character + exitToken.text.length);
904
906
  exitToken = (0, creators_1.createToken)(TokenKind_1.TokenKind.Exit, exitText, util_1.util.createLocationFromRange(exitToken.location.uri, exitRange));
@@ -931,7 +933,7 @@ class Parser {
931
933
  let body = this.block(TokenKind_1.TokenKind.EndFor, TokenKind_1.TokenKind.Next);
932
934
  let endForToken;
933
935
  if (!body || !this.checkAny(TokenKind_1.TokenKind.EndFor, TokenKind_1.TokenKind.Next)) {
934
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndForOrNextToTerminateForLoop()), { location: this.peek().location }));
936
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndForOrNextToTerminateForLoop(forToken.text)), { location: this.peek().location }));
935
937
  if (!body) {
936
938
  throw this.lastDiagnosticAsError();
937
939
  }
@@ -960,7 +962,7 @@ class Parser {
960
962
  this.advance();
961
963
  }
962
964
  else {
963
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedInAfterForEach(name.text)), { location: this.peek().location }));
965
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.In)), { location: this.peek().location }));
964
966
  throw this.lastDiagnosticAsError();
965
967
  }
966
968
  maybeIn.kind = TokenKind_1.TokenKind.In;
@@ -971,15 +973,16 @@ class Parser {
971
973
  }
972
974
  this.consumeStatementSeparators();
973
975
  let body = this.block(TokenKind_1.TokenKind.EndFor, TokenKind_1.TokenKind.Next);
974
- if (!body) {
975
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndForOrNextToTerminateForLoop()), { location: this.peek().location }));
976
+ let endForToken;
977
+ if (!body || !this.checkAny(TokenKind_1.TokenKind.EndFor, TokenKind_1.TokenKind.Next)) {
978
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndForOrNextToTerminateForLoop(forEach.text)), { location: this.peek().location }));
976
979
  throw this.lastDiagnosticAsError();
977
980
  }
978
- let endFor = this.advance();
981
+ endForToken = this.advance();
979
982
  return new Statement_1.ForEachStatement({
980
983
  forEach: forEach,
981
984
  in: maybeIn,
982
- endFor: endFor,
985
+ endFor: endForToken,
983
986
  item: name,
984
987
  target: target,
985
988
  body: body
@@ -1019,7 +1022,7 @@ class Parser {
1019
1022
  */
1020
1023
  identifyingExpression(allowedTokenKinds) {
1021
1024
  allowedTokenKinds = allowedTokenKinds !== null && allowedTokenKinds !== void 0 ? allowedTokenKinds : this.allowedLocalIdentifiers;
1022
- let firstIdentifier = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword(this.previous().text), TokenKind_1.TokenKind.Identifier, ...allowedTokenKinds);
1025
+ let firstIdentifier = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(this.previous().text), TokenKind_1.TokenKind.Identifier, ...allowedTokenKinds);
1023
1026
  let expr;
1024
1027
  if (firstIdentifier) {
1025
1028
  // force it into an identifier so the AST makes some sense
@@ -1106,7 +1109,7 @@ class Parser {
1106
1109
  typecastExpression: typecastExpr
1107
1110
  });
1108
1111
  }
1109
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('typecast')), { location: {
1112
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('typecast')), { location: {
1110
1113
  uri: typecastToken.location.uri,
1111
1114
  range: util_1.util.createBoundingRange(typecastToken, this.peek())
1112
1115
  } }));
@@ -1115,7 +1118,7 @@ class Parser {
1115
1118
  aliasStatement() {
1116
1119
  this.warnIfNotBrighterScriptMode('alias statements');
1117
1120
  const aliasToken = this.advance();
1118
- const name = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('alias'), TokenKind_1.TokenKind.Identifier);
1121
+ const name = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('alias'), TokenKind_1.TokenKind.Identifier);
1119
1122
  const equals = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.Equal), TokenKind_1.TokenKind.Equal);
1120
1123
  let value = this.identifyingExpression();
1121
1124
  let aliasStmt = new Statement_1.AliasStatement({
@@ -1245,7 +1248,7 @@ class Parser {
1245
1248
  quasis.push(new Expression_1.TemplateStringQuasiExpression({ expressions: currentQuasiExpressionParts }));
1246
1249
  if (this.isAtEnd()) {
1247
1250
  //error - missing backtick
1248
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unterminatedTemplateStringAtEndOfFile()), { location: {
1251
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unterminatedTemplateString()), { location: {
1249
1252
  uri: openingBacktick.location.uri,
1250
1253
  range: util_1.util.createBoundingRange(openingBacktick, this.peek())
1251
1254
  } }));
@@ -1304,7 +1307,7 @@ class Parser {
1304
1307
  });
1305
1308
  }
1306
1309
  if (this.peek().kind !== TokenKind_1.TokenKind.EndTry) {
1307
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndTryToTerminateTryCatch()), { location: this.peek().location }));
1310
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedTerminator('end try', 'try-catch')), { location: this.peek().location }));
1308
1311
  }
1309
1312
  else {
1310
1313
  endTryToken = this.advance();
@@ -1330,12 +1333,12 @@ class Parser {
1330
1333
  }
1331
1334
  dimStatement() {
1332
1335
  const dim = this.advance();
1333
- let identifier = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('dim'), TokenKind_1.TokenKind.Identifier, ...this.allowedLocalIdentifiers);
1336
+ let identifier = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('dim'), TokenKind_1.TokenKind.Identifier, ...this.allowedLocalIdentifiers);
1334
1337
  // force to an identifier so the AST makes some sense
1335
1338
  if (identifier) {
1336
1339
  identifier.kind = TokenKind_1.TokenKind.Identifier;
1337
1340
  }
1338
- let leftSquareBracket = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.missingLeftSquareBracketAfterDimIdentifier(), TokenKind_1.TokenKind.LeftSquareBracket);
1341
+ let leftSquareBracket = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedToken('['), TokenKind_1.TokenKind.LeftSquareBracket);
1339
1342
  let expressions = [];
1340
1343
  let expression;
1341
1344
  do {
@@ -1356,7 +1359,7 @@ class Parser {
1356
1359
  if (expressions.length === 0) {
1357
1360
  this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.missingExpressionsInDimStatement()), { location: this.peek().location }));
1358
1361
  }
1359
- let rightSquareBracket = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.missingRightSquareBracketAfterDimIdentifier(), TokenKind_1.TokenKind.RightSquareBracket);
1362
+ let rightSquareBracket = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftToken('[', 'dim identifier'), TokenKind_1.TokenKind.RightSquareBracket);
1360
1363
  return new Statement_1.DimStatement({
1361
1364
  dim: dim,
1362
1365
  name: identifier,
@@ -1366,7 +1369,6 @@ class Parser {
1366
1369
  });
1367
1370
  }
1368
1371
  ifStatement(incrementNestedCount = true) {
1369
- var _a;
1370
1372
  // colon before `if` is usually not allowed, unless it's after `then`
1371
1373
  if (this.current > 0) {
1372
1374
  const prev = this.previous();
@@ -1396,7 +1398,7 @@ class Parser {
1396
1398
  }
1397
1399
  thenBranch = this.inlineConditionalBranch(TokenKind_1.TokenKind.Else, TokenKind_1.TokenKind.EndIf);
1398
1400
  if (!thenBranch) {
1399
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedStatementToFollowConditionalCondition(ifToken.text)), { location: this.peek().location }));
1401
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedStatement(ifToken.text, 'statement')), { location: this.peek().location }));
1400
1402
  throw this.lastDiagnosticAsError();
1401
1403
  }
1402
1404
  else {
@@ -1426,7 +1428,7 @@ class Parser {
1426
1428
  }
1427
1429
  if (!elseBranch) {
1428
1430
  //missing `else` branch
1429
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedStatementToFollowElse()), { location: this.peek().location }));
1431
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedStatement('else', 'statement')), { location: this.peek().location }));
1430
1432
  throw this.lastDiagnosticAsError();
1431
1433
  }
1432
1434
  }
@@ -1469,7 +1471,7 @@ class Parser {
1469
1471
  }
1470
1472
  else {
1471
1473
  //missing endif
1472
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndIfToCloseIfStatement((_a = ifToken.location) === null || _a === void 0 ? void 0 : _a.range.start)), { location: ifToken.location }));
1474
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedTerminator('end if', 'if')), { location: ifToken.location }));
1473
1475
  }
1474
1476
  }
1475
1477
  }
@@ -1497,13 +1499,13 @@ class Parser {
1497
1499
  //resurface if they are legitimate, and not a result of a malformed if statement
1498
1500
  this.diagnostics.splice(diagnosticsLengthBeforeBlock, this.diagnostics.length - diagnosticsLengthBeforeBlock);
1499
1501
  //this whole if statement is bogus...add error to the if token and hard-fail
1500
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedEndIfElseIfOrElseToTerminateThenBlock()), { location: ifToken.location }));
1502
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedTerminator(['end if', 'else if', 'else'], 'then', 'block')), { location: ifToken.location }));
1501
1503
  throw this.lastDiagnosticAsError();
1502
1504
  }
1503
1505
  return branch;
1504
1506
  }
1505
1507
  conditionalCompileStatement() {
1506
- var _a, _b, _c;
1508
+ var _a, _b;
1507
1509
  const hashIfToken = this.advance();
1508
1510
  let notToken;
1509
1511
  if (this.check(TokenKind_1.TokenKind.Not)) {
@@ -1551,7 +1553,7 @@ class Parser {
1551
1553
  }
1552
1554
  else {
1553
1555
  //missing #endif
1554
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedHashEndIfToCloseHashIf((_c = hashIfToken.location) === null || _c === void 0 ? void 0 : _c.range.start.line)), { location: hashIfToken.location }));
1556
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedTerminator('#end if', '#if')), { location: hashIfToken.location }));
1555
1557
  }
1556
1558
  }
1557
1559
  return new Statement_1.ConditionalCompileStatement({
@@ -1577,7 +1579,7 @@ class Parser {
1577
1579
  //resurface if they are legitimate, and not a result of a malformed if statement
1578
1580
  this.diagnostics.splice(diagnosticsLengthBeforeBlock, this.diagnostics.length - diagnosticsLengthBeforeBlock);
1579
1581
  //this whole if statement is bogus...add error to the if token and hard-fail
1580
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedTerminatorOnConditionalCompileBlock()), { location: hashIfToken.location }));
1582
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedTerminator(['#end if', '#else if', '#else'], 'conditional compilation', 'block')), { location: hashIfToken.location }));
1581
1583
  throw this.lastDiagnosticAsError();
1582
1584
  }
1583
1585
  return branch;
@@ -1657,7 +1659,7 @@ class Parser {
1657
1659
  const constName = this.peek();
1658
1660
  //disallow using keywords for const names
1659
1661
  if (TokenKind_1.ReservedWords.has(constName === null || constName === void 0 ? void 0 : constName.text.toLowerCase())) {
1660
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.constNameCannotBeReservedWord()), { location: constName === null || constName === void 0 ? void 0 : constName.location }));
1662
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.cannotUseReservedWordAsIdentifier(constName === null || constName === void 0 ? void 0 : constName.text)), { location: constName === null || constName === void 0 ? void 0 : constName.location }));
1661
1663
  this.lastDiagnosticAsError();
1662
1664
  return;
1663
1665
  }
@@ -1681,7 +1683,7 @@ class Parser {
1681
1683
  return undefined;
1682
1684
  }
1683
1685
  if (!this.check(TokenKind_1.TokenKind.Newline)) {
1684
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedNewlineInConditionalCompile()), { location: this.peek().location }));
1686
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedToken(this.peek().text)), { location: this.peek().location }));
1685
1687
  throw this.lastDiagnosticAsError();
1686
1688
  }
1687
1689
  return new Statement_1.ConditionalCompileConstStatement({ hashConst: hashConstToken, assignment: assignment });
@@ -1695,7 +1697,7 @@ class Parser {
1695
1697
  ensureNewLine() {
1696
1698
  //ensure newline before next keyword
1697
1699
  if (!this.check(TokenKind_1.TokenKind.Newline)) {
1698
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedNewlineInConditionalCompile()), { location: this.peek().location }));
1700
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedToken(this.peek().text)), { location: this.peek().location }));
1699
1701
  throw this.lastDiagnosticAsError();
1700
1702
  }
1701
1703
  }
@@ -1755,11 +1757,11 @@ class Parser {
1755
1757
  if (this.checkAny(TokenKind_1.TokenKind.PlusPlus, TokenKind_1.TokenKind.MinusMinus)) {
1756
1758
  let operator = this.advance();
1757
1759
  if (this.checkAny(TokenKind_1.TokenKind.PlusPlus, TokenKind_1.TokenKind.MinusMinus)) {
1758
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.consecutiveIncrementDecrementOperatorsAreNotAllowed()), { location: this.peek().location }));
1760
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedOperator()), { location: this.peek().location }));
1759
1761
  throw this.lastDiagnosticAsError();
1760
1762
  }
1761
1763
  else if ((0, reflection_1.isCallExpression)(expr)) {
1762
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall()), { location: expressionStart.location }));
1764
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedOperator()), { location: expressionStart.location }));
1763
1765
  throw this.lastDiagnosticAsError();
1764
1766
  }
1765
1767
  const result = new Statement_1.IncrementStatement({ value: expr, operator: operator });
@@ -1772,7 +1774,7 @@ class Parser {
1772
1774
  expr = new Expression_1.BinaryExpression({ left: expr, operator: this.advance(), right: this.expression() });
1773
1775
  }
1774
1776
  //at this point, it's probably an error. However, we recover a little more gracefully by creating an inclosing ExpressionStatement
1775
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedStatementOrFunctionCallButReceivedExpression()), { location: expressionStart.location }));
1777
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.expectedStatement()), { location: expressionStart.location }));
1776
1778
  return new Statement_1.ExpressionStatement({ expression: expr });
1777
1779
  }
1778
1780
  setStatement() {
@@ -1824,11 +1826,8 @@ class Parser {
1824
1826
  let printKeyword = this.advance();
1825
1827
  let values = [];
1826
1828
  while (!this.checkEndOfStatement()) {
1827
- if (this.check(TokenKind_1.TokenKind.Semicolon)) {
1828
- values.push(this.advance());
1829
- }
1830
- else if (this.check(TokenKind_1.TokenKind.Comma)) {
1831
- values.push(this.advance());
1829
+ if (this.checkAny(TokenKind_1.TokenKind.Semicolon, TokenKind_1.TokenKind.Comma)) {
1830
+ values.push(new Expression_1.PrintSeparatorExpression({ separator: this.advance() }));
1832
1831
  }
1833
1832
  else if (this.check(TokenKind_1.TokenKind.Else)) {
1834
1833
  break; // inline branch
@@ -2119,7 +2118,7 @@ class Parser {
2119
2118
  }
2120
2119
  //consume trailing newlines
2121
2120
  while (this.match(TokenKind_1.TokenKind.Newline)) { }
2122
- const closingSquare = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedRightSquareBraceAfterArrayOrObjectIndex(), TokenKind_1.TokenKind.RightSquareBracket);
2121
+ const closingSquare = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftToken(openingSquare.text, 'array or object index'), TokenKind_1.TokenKind.RightSquareBracket);
2123
2122
  return new Expression_1.IndexedGetExpression({
2124
2123
  obj: expr,
2125
2124
  indexes: indexes,
@@ -2150,20 +2149,27 @@ class Parser {
2150
2149
  * A callfunc expression (i.e. `node@.someFunctionOnNode()`)
2151
2150
  */
2152
2151
  callfunc(callee) {
2152
+ var _a;
2153
2153
  this.warnIfNotBrighterScriptMode('callfunc operator');
2154
2154
  let operator = this.previous();
2155
- let methodName = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
2156
- // force it into an identifier so the AST makes some sense
2157
- methodName.kind = TokenKind_1.TokenKind.Identifier;
2158
- let openParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedOpenParenToFollowCallfuncIdentifier(), TokenKind_1.TokenKind.LeftParen);
2159
- let call = this.finishCall(openParen, callee, false);
2155
+ let methodName = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
2156
+ let openParen;
2157
+ let call;
2158
+ if (methodName) {
2159
+ // force it into an identifier so the AST makes some sense
2160
+ methodName.kind = TokenKind_1.TokenKind.Identifier;
2161
+ openParen = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.LeftParen), TokenKind_1.TokenKind.LeftParen);
2162
+ if (openParen) {
2163
+ call = this.finishCall(openParen, callee, false);
2164
+ }
2165
+ }
2160
2166
  return new Expression_1.CallfuncExpression({
2161
2167
  callee: callee,
2162
2168
  operator: operator,
2163
2169
  methodName: methodName,
2164
2170
  openingParen: openParen,
2165
- args: call.args,
2166
- closingParen: call.tokens.closingParen
2171
+ args: call === null || call === void 0 ? void 0 : call.args,
2172
+ closingParen: (_a = call === null || call === void 0 ? void 0 : call.tokens) === null || _a === void 0 ? void 0 : _a.closingParen
2167
2173
  });
2168
2174
  }
2169
2175
  call() {
@@ -2187,7 +2193,7 @@ class Parser {
2187
2193
  }
2188
2194
  else {
2189
2195
  let dot = this.previous();
2190
- let name = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedPropertyNameAfterPeriod(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
2196
+ let name = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
2191
2197
  if (!name) {
2192
2198
  break;
2193
2199
  }
@@ -2236,7 +2242,7 @@ class Parser {
2236
2242
  } while (this.match(TokenKind_1.TokenKind.Comma));
2237
2243
  }
2238
2244
  while (this.match(TokenKind_1.TokenKind.Newline)) { }
2239
- const closingParen = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedRightParenAfterFunctionCallArguments(), TokenKind_1.TokenKind.RightParen);
2245
+ const closingParen = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftToken(openingParen.text, 'function call arguments'), TokenKind_1.TokenKind.RightParen);
2240
2246
  let expression = new Expression_1.CallExpression({
2241
2247
  callee: callee,
2242
2248
  openingParen: openingParen,
@@ -2287,12 +2293,18 @@ class Parser {
2287
2293
  * @returns an expression that was successfully parsed
2288
2294
  */
2289
2295
  getTypeExpressionPart(changedTokens) {
2296
+ var _a, _b;
2290
2297
  let expr;
2291
2298
  if (this.checkAny(...TokenKind_1.DeclarableTypes)) {
2292
2299
  // if this is just a type, just use directly
2293
2300
  expr = new Expression_1.VariableExpression({ name: this.advance() });
2294
2301
  }
2295
2302
  else {
2303
+ if (this.options.mode === ParseMode.BrightScript && !declarableTypesLower.includes((_b = (_a = this.peek()) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.toLowerCase())) {
2304
+ // custom types arrays not allowed in Brightscript
2305
+ this.warnIfNotBrighterScriptMode('custom types');
2306
+ return expr;
2307
+ }
2296
2308
  if (this.checkAny(...TokenKind_1.AllowedTypeIdentifiers)) {
2297
2309
  // Since the next token is allowed as a type identifier, change the kind
2298
2310
  let nextToken = this.peek();
@@ -2340,7 +2352,7 @@ class Parser {
2340
2352
  case this.match(TokenKind_1.TokenKind.LeftParen):
2341
2353
  let left = this.previous();
2342
2354
  let expr = this.expression();
2343
- let right = this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftParenAfterExpression(), TokenKind_1.TokenKind.RightParen);
2355
+ let right = this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftToken(left.text, 'expression'), TokenKind_1.TokenKind.RightParen);
2344
2356
  return new Expression_1.GroupingExpression({ leftParen: left, rightParen: right, expression: expr });
2345
2357
  case this.matchAny(TokenKind_1.TokenKind.LeftSquareBracket):
2346
2358
  return this.arrayLiteral();
@@ -2388,7 +2400,7 @@ class Parser {
2388
2400
  catch (error) {
2389
2401
  this.rethrowNonDiagnosticError(error);
2390
2402
  }
2391
- closingSquare = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftSquareBraceAfterArrayLiteral(), TokenKind_1.TokenKind.RightSquareBracket);
2403
+ closingSquare = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftToken(openingSquare.text, 'array literal'), TokenKind_1.TokenKind.RightSquareBracket);
2392
2404
  }
2393
2405
  else {
2394
2406
  closingSquare = this.previous();
@@ -2454,7 +2466,7 @@ class Parser {
2454
2466
  catch (error) {
2455
2467
  this.rethrowNonDiagnosticError(error);
2456
2468
  }
2457
- closingBrace = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftCurlyAfterAALiteral(), TokenKind_1.TokenKind.RightCurlyBrace);
2469
+ closingBrace = this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftToken(openingBrace.text, 'associative array literal'), TokenKind_1.TokenKind.RightCurlyBrace);
2458
2470
  }
2459
2471
  else {
2460
2472
  closingBrace = this.previous();