brighterscript 0.58.0 → 0.60.0

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 (242) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +18 -9
  3. package/bsconfig.schema.json +11 -0
  4. package/dist/BsConfig.d.ts +11 -0
  5. package/dist/CommentFlagProcessor.d.ts +1 -1
  6. package/dist/CommentFlagProcessor.js +1 -1
  7. package/dist/DependencyGraph.d.ts +3 -2
  8. package/dist/DependencyGraph.js +3 -2
  9. package/dist/DependencyGraph.js.map +1 -1
  10. package/dist/DiagnosticFilterer.js +1 -2
  11. package/dist/DiagnosticFilterer.js.map +1 -1
  12. package/dist/DiagnosticMessages.d.ts +12 -2
  13. package/dist/DiagnosticMessages.js +12 -2
  14. package/dist/DiagnosticMessages.js.map +1 -1
  15. package/dist/FunctionScope.d.ts +1 -1
  16. package/dist/FunctionScope.js +1 -1
  17. package/dist/KeyedThrottler.d.ts +3 -3
  18. package/dist/KeyedThrottler.js +3 -3
  19. package/dist/KeyedThrottler.js.map +1 -1
  20. package/dist/LanguageServer.d.ts +0 -7
  21. package/dist/LanguageServer.js +0 -7
  22. package/dist/LanguageServer.js.map +1 -1
  23. package/dist/Program.d.ts +10 -8
  24. package/dist/Program.js +50 -238
  25. package/dist/Program.js.map +1 -1
  26. package/dist/ProgramBuilder.d.ts +0 -1
  27. package/dist/ProgramBuilder.js +1 -2
  28. package/dist/ProgramBuilder.js.map +1 -1
  29. package/dist/Scope.d.ts +35 -35
  30. package/dist/Scope.js +63 -42
  31. package/dist/Scope.js.map +1 -1
  32. package/dist/SymbolTable.d.ts +0 -3
  33. package/dist/SymbolTable.js +0 -3
  34. package/dist/SymbolTable.js.map +1 -1
  35. package/dist/Watcher.d.ts +0 -3
  36. package/dist/Watcher.js +0 -3
  37. package/dist/Watcher.js.map +1 -1
  38. package/dist/astUtils/AstEditor.d.ts +1 -1
  39. package/dist/astUtils/AstEditor.js +1 -1
  40. package/dist/astUtils/AstEditor.spec.js +58 -58
  41. package/dist/astUtils/AstEditor.spec.js.map +1 -1
  42. package/dist/astUtils/creators.spec.js +5 -5
  43. package/dist/astUtils/creators.spec.js.map +1 -1
  44. package/dist/astUtils/reflection.d.ts +3 -1
  45. package/dist/astUtils/reflection.js +10 -2
  46. package/dist/astUtils/reflection.js.map +1 -1
  47. package/dist/astUtils/reflection.spec.js +115 -110
  48. package/dist/astUtils/reflection.spec.js.map +1 -1
  49. package/dist/astUtils/stackedVisitor.spec.js +12 -12
  50. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  51. package/dist/astUtils/visitors.d.ts +6 -1
  52. package/dist/astUtils/visitors.js +4 -0
  53. package/dist/astUtils/visitors.js.map +1 -1
  54. package/dist/astUtils/visitors.spec.js +21 -21
  55. package/dist/astUtils/visitors.spec.js.map +1 -1
  56. package/dist/bscPlugin/CallExpressionInfo.d.ts +35 -0
  57. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  58. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  59. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  60. package/dist/bscPlugin/SignatureHelpUtil.js +135 -0
  61. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  62. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +12 -12
  63. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  64. package/dist/bscPlugin/hover/HoverProcessor.spec.js +48 -48
  65. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  66. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +4 -4
  67. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  68. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +1 -2
  69. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  70. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +4 -5
  71. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -1
  72. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +2 -0
  73. package/dist/bscPlugin/validation/BrsFileValidator.js +59 -6
  74. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  75. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +39 -9
  76. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  77. package/dist/files/BrsFile.Class.spec.js +43 -45
  78. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  79. package/dist/files/BrsFile.d.ts +8 -20
  80. package/dist/files/BrsFile.js +16 -97
  81. package/dist/files/BrsFile.js.map +1 -1
  82. package/dist/files/BrsFile.spec.js +309 -262
  83. package/dist/files/BrsFile.spec.js.map +1 -1
  84. package/dist/files/XmlFile.d.ts +1 -4
  85. package/dist/files/XmlFile.js +1 -4
  86. package/dist/files/XmlFile.js.map +1 -1
  87. package/dist/files/XmlFile.spec.js +136 -169
  88. package/dist/files/XmlFile.spec.js.map +1 -1
  89. package/dist/files/tests/imports.spec.js +19 -21
  90. package/dist/files/tests/imports.spec.js.map +1 -1
  91. package/dist/files/tests/optionalChaning.spec.js +8 -11
  92. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  93. package/dist/lexer/Character.spec.js +5 -5
  94. package/dist/lexer/Character.spec.js.map +1 -1
  95. package/dist/lexer/Lexer.d.ts +0 -5
  96. package/dist/lexer/Lexer.js +0 -5
  97. package/dist/lexer/Lexer.js.map +1 -1
  98. package/dist/lexer/Lexer.spec.js +141 -135
  99. package/dist/lexer/Lexer.spec.js.map +1 -1
  100. package/dist/lexer/TokenKind.d.ts +1 -0
  101. package/dist/lexer/TokenKind.js +6 -2
  102. package/dist/lexer/TokenKind.js.map +1 -1
  103. package/dist/parser/AstNode.d.ts +1 -1
  104. package/dist/parser/AstNode.spec.js +8 -10
  105. package/dist/parser/AstNode.spec.js.map +1 -1
  106. package/dist/parser/Expression.js.map +1 -1
  107. package/dist/parser/Parser.Class.spec.js +60 -60
  108. package/dist/parser/Parser.Class.spec.js.map +1 -1
  109. package/dist/parser/Parser.d.ts +8 -4
  110. package/dist/parser/Parser.js +16 -7
  111. package/dist/parser/Parser.js.map +1 -1
  112. package/dist/parser/Parser.spec.js +229 -221
  113. package/dist/parser/Parser.spec.js.map +1 -1
  114. package/dist/parser/SGParser.spec.js +16 -17
  115. package/dist/parser/SGParser.spec.js.map +1 -1
  116. package/dist/parser/Statement.d.ts +16 -2
  117. package/dist/parser/Statement.js +40 -8
  118. package/dist/parser/Statement.js.map +1 -1
  119. package/dist/parser/Statement.spec.js +31 -14
  120. package/dist/parser/Statement.spec.js.map +1 -1
  121. package/dist/parser/tests/controlFlow/For.spec.js +15 -15
  122. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  123. package/dist/parser/tests/controlFlow/ForEach.spec.js +13 -13
  124. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  125. package/dist/parser/tests/controlFlow/If.spec.js +93 -93
  126. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  127. package/dist/parser/tests/controlFlow/While.spec.js +12 -12
  128. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  129. package/dist/parser/tests/expression/Additive.spec.js +8 -8
  130. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  131. package/dist/parser/tests/expression/ArrayLiterals.spec.js +26 -26
  132. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  133. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +27 -27
  134. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  135. package/dist/parser/tests/expression/Boolean.spec.js +8 -8
  136. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  137. package/dist/parser/tests/expression/Call.spec.js +45 -45
  138. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  139. package/dist/parser/tests/expression/Exponential.spec.js +5 -5
  140. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  141. package/dist/parser/tests/expression/Function.spec.js +36 -36
  142. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  143. package/dist/parser/tests/expression/Indexing.spec.js +29 -29
  144. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  145. package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
  146. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  147. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +34 -34
  148. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  149. package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
  150. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  151. package/dist/parser/tests/expression/Primary.spec.js +12 -12
  152. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  153. package/dist/parser/tests/expression/Relational.spec.js +13 -13
  154. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  155. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +10 -10
  156. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  157. package/dist/parser/tests/expression/TernaryExpression.spec.js +53 -53
  158. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  159. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  160. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  161. package/dist/parser/tests/statement/ConstStatement.spec.js +12 -12
  162. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  163. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  164. package/dist/parser/tests/statement/Continue.spec.js +92 -0
  165. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  166. package/dist/parser/tests/statement/Declaration.spec.js +19 -19
  167. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  168. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  169. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  170. package/dist/parser/tests/statement/Enum.spec.js +43 -19
  171. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  172. package/dist/parser/tests/statement/For.spec.js +3 -4
  173. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  174. package/dist/parser/tests/statement/ForEach.spec.js +4 -5
  175. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  176. package/dist/parser/tests/statement/Function.spec.js +35 -35
  177. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  178. package/dist/parser/tests/statement/Goto.spec.js +5 -5
  179. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  180. package/dist/parser/tests/statement/Increment.spec.js +20 -20
  181. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  182. package/dist/parser/tests/statement/InterfaceStatement.spec.js +4 -5
  183. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  184. package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
  185. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  186. package/dist/parser/tests/statement/Misc.spec.js +20 -20
  187. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  188. package/dist/parser/tests/statement/PrintStatement.spec.js +19 -20
  189. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  190. package/dist/parser/tests/statement/ReturnStatement.spec.js +9 -9
  191. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  192. package/dist/parser/tests/statement/Set.spec.js +22 -22
  193. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  194. package/dist/parser/tests/statement/Stop.spec.js +6 -6
  195. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  196. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  197. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  198. package/dist/parser/tests/statement/TryCatch.spec.js +15 -15
  199. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  200. package/dist/preprocessor/Manifest.spec.js +8 -8
  201. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  202. package/dist/preprocessor/Preprocessor.d.ts +2 -2
  203. package/dist/preprocessor/Preprocessor.js +2 -2
  204. package/dist/preprocessor/Preprocessor.spec.js +25 -25
  205. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  206. package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
  207. package/dist/preprocessor/PreprocessorParser.js +1 -1
  208. package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
  209. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  210. package/dist/types/ArrayType.spec.js +9 -9
  211. package/dist/types/ArrayType.spec.js.map +1 -1
  212. package/dist/types/BooleanType.spec.js +3 -3
  213. package/dist/types/BooleanType.spec.js.map +1 -1
  214. package/dist/types/DoubleType.spec.js +3 -3
  215. package/dist/types/DoubleType.spec.js.map +1 -1
  216. package/dist/types/DynamicType.d.ts +0 -1
  217. package/dist/types/DynamicType.js +0 -1
  218. package/dist/types/DynamicType.js.map +1 -1
  219. package/dist/types/DynamicType.spec.js +3 -3
  220. package/dist/types/DynamicType.spec.js.map +1 -1
  221. package/dist/types/FloatType.spec.js +3 -3
  222. package/dist/types/FloatType.spec.js.map +1 -1
  223. package/dist/types/FunctionType.spec.js +6 -6
  224. package/dist/types/FunctionType.spec.js.map +1 -1
  225. package/dist/types/IntegerType.spec.js +3 -3
  226. package/dist/types/IntegerType.spec.js.map +1 -1
  227. package/dist/types/InterfaceType.spec.js +8 -8
  228. package/dist/types/InterfaceType.spec.js.map +1 -1
  229. package/dist/types/InvalidType.spec.js +3 -3
  230. package/dist/types/InvalidType.spec.js.map +1 -1
  231. package/dist/types/LongIntegerType.spec.js +3 -3
  232. package/dist/types/LongIntegerType.spec.js.map +1 -1
  233. package/dist/types/ObjectType.spec.js +3 -3
  234. package/dist/types/ObjectType.spec.js.map +1 -1
  235. package/dist/types/StringType.spec.js +3 -3
  236. package/dist/types/StringType.spec.js.map +1 -1
  237. package/dist/types/VoidType.spec.js +3 -3
  238. package/dist/types/VoidType.spec.js.map +1 -1
  239. package/dist/util.d.ts +21 -43
  240. package/dist/util.js +33 -60
  241. package/dist/util.js.map +1 -1
  242. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
3
+ const chai_config_spec_1 = require("../chai-config.spec");
4
4
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
5
5
  const TokenKind_1 = require("../lexer/TokenKind");
6
6
  const Lexer_1 = require("../lexer/Lexer");
@@ -15,7 +15,7 @@ describe('parser class', () => {
15
15
  end class
16
16
  `);
17
17
  let { diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrightScript });
18
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.code).to.equal(DiagnosticMessages_1.DiagnosticMessages.bsFeatureNotSupportedInBrsFiles('').code);
18
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.code).to.equal(DiagnosticMessages_1.DiagnosticMessages.bsFeatureNotSupportedInBrsFiles('').code);
19
19
  });
20
20
  for (let keyword of TokenKind_1.AllowedProperties) {
21
21
  //skip a few of the class-specific keywords that are not allowed as field/method names
@@ -38,8 +38,8 @@ describe('parser class', () => {
38
38
  end class
39
39
  `);
40
40
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
41
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
42
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
41
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
42
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
43
43
  });
44
44
  it(`supports ${keyword} as method name`, () => {
45
45
  var _a;
@@ -51,8 +51,8 @@ describe('parser class', () => {
51
51
  end class
52
52
  `);
53
53
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
54
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
55
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
54
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
55
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
56
56
  });
57
57
  }
58
58
  for (let keyword of TokenKind_1.AllowedLocalIdentifiers) {
@@ -63,8 +63,8 @@ describe('parser class', () => {
63
63
  end class
64
64
  `);
65
65
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
66
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
67
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
66
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
67
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
68
68
  });
69
69
  }
70
70
  it('does not allow "throw" to be defined as a local var', () => {
@@ -75,7 +75,7 @@ describe('parser class', () => {
75
75
  throw = true
76
76
  end sub
77
77
  `);
78
- (0, chai_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.eql(DiagnosticMessages_1.DiagnosticMessages.unexpectedToken('=').message);
78
+ (0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.eql(DiagnosticMessages_1.DiagnosticMessages.unexpectedToken('=').message);
79
79
  });
80
80
  it('does not allow function named "throw"', () => {
81
81
  var _a;
@@ -84,7 +84,7 @@ describe('parser class', () => {
84
84
  sub throw()
85
85
  end sub
86
86
  `);
87
- (0, chai_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.eql(DiagnosticMessages_1.DiagnosticMessages.cannotUseReservedWordAsIdentifier('throw').message);
87
+ (0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.eql(DiagnosticMessages_1.DiagnosticMessages.cannotUseReservedWordAsIdentifier('throw').message);
88
88
  });
89
89
  it('supports the try/catch keywords in various places', () => {
90
90
  var _a;
@@ -130,7 +130,7 @@ describe('parser class', () => {
130
130
  ' sub throw()
131
131
  ' end sub
132
132
  `);
133
- (0, chai_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
133
+ (0, chai_config_spec_1.expect)((_a = parser.diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
134
134
  });
135
135
  it('parses empty class', () => {
136
136
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -138,8 +138,8 @@ describe('parser class', () => {
138
138
  end class
139
139
  `);
140
140
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
141
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
142
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
141
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
142
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
143
143
  });
144
144
  it('bad property does not invalidate next sibling method', () => {
145
145
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -151,8 +151,8 @@ describe('parser class', () => {
151
151
  `);
152
152
  let { statements } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
153
153
  let classStatement = statements[0];
154
- (0, chai_1.expect)(classStatement.methods[0]).to.exist;
155
- (0, chai_1.expect)(classStatement.methods[0].name.text).to.equal('new');
154
+ (0, chai_config_spec_1.expect)(classStatement.methods[0]).to.exist;
155
+ (0, chai_config_spec_1.expect)(classStatement.methods[0].name.text).to.equal('new');
156
156
  });
157
157
  it('catches class without name', () => {
158
158
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -160,17 +160,17 @@ describe('parser class', () => {
160
160
  end class
161
161
  `);
162
162
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
163
- (0, chai_1.expect)(diagnostics).length.to.be.greaterThan(0);
164
- (0, chai_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('class').code);
165
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
163
+ (0, chai_config_spec_1.expect)(diagnostics).length.to.be.greaterThan(0);
164
+ (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('class').code);
165
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
166
166
  });
167
167
  it('catches malformed class', () => {
168
168
  let { tokens } = Lexer_1.Lexer.scan(`
169
169
  class Person
170
170
  `);
171
171
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
172
- (0, chai_1.expect)(diagnostics).length.to.be.greaterThan(0);
173
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
172
+ (0, chai_config_spec_1.expect)(diagnostics).length.to.be.greaterThan(0);
173
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
174
174
  });
175
175
  describe('fields', () => {
176
176
  it('identifies perfect syntax', () => {
@@ -180,13 +180,13 @@ describe('parser class', () => {
180
180
  end class
181
181
  `);
182
182
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
183
- (0, chai_1.expect)(diagnostics).to.be.empty;
184
- (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
183
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.empty;
184
+ (0, chai_config_spec_1.expect)(statements[0]).instanceof(Statement_1.ClassStatement);
185
185
  let field = statements[0].body[0];
186
- (0, chai_1.expect)(field.accessModifier.kind).to.equal(TokenKind_1.TokenKind.Public);
187
- (0, chai_1.expect)(field.name.text).to.equal('firstName');
188
- (0, chai_1.expect)(field.as.text).to.equal('as');
189
- (0, chai_1.expect)(field.type.text).to.equal('string');
186
+ (0, chai_config_spec_1.expect)(field.accessModifier.kind).to.equal(TokenKind_1.TokenKind.Public);
187
+ (0, chai_config_spec_1.expect)(field.name.text).to.equal('firstName');
188
+ (0, chai_config_spec_1.expect)(field.as.text).to.equal('as');
189
+ (0, chai_config_spec_1.expect)(field.type.text).to.equal('string');
190
190
  });
191
191
  it('can be solely an identifier', () => {
192
192
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -195,9 +195,9 @@ describe('parser class', () => {
195
195
  end class
196
196
  `);
197
197
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
198
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
198
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
199
199
  let cls = statements[0];
200
- (0, chai_1.expect)(cls.fields[0].name.text).to.equal('firstName');
200
+ (0, chai_config_spec_1.expect)(cls.fields[0].name.text).to.equal('firstName');
201
201
  });
202
202
  it('malformed field does not impact leading and trailing fields', () => {
203
203
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -209,8 +209,8 @@ describe('parser class', () => {
209
209
  `);
210
210
  let { statements } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
211
211
  let cls = statements[0];
212
- (0, chai_1.expect)(cls.fields[0].name.text).to.equal('firstName');
213
- (0, chai_1.expect)(cls.fields[cls.fields.length - 1].name.text).to.equal('lastName');
212
+ (0, chai_config_spec_1.expect)(cls.fields[0].name.text).to.equal('firstName');
213
+ (0, chai_config_spec_1.expect)(cls.fields[cls.fields.length - 1].name.text).to.equal('lastName');
214
214
  });
215
215
  it(`detects missing type after 'as' keyword`, () => {
216
216
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -219,10 +219,10 @@ describe('parser class', () => {
219
219
  end class
220
220
  `);
221
221
  let { diagnostics, statements } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
222
- (0, chai_1.expect)(diagnostics.length).to.be.greaterThan(0);
222
+ (0, chai_config_spec_1.expect)(diagnostics.length).to.be.greaterThan(0);
223
223
  let cls = statements[0];
224
- (0, chai_1.expect)(cls.fields[0].name.text).to.equal('middleName');
225
- (0, chai_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('as').code);
224
+ (0, chai_config_spec_1.expect)(cls.fields[0].name.text).to.equal('middleName');
225
+ (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('as').code);
226
226
  });
227
227
  it('field access modifier defaults to undefined when omitted', () => {
228
228
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -231,9 +231,9 @@ describe('parser class', () => {
231
231
  end class
232
232
  `);
233
233
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
234
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
234
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
235
235
  let cls = statements[0];
236
- (0, chai_1.expect)(cls.fields[0].accessModifier).to.be.undefined;
236
+ (0, chai_config_spec_1.expect)(cls.fields[0].accessModifier).to.be.undefined;
237
237
  });
238
238
  });
239
239
  describe('methods', () => {
@@ -246,13 +246,13 @@ describe('parser class', () => {
246
246
  end class
247
247
  `);
248
248
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
249
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
249
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
250
250
  let theClass = statements[0];
251
- (0, chai_1.expect)(theClass).to.be.instanceof(Statement_1.ClassStatement);
251
+ (0, chai_config_spec_1.expect)(theClass).to.be.instanceof(Statement_1.ClassStatement);
252
252
  let method = theClass.methods[0];
253
- (0, chai_1.expect)(method.name.text).to.equal('getName');
254
- (0, chai_1.expect)(method.accessModifier.text).to.equal('public');
255
- (0, chai_1.expect)(method.func).to.exist;
253
+ (0, chai_config_spec_1.expect)(method.name.text).to.equal('getName');
254
+ (0, chai_config_spec_1.expect)(method.accessModifier.text).to.equal('public');
255
+ (0, chai_config_spec_1.expect)(method.func).to.exist;
256
256
  });
257
257
  it('supports omitting method return type', () => {
258
258
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -263,11 +263,11 @@ describe('parser class', () => {
263
263
  end class
264
264
  `);
265
265
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
266
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
266
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
267
267
  let theClass = statements[0];
268
268
  let method = theClass.methods[0];
269
- (0, chai_1.expect)(method.accessModifier.text).to.equal('public');
270
- (0, chai_1.expect)(method.func).to.exist;
269
+ (0, chai_config_spec_1.expect)(method.accessModifier.text).to.equal('public');
270
+ (0, chai_config_spec_1.expect)(method.func).to.exist;
271
271
  });
272
272
  it('method access modifier is undefined when omitted', () => {
273
273
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -278,9 +278,9 @@ describe('parser class', () => {
278
278
  end class
279
279
  `);
280
280
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
281
- (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
281
+ (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
282
282
  let cls = statements[0];
283
- (0, chai_1.expect)(cls.methods[0].accessModifier).to.be.undefined;
283
+ (0, chai_config_spec_1.expect)(cls.methods[0].accessModifier).to.be.undefined;
284
284
  });
285
285
  it('supports primitive field initializers', () => {
286
286
  var _a;
@@ -295,12 +295,12 @@ describe('parser class', () => {
295
295
  end class
296
296
  `);
297
297
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
298
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
298
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
299
299
  let cls = statements[0];
300
- (0, chai_1.expect)(cls.memberMap['name'].initialValue).to.exist;
301
- (0, chai_1.expect)(cls.memberMap['age'].initialValue).to.exist;
302
- (0, chai_1.expect)(cls.memberMap['isalive'].initialValue).to.exist;
303
- (0, chai_1.expect)(cls.memberMap['callback'].initialValue).to.exist;
300
+ (0, chai_config_spec_1.expect)(cls.memberMap['name'].initialValue).to.exist;
301
+ (0, chai_config_spec_1.expect)(cls.memberMap['age'].initialValue).to.exist;
302
+ (0, chai_config_spec_1.expect)(cls.memberMap['isalive'].initialValue).to.exist;
303
+ (0, chai_config_spec_1.expect)(cls.memberMap['callback'].initialValue).to.exist;
304
304
  });
305
305
  it('detects missing function keyword', () => {
306
306
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -311,8 +311,8 @@ describe('parser class', () => {
311
311
  end class
312
312
  `);
313
313
  let { diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
314
- (0, chai_1.expect)(diagnostics).to.have.lengthOf(1);
315
- (0, chai_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.missingCallableKeyword().code);
314
+ (0, chai_config_spec_1.expect)(diagnostics).to.have.lengthOf(1);
315
+ (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.missingCallableKeyword().code);
316
316
  });
317
317
  });
318
318
  it('supports comments in various locations', () => {
@@ -327,7 +327,7 @@ describe('parser class', () => {
327
327
  'comment
328
328
  end class 'comment
329
329
  `, { mode: Parser_1.ParseMode.BrighterScript });
330
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
330
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
331
331
  });
332
332
  it('recognizes the "extends" keyword', () => {
333
333
  var _a;
@@ -342,10 +342,10 @@ describe('parser class', () => {
342
342
  end class
343
343
  `);
344
344
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
345
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
345
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
346
346
  let stmt = statements[1];
347
- (0, chai_1.expect)(stmt.extendsKeyword.text).to.equal('extends');
348
- (0, chai_1.expect)(stmt.parentClassName.getName(Parser_1.ParseMode.BrighterScript)).to.equal('Person');
347
+ (0, chai_config_spec_1.expect)(stmt.extendsKeyword.text).to.equal('extends');
348
+ (0, chai_config_spec_1.expect)(stmt.parentClassName.getName(Parser_1.ParseMode.BrighterScript)).to.equal('Person');
349
349
  });
350
350
  it('catches missing identifier after "extends" keyword', () => {
351
351
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -359,7 +359,7 @@ describe('parser class', () => {
359
359
  end class
360
360
  `);
361
361
  let { diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
362
- (0, chai_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('extends').code);
362
+ (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('extends').code);
363
363
  });
364
364
  describe('new keyword', () => {
365
365
  it('parses properly', () => {
@@ -371,10 +371,10 @@ describe('parser class', () => {
371
371
  class Animal
372
372
  end class
373
373
  `, { mode: Parser_1.ParseMode.BrighterScript });
374
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
374
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
375
375
  let body = statements[0].func.body;
376
376
  let stmt = body.statements[0];
377
- (0, chai_1.expect)(stmt.value).to.be.instanceof(Expression_1.NewExpression);
377
+ (0, chai_config_spec_1.expect)(stmt.value).to.be.instanceof(Expression_1.NewExpression);
378
378
  });
379
379
  it('is allowed to be used as a local variable in brs files', () => {
380
380
  var _a;
@@ -384,7 +384,7 @@ describe('parser class', () => {
384
384
  old = new
385
385
  end sub
386
386
  `, { mode: Parser_1.ParseMode.BrightScript });
387
- (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
387
+ (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
388
388
  });
389
389
  });
390
390
  });
@@ -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":";;AAAA,0DAA6C;AAC7C,8DAA2D;AAC3D,kDAA2F;AAC3F,0CAAuC;AACvC,qCAA6C;AAE7C,2CAA6C;AAC7C,6CAA6C;AAE7C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;;QACxD,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;aAGvB,CAAC,CAAC;QACP,IAAI,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAkB,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;IAGH,KAAK,IAAI,OAAO,IAAI,6BAAiB,EAAE;QACnC,sFAAsF;QAEtF,IAAI;YACA,qBAAS,CAAC,QAAQ;YAClB,qBAAS,CAAC,GAAG;YACb,qBAAS,CAAC,GAAG;YACb,qBAAS,CAAC,MAAM;YAChB,qBAAS,CAAC,SAAS;YACnB,qBAAS,CAAC,OAAO;YACjB,qBAAS,CAAC,QAAQ;SACrB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACjB,SAAS;SACZ;QACD,EAAE,CAAC,YAAY,OAAO,mBAAmB,EAAE,GAAG,EAAE;YAC5C,kBAAkB;YAClB,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;sBAElB,OAAO;;aAEhB,CAAC,CAAC;YACH,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,YAAY,OAAO,iBAAiB,EAAE,GAAG,EAAE;;YAC1C,kBAAkB;YAClB,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;yBAEf,OAAO;;;aAGnB,CAAC,CAAC;YACH,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7C,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;KACN;IAED,KAAK,IAAI,OAAO,IAAI,mCAAuB,EAAE;QACzC,EAAE,CAAC,YAAY,OAAO,gBAAgB,EAAE,GAAG,EAAE;YACzC,kBAAkB;YAClB,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;wBAChB,OAAO;;aAElB,CAAC,CAAC;YACH,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;KACN;IAED,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;;QAC3D,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;SAK3B,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,MAAA,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,uCAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;;QAC7C,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;SAI3B,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,MAAA,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,uCAAkB,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;;QACzD,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAyC3B,CAAC,CAAC;QAEH,IAAA,yBAAM,EAAC,MAAA,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;aAGvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;aAMvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9E,IAAI,cAAc,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;QACrD,IAAA,yBAAM,EAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3C,IAAA,yBAAM,EAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAClC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;aAGvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAkB,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACtG,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;aAEvB,CAAC,CAAC;QACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;iBAIvB,CAAC,CAAC;YACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAChC,IAAA,yBAAM,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;YACjD,IAAI,KAAK,GAAI,UAAU,CAAC,CAAC,CAAoB,CAAC,IAAI,CAAC,CAAC,CAAmB,CAAC;YACxE,IAAA,yBAAM,EAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAA,yBAAM,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAA,yBAAM,EAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,IAAA,yBAAM,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;iBAIvB,CAAC,CAAC;YACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC1C,IAAA,yBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACnE,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;iBAMvB,CAAC,CAAC;YACP,IAAI,EAAE,UAAU,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC9E,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC1C,IAAA,yBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtD,IAAA,yBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;iBAIvB,CAAC,CAAC;YACP,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC1C,IAAA,yBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACvD,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAkB,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAChE,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;iBAIvB,CAAC,CAAC;YACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC1C,IAAA,yBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;iBAMvB,CAAC,CAAC;YACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC/C,IAAA,yBAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,0BAAc,CAAC,CAAC;YAClD,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,IAAA,yBAAM,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAA,yBAAM,EAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAA,yBAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC5C,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;iBAMvB,CAAC,CAAC;YACP,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC/C,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,IAAA,yBAAM,EAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAA,yBAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;qBAMnB,CAAC,CAAC;YACX,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC1C,IAAA,yBAAM,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;;YAC7C,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;;;aAS3B,CAAC,CAAC;YACH,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3F,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;YAC7C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAmB,CAAC;YAC1C,IAAA,yBAAM,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAoB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACxE,IAAA,yBAAM,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAoB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACvE,IAAA,yBAAM,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAoB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAC3E,IAAA,yBAAM,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,CAAoB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;qBAMnB,CAAC,CAAC;YACX,IAAI,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAC/E,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxC,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAkB,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;;QAC9C,IAAI,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;;;;SASlC,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAEvC,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;;QACxC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;;;SAS3B,CAAC,CAAC;QACH,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3F,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7C,IAAI,IAAI,GAAI,UAAU,CAAC,CAAC,CAAoB,CAAC;QAC7C,IAAA,yBAAM,EAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrD,IAAA,yBAAM,EAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,IAAI,EAAE,MAAM,EAAE,GAAG,aAAK,CAAC,IAAI,CAAC;;;;;;;;;SAS3B,CAAC,CAAC;QACH,IAAI,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QAC/E,IAAA,yBAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uCAAkB,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;;YACvB,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;;aAM9C,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAEvC,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;YAC7C,IAAI,IAAI,GAAI,UAAU,CAAC,CAAC,CAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,IAAI,IAAI,GAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAyB,CAAC;YACvD,IAAA,yBAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,0BAAa,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;;YAC9D,IAAI,EAAE,WAAW,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC;;;;;aAKlC,EAAE,EAAE,IAAI,EAAE,kBAAS,CAAC,YAAY,EAAE,CAAC,CAAC;YAErC,IAAA,yBAAM,EAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -140,8 +140,8 @@ export declare class Parser {
140
140
  private flagUntil;
141
141
  /**
142
142
  * Consume tokens until one of the `stopTokenKinds` is encountered
143
- * @param tokenKinds
144
- * @return - the list of tokens consumed, EXCLUDING the `stopTokenKind` (you can use `this.peek()` to see which one it was)
143
+ * @param stopTokenKinds a list of tokenKinds where any tokenKind in this list will result in a match
144
+ * @returns - the list of tokens consumed, EXCLUDING the `stopTokenKind` (you can use `this.peek()` to see which one it was)
145
145
  */
146
146
  private consumeUntil;
147
147
  private constDeclaration;
@@ -173,6 +173,10 @@ export declare class Parser {
173
173
  * @returns an AST representation of an `label` statement.
174
174
  */
175
175
  private labelStatement;
176
+ /**
177
+ * Parses a `continue` statement
178
+ */
179
+ private continueStatement;
176
180
  /**
177
181
  * Parses a `goto` statement
178
182
  * @returns an AST representation of an `goto` statement.
@@ -234,12 +238,12 @@ export declare class Parser {
234
238
  private match;
235
239
  /**
236
240
  * Pop token if we encounter a token in the specified list
237
- * @param tokenKinds
241
+ * @param tokenKinds a list of tokenKinds where any tokenKind in this list will result in a match
238
242
  */
239
243
  private matchAny;
240
244
  /**
241
245
  * If the next series of tokens matches the given set of tokens, pop them all
242
- * @param tokenKinds
246
+ * @param tokenKinds a list of tokenKinds used to match the next set of tokens
243
247
  */
244
248
  private matchSequence;
245
249
  /**
@@ -723,6 +723,9 @@ class Parser {
723
723
  if (this.check(TokenKind_1.TokenKind.Goto)) {
724
724
  return this.gotoStatement();
725
725
  }
726
+ if (this.check(TokenKind_1.TokenKind.Continue)) {
727
+ return this.continueStatement();
728
+ }
726
729
  //does this line look like a label? (i.e. `someIdentifier:` )
727
730
  if (this.check(TokenKind_1.TokenKind.Identifier) && this.checkNext(TokenKind_1.TokenKind.Colon) && this.checkPrevious(TokenKind_1.TokenKind.Newline)) {
728
731
  try {
@@ -862,9 +865,6 @@ class Parser {
862
865
  namespaceStatement() {
863
866
  this.warnIfNotBrighterScriptMode('namespace');
864
867
  let keyword = this.advance();
865
- if (!this.isAtRootLevel()) {
866
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtRootLevel('namespace')), { range: keyword.range }));
867
- }
868
868
  this.namespaceAndFunctionDepth++;
869
869
  let name = this.getNamespacedVariableNameExpression();
870
870
  //set the current namespace name
@@ -927,8 +927,8 @@ class Parser {
927
927
  }
928
928
  /**
929
929
  * Consume tokens until one of the `stopTokenKinds` is encountered
930
- * @param tokenKinds
931
- * @return - the list of tokens consumed, EXCLUDING the `stopTokenKind` (you can use `this.peek()` to see which one it was)
930
+ * @param stopTokenKinds a list of tokenKinds where any tokenKind in this list will result in a match
931
+ * @returns - the list of tokens consumed, EXCLUDING the `stopTokenKind` (you can use `this.peek()` to see which one it was)
932
932
  */
933
933
  consumeUntil(...stopTokenKinds) {
934
934
  let result = [];
@@ -1452,6 +1452,15 @@ class Parser {
1452
1452
  }
1453
1453
  return new Statement_1.LabelStatement(tokens);
1454
1454
  }
1455
+ /**
1456
+ * Parses a `continue` statement
1457
+ */
1458
+ continueStatement() {
1459
+ return new Statement_1.ContinueStatement({
1460
+ continue: this.advance(),
1461
+ loopType: this.tryConsume(DiagnosticMessages_1.DiagnosticMessages.expectedToken(TokenKind_1.TokenKind.While, TokenKind_1.TokenKind.For), TokenKind_1.TokenKind.While, TokenKind_1.TokenKind.For)
1462
+ });
1463
+ }
1455
1464
  /**
1456
1465
  * Parses a `goto` statement
1457
1466
  * @returns an AST representation of an `goto` statement.
@@ -1981,7 +1990,7 @@ class Parser {
1981
1990
  }
1982
1991
  /**
1983
1992
  * Pop token if we encounter a token in the specified list
1984
- * @param tokenKinds
1993
+ * @param tokenKinds a list of tokenKinds where any tokenKind in this list will result in a match
1985
1994
  */
1986
1995
  matchAny(...tokenKinds) {
1987
1996
  for (let tokenKind of tokenKinds) {
@@ -1994,7 +2003,7 @@ class Parser {
1994
2003
  }
1995
2004
  /**
1996
2005
  * If the next series of tokens matches the given set of tokens, pop them all
1997
- * @param tokenKinds
2006
+ * @param tokenKinds a list of tokenKinds used to match the next set of tokens
1998
2007
  */
1999
2008
  matchSequence(...tokenKinds) {
2000
2009
  var _a;