brighterscript 1.0.0-alpha.10 → 1.0.0-alpha.14

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 (299) hide show
  1. package/CHANGELOG.md +247 -267
  2. package/README.md +2 -2
  3. package/dist/Cache.d.ts +3 -3
  4. package/dist/Cache.js +10 -6
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CodeActionUtil.js.map +1 -1
  7. package/dist/CommentFlagProcessor.d.ts +4 -4
  8. package/dist/CommentFlagProcessor.js +5 -3
  9. package/dist/CommentFlagProcessor.js.map +1 -1
  10. package/dist/DependencyGraph.js.map +1 -1
  11. package/dist/DiagnosticFilterer.js +1 -1
  12. package/dist/DiagnosticFilterer.js.map +1 -1
  13. package/dist/LanguageServer.d.ts +1 -6
  14. package/dist/LanguageServer.js +5 -14
  15. package/dist/LanguageServer.js.map +1 -1
  16. package/dist/Logger.js.map +1 -1
  17. package/dist/PluginInterface.d.ts +3 -3
  18. package/dist/PluginInterface.js +3 -0
  19. package/dist/PluginInterface.js.map +1 -1
  20. package/dist/Program.d.ts +35 -20
  21. package/dist/Program.js +132 -67
  22. package/dist/Program.js.map +1 -1
  23. package/dist/ProgramBuilder.js +4 -4
  24. package/dist/ProgramBuilder.js.map +1 -1
  25. package/dist/Scope.d.ts +22 -13
  26. package/dist/Scope.js +85 -70
  27. package/dist/Scope.js.map +1 -1
  28. package/dist/SymbolTable.d.ts +1 -1
  29. package/dist/SymbolTable.js +2 -2
  30. package/dist/SymbolTable.js.map +1 -1
  31. package/dist/XmlScope.d.ts +2 -2
  32. package/dist/XmlScope.js +5 -5
  33. package/dist/XmlScope.js.map +1 -1
  34. package/dist/astUtils/AstEditor.d.ts +27 -0
  35. package/dist/astUtils/AstEditor.js +97 -0
  36. package/dist/astUtils/AstEditor.js.map +1 -0
  37. package/dist/{bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts → astUtils/AstEditor.spec.d.ts} +0 -0
  38. package/dist/astUtils/AstEditor.spec.js +133 -0
  39. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  40. package/dist/astUtils/creators.spec.js +4 -4
  41. package/dist/astUtils/creators.spec.js.map +1 -1
  42. package/dist/astUtils/reflection.d.ts +4 -2
  43. package/dist/astUtils/reflection.js +10 -1
  44. package/dist/astUtils/reflection.js.map +1 -1
  45. package/dist/astUtils/reflection.spec.js +116 -116
  46. package/dist/astUtils/reflection.spec.js.map +1 -1
  47. package/dist/astUtils/stackedVisitor.js.map +1 -1
  48. package/dist/astUtils/stackedVisitor.spec.js +13 -13
  49. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  50. package/dist/astUtils/visitors.js +1 -1
  51. package/dist/astUtils/visitors.js.map +1 -1
  52. package/dist/astUtils/visitors.spec.js +26 -26
  53. package/dist/astUtils/visitors.spec.js.map +1 -1
  54. package/dist/astUtils/xml.d.ts +1 -0
  55. package/dist/astUtils/xml.js +6 -1
  56. package/dist/astUtils/xml.js.map +1 -1
  57. package/dist/bscPlugin/BscPlugin.js +5 -2
  58. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  59. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +3 -3
  60. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  61. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +17 -17
  62. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  63. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +8 -0
  64. package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.js → BrsFileSemanticTokensProcessor.js} +13 -15
  65. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  66. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  67. package/dist/bscPlugin/semanticTokens/{SemanticTokensProcessor.spec.js → BrsFileSemanticTokensProcessor.spec.js} +5 -5
  68. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  69. package/dist/diagnosticUtils.d.ts +1 -0
  70. package/dist/diagnosticUtils.js +14 -7
  71. package/dist/diagnosticUtils.js.map +1 -1
  72. package/dist/examples/plugins/removePrint.js +2 -2
  73. package/dist/examples/plugins/removePrint.js.map +1 -1
  74. package/dist/files/BrsFile.Class.spec.js +444 -269
  75. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  76. package/dist/files/BrsFile.d.ts +17 -11
  77. package/dist/files/BrsFile.js +220 -153
  78. package/dist/files/BrsFile.js.map +1 -1
  79. package/dist/files/BrsFile.spec.js +620 -272
  80. package/dist/files/BrsFile.spec.js.map +1 -1
  81. package/dist/files/XmlFile.d.ts +6 -5
  82. package/dist/files/XmlFile.js +14 -9
  83. package/dist/files/XmlFile.js.map +1 -1
  84. package/dist/files/XmlFile.spec.js +238 -191
  85. package/dist/files/XmlFile.spec.js.map +1 -1
  86. package/dist/files/tests/imports.spec.js +29 -27
  87. package/dist/files/tests/imports.spec.js.map +1 -1
  88. package/dist/globalCallables.d.ts +3 -1
  89. package/dist/globalCallables.js +198 -99
  90. package/dist/globalCallables.js.map +1 -1
  91. package/dist/index.d.ts +12 -3
  92. package/dist/index.js +22 -4
  93. package/dist/index.js.map +1 -1
  94. package/dist/interfaces.d.ts +71 -10
  95. package/dist/lexer/Lexer.d.ts +5 -1
  96. package/dist/lexer/Lexer.js +52 -35
  97. package/dist/lexer/Lexer.js.map +1 -1
  98. package/dist/lexer/Lexer.spec.js +564 -534
  99. package/dist/lexer/Lexer.spec.js.map +1 -1
  100. package/dist/lexer/TokenKind.d.ts +4 -0
  101. package/dist/lexer/TokenKind.js +44 -1
  102. package/dist/lexer/TokenKind.js.map +1 -1
  103. package/dist/parser/Expression.d.ts +1 -1
  104. package/dist/parser/Expression.js +66 -66
  105. package/dist/parser/Expression.js.map +1 -1
  106. package/dist/parser/Parser.Class.spec.js +107 -106
  107. package/dist/parser/Parser.Class.spec.js.map +1 -1
  108. package/dist/parser/Parser.d.ts +17 -5
  109. package/dist/parser/Parser.js +431 -315
  110. package/dist/parser/Parser.js.map +1 -1
  111. package/dist/parser/Parser.spec.js +418 -296
  112. package/dist/parser/Parser.spec.js.map +1 -1
  113. package/dist/parser/SGParser.js +2 -2
  114. package/dist/parser/SGParser.js.map +1 -1
  115. package/dist/parser/SGParser.spec.js +22 -22
  116. package/dist/parser/SGParser.spec.js.map +1 -1
  117. package/dist/parser/SGTypes.d.ts +3 -0
  118. package/dist/parser/SGTypes.js +12 -7
  119. package/dist/parser/SGTypes.js.map +1 -1
  120. package/dist/parser/SGTypes.spec.js +84 -84
  121. package/dist/parser/SGTypes.spec.js.map +1 -1
  122. package/dist/parser/Statement.d.ts +3 -3
  123. package/dist/parser/Statement.js +61 -61
  124. package/dist/parser/Statement.js.map +1 -1
  125. package/dist/parser/Statement.spec.js +10 -10
  126. package/dist/parser/Statement.spec.js.map +1 -1
  127. package/dist/parser/tests/Parser.spec.d.ts +3 -3
  128. package/dist/parser/tests/Parser.spec.js +4 -4
  129. package/dist/parser/tests/Parser.spec.js.map +1 -1
  130. package/dist/parser/tests/controlFlow/For.spec.js +58 -58
  131. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  132. package/dist/parser/tests/controlFlow/ForEach.spec.js +40 -39
  133. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  134. package/dist/parser/tests/controlFlow/If.spec.js +201 -200
  135. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  136. package/dist/parser/tests/controlFlow/While.spec.js +37 -37
  137. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  138. package/dist/parser/tests/expression/Additive.spec.js +30 -30
  139. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  140. package/dist/parser/tests/expression/ArrayLiterals.spec.js +119 -119
  141. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  142. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +141 -141
  143. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  144. package/dist/parser/tests/expression/Boolean.spec.js +24 -24
  145. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  146. package/dist/parser/tests/expression/Call.spec.js +41 -40
  147. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  148. package/dist/parser/tests/expression/Exponential.spec.js +17 -17
  149. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  150. package/dist/parser/tests/expression/Function.spec.js +256 -256
  151. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  152. package/dist/parser/tests/expression/Indexing.spec.js +87 -87
  153. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  154. package/dist/parser/tests/expression/Multiplicative.spec.js +37 -37
  155. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  156. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +74 -62
  157. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  158. package/dist/parser/tests/expression/PrefixUnary.spec.js +41 -41
  159. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  160. package/dist/parser/tests/expression/Primary.spec.js +41 -41
  161. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  162. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +110 -2
  163. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  164. package/dist/parser/tests/expression/Relational.spec.js +43 -43
  165. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  166. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +6 -6
  167. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  168. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +18 -18
  169. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  170. package/dist/parser/tests/expression/TernaryExpression.spec.js +100 -100
  171. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  172. package/dist/parser/tests/statement/AssignmentOperators.spec.js +36 -36
  173. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  174. package/dist/parser/tests/statement/Declaration.spec.js +44 -44
  175. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  176. package/dist/parser/tests/statement/Dim.spec.js +21 -21
  177. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  178. package/dist/parser/tests/statement/Function.spec.js +198 -197
  179. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  180. package/dist/parser/tests/statement/Goto.spec.js +15 -14
  181. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  182. package/dist/parser/tests/statement/Increment.spec.js +50 -50
  183. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  184. package/dist/parser/tests/statement/InterfaceStatement.spec.js +14 -2
  185. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  186. package/dist/parser/tests/statement/LibraryStatement.spec.js +17 -17
  187. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  188. package/dist/parser/tests/statement/Misc.spec.js +91 -90
  189. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  190. package/dist/parser/tests/statement/PrintStatement.spec.js +34 -34
  191. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  192. package/dist/parser/tests/statement/ReturnStatement.spec.js +46 -46
  193. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  194. package/dist/parser/tests/statement/Set.spec.js +83 -83
  195. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  196. package/dist/parser/tests/statement/Stop.spec.js +12 -11
  197. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  198. package/dist/parser/tests/statement/Throw.spec.js +5 -5
  199. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  200. package/dist/parser/tests/statement/TryCatch.spec.js +13 -13
  201. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  202. package/dist/preprocessor/Chunk.d.ts +1 -1
  203. package/dist/preprocessor/Chunk.js.map +1 -1
  204. package/dist/preprocessor/Manifest.d.ts +1 -1
  205. package/dist/preprocessor/Preprocessor.d.ts +1 -1
  206. package/dist/preprocessor/Preprocessor.js +8 -8
  207. package/dist/preprocessor/Preprocessor.js.map +1 -1
  208. package/dist/preprocessor/Preprocessor.spec.js +49 -49
  209. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  210. package/dist/preprocessor/PreprocessorParser.spec.js +72 -72
  211. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  212. package/dist/types/ArrayType.d.ts +8 -5
  213. package/dist/types/ArrayType.js +48 -12
  214. package/dist/types/ArrayType.js.map +1 -1
  215. package/dist/types/ArrayType.spec.js +69 -10
  216. package/dist/types/ArrayType.spec.js.map +1 -1
  217. package/dist/types/BooleanType.js +3 -3
  218. package/dist/types/BooleanType.js.map +1 -1
  219. package/dist/types/BooleanType.spec.js +2 -2
  220. package/dist/types/BooleanType.spec.js.map +1 -1
  221. package/dist/types/BscType.d.ts +1 -1
  222. package/dist/types/BscType.js +1 -1
  223. package/dist/types/BscType.js.map +1 -1
  224. package/dist/types/CustomType.d.ts +1 -1
  225. package/dist/types/CustomType.js +6 -4
  226. package/dist/types/CustomType.js.map +1 -1
  227. package/dist/types/DoubleType.js +7 -7
  228. package/dist/types/DoubleType.js.map +1 -1
  229. package/dist/types/DoubleType.spec.js +2 -2
  230. package/dist/types/DoubleType.spec.js.map +1 -1
  231. package/dist/types/DynamicType.js +1 -1
  232. package/dist/types/DynamicType.js.map +1 -1
  233. package/dist/types/DynamicType.spec.js +2 -2
  234. package/dist/types/DynamicType.spec.js.map +1 -1
  235. package/dist/types/FloatType.js +7 -7
  236. package/dist/types/FloatType.js.map +1 -1
  237. package/dist/types/FloatType.spec.js +2 -2
  238. package/dist/types/FloatType.spec.js.map +1 -1
  239. package/dist/types/FunctionType.d.ts +5 -5
  240. package/dist/types/FunctionType.js +13 -13
  241. package/dist/types/FunctionType.js.map +1 -1
  242. package/dist/types/FunctionType.spec.js +7 -7
  243. package/dist/types/FunctionType.spec.js.map +1 -1
  244. package/dist/types/IntegerType.js +7 -7
  245. package/dist/types/IntegerType.js.map +1 -1
  246. package/dist/types/IntegerType.spec.js +2 -2
  247. package/dist/types/IntegerType.spec.js.map +1 -1
  248. package/dist/types/InterfaceType.js +3 -3
  249. package/dist/types/InterfaceType.js.map +1 -1
  250. package/dist/types/InterfaceType.spec.js +7 -7
  251. package/dist/types/InterfaceType.spec.js.map +1 -1
  252. package/dist/types/InvalidType.js +4 -4
  253. package/dist/types/InvalidType.js.map +1 -1
  254. package/dist/types/InvalidType.spec.js +2 -2
  255. package/dist/types/InvalidType.spec.js.map +1 -1
  256. package/dist/types/LazyType.d.ts +1 -2
  257. package/dist/types/LazyType.js +1 -5
  258. package/dist/types/LazyType.js.map +1 -1
  259. package/dist/types/LongIntegerType.js +8 -8
  260. package/dist/types/LongIntegerType.js.map +1 -1
  261. package/dist/types/LongIntegerType.spec.js +2 -2
  262. package/dist/types/LongIntegerType.spec.js.map +1 -1
  263. package/dist/types/ObjectType.js +3 -3
  264. package/dist/types/ObjectType.js.map +1 -1
  265. package/dist/types/ObjectType.spec.js +2 -2
  266. package/dist/types/ObjectType.spec.js.map +1 -1
  267. package/dist/types/StringType.js +3 -3
  268. package/dist/types/StringType.js.map +1 -1
  269. package/dist/types/StringType.spec.js +2 -2
  270. package/dist/types/StringType.spec.js.map +1 -1
  271. package/dist/types/UninitializedType.js +3 -3
  272. package/dist/types/UninitializedType.js.map +1 -1
  273. package/dist/types/VoidType.js +3 -3
  274. package/dist/types/VoidType.js.map +1 -1
  275. package/dist/types/VoidType.spec.js +2 -2
  276. package/dist/types/VoidType.spec.js.map +1 -1
  277. package/dist/types/helpers.js +6 -6
  278. package/dist/types/helpers.js.map +1 -1
  279. package/dist/util.d.ts +15 -9
  280. package/dist/util.js +104 -57
  281. package/dist/util.js.map +1 -1
  282. package/dist/validators/ClassValidator.js +40 -40
  283. package/dist/validators/ClassValidator.js.map +1 -1
  284. package/package.json +10 -9
  285. package/dist/astUtils/index.d.ts +0 -7
  286. package/dist/astUtils/index.js +0 -26
  287. package/dist/astUtils/index.js.map +0 -1
  288. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  289. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  290. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  291. package/dist/lexer/index.d.ts +0 -3
  292. package/dist/lexer/index.js +0 -17
  293. package/dist/lexer/index.js.map +0 -1
  294. package/dist/parser/index.d.ts +0 -3
  295. package/dist/parser/index.js +0 -16
  296. package/dist/parser/index.js.map +0 -1
  297. package/dist/preprocessor/index.d.ts +0 -3
  298. package/dist/preprocessor/index.js +0 -16
  299. package/dist/preprocessor/index.js.map +0 -1
@@ -3,18 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /* eslint-disable @typescript-eslint/no-for-in-array */
4
4
  const chai_1 = require("chai");
5
5
  const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
6
- const lexer_1 = require("../../../lexer");
6
+ const Lexer_1 = require("../../../lexer/Lexer");
7
7
  const Parser_1 = require("../../Parser");
8
8
  const Statement_1 = require("../../Statement");
9
9
  const Expression_1 = require("../../Expression");
10
- const __1 = require("../../..");
10
+ const Program_1 = require("../../../Program");
11
11
  const testHelpers_spec_1 = require("../../../testHelpers.spec");
12
12
  describe('NullCoalescingExpression', () => {
13
13
  it('throws exception when used in brightscript scope', () => {
14
14
  var _a;
15
- let { tokens } = lexer_1.Lexer.scan(`a = user ?? {"id": "default"}`);
15
+ let { tokens } = Lexer_1.Lexer.scan(`a = user ?? {"id": "default"}`);
16
16
  let { diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrightScript });
17
- chai_1.expect((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.code).to.equal(DiagnosticMessages_1.DiagnosticMessages.bsFeatureNotSupportedInBrsFiles('').code);
17
+ (0, chai_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.code).to.equal(DiagnosticMessages_1.DiagnosticMessages.bsFeatureNotSupportedInBrsFiles('').code);
18
18
  });
19
19
  describe('null coalescing as statements are not supported', () => {
20
20
  it(`rejects various consequents with primitive values:`, () => {
@@ -26,10 +26,10 @@ describe('NullCoalescingExpression', () => {
26
26
  'm.getResponse()',
27
27
  'm.myZombies[3].ifFed = true'
28
28
  ]) {
29
- let { tokens } = lexer_1.Lexer.scan(`${test} ?? "human"`);
29
+ let { tokens } = Lexer_1.Lexer.scan(`${test} ?? "human"`);
30
30
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
31
- chai_1.expect(diagnostics).to.not.be.empty;
32
- chai_1.expect(statements).to.be.empty;
31
+ (0, chai_1.expect)(diagnostics).to.not.be.empty;
32
+ (0, chai_1.expect)(statements).to.be.empty;
33
33
  }
34
34
  });
35
35
  });
@@ -43,10 +43,10 @@ describe('NullCoalescingExpression', () => {
43
43
  'result = m.getResponse()',
44
44
  'result = m.myZombies[3].ifFed = true'
45
45
  ]) {
46
- let { tokens } = lexer_1.Lexer.scan(`${test} ?? "human"`);
46
+ let { tokens } = Lexer_1.Lexer.scan(`${test} ?? "human"`);
47
47
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
48
- chai_1.expect(diagnostics).to.not.be.empty;
49
- chai_1.expect(statements).to.be.empty;
48
+ (0, chai_1.expect)(diagnostics).to.not.be.empty;
49
+ (0, chai_1.expect)(statements).to.be.empty;
50
50
  }
51
51
  });
52
52
  it(`supports non-primitive alternates:`, () => {
@@ -59,106 +59,106 @@ describe('NullCoalescingExpression', () => {
59
59
  'm.myZombies[3].ifFed = true',
60
60
  'getZombieName()'
61
61
  ]) {
62
- let { tokens } = lexer_1.Lexer.scan(`result = "text" ?? ${consequent}`);
62
+ let { tokens } = Lexer_1.Lexer.scan(`result = "text" ?? ${consequent}`);
63
63
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
64
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
65
- chai_1.expect(statements[0]).instanceof(Statement_1.AssignmentStatement);
66
- chai_1.expect(statements[0].value).instanceof(Expression_1.NullCoalescingExpression);
64
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
65
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.AssignmentStatement);
66
+ (0, chai_1.expect)(statements[0].value).instanceof(Expression_1.NullCoalescingExpression);
67
67
  }
68
68
  });
69
69
  });
70
70
  describe('in assignment', () => {
71
71
  it(`simple case`, () => {
72
- let { tokens } = lexer_1.Lexer.scan(`a = user ?? {"id": "default"}`);
72
+ let { tokens } = Lexer_1.Lexer.scan(`a = user ?? {"id": "default"}`);
73
73
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
74
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
75
- chai_1.expect(statements[0]).instanceof(Statement_1.AssignmentStatement);
74
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
75
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.AssignmentStatement);
76
76
  });
77
77
  it(`multi line arrays case`, () => {
78
- let { tokens } = lexer_1.Lexer.scan(`a = items ?? [
78
+ let { tokens } = Lexer_1.Lexer.scan(`a = items ?? [
79
79
  "one"
80
80
  "two"
81
81
  "three"]`);
82
82
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
83
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
84
- chai_1.expect(statements[0]).instanceof(Statement_1.AssignmentStatement);
83
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
84
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.AssignmentStatement);
85
85
  });
86
86
  it(`multi line assoc array`, () => {
87
- let { tokens } = lexer_1.Lexer.scan(`a = user ?? {
87
+ let { tokens } = Lexer_1.Lexer.scan(`a = user ?? {
88
88
  "b": "test"
89
89
  }`);
90
90
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
91
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
92
- chai_1.expect(statements[0]).instanceof(Statement_1.AssignmentStatement);
91
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
92
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.AssignmentStatement);
93
93
  });
94
94
  it(`in func call with array args`, () => {
95
- let { tokens } = lexer_1.Lexer.scan(`m.eatBrains(user ?? defaultUser)`);
95
+ let { tokens } = Lexer_1.Lexer.scan(`m.eatBrains(user ?? defaultUser)`);
96
96
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
97
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
98
- chai_1.expect(statements[0]).instanceof(Statement_1.ExpressionStatement);
99
- chai_1.expect(statements[0].expression).instanceof(Expression_1.CallExpression);
97
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
98
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ExpressionStatement);
99
+ (0, chai_1.expect)(statements[0].expression).instanceof(Expression_1.CallExpression);
100
100
  let callExpression = statements[0].expression;
101
- chai_1.expect(callExpression.args.length).to.equal(1);
102
- chai_1.expect(callExpression.args[0]).instanceof(Expression_1.NullCoalescingExpression);
101
+ (0, chai_1.expect)(callExpression.args.length).to.equal(1);
102
+ (0, chai_1.expect)(callExpression.args[0]).instanceof(Expression_1.NullCoalescingExpression);
103
103
  });
104
104
  it(`in func call with more args`, () => {
105
- let { tokens } = lexer_1.Lexer.scan(`m.eatBrains(user ?? defaultUser, true, 12)`);
105
+ let { tokens } = Lexer_1.Lexer.scan(`m.eatBrains(user ?? defaultUser, true, 12)`);
106
106
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
107
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
108
- chai_1.expect(statements[0]).instanceof(Statement_1.ExpressionStatement);
109
- chai_1.expect(statements[0].expression).instanceof(Expression_1.CallExpression);
107
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
108
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ExpressionStatement);
109
+ (0, chai_1.expect)(statements[0].expression).instanceof(Expression_1.CallExpression);
110
110
  let callExpression = statements[0].expression;
111
- chai_1.expect(callExpression.args.length).to.equal(3);
112
- chai_1.expect(callExpression.args[0]).instanceof(Expression_1.NullCoalescingExpression);
111
+ (0, chai_1.expect)(callExpression.args.length).to.equal(3);
112
+ (0, chai_1.expect)(callExpression.args[0]).instanceof(Expression_1.NullCoalescingExpression);
113
113
  });
114
114
  it(`in func call with more args, and comparing value`, () => {
115
- let { tokens } = lexer_1.Lexer.scan(`m.eatBrains((items ?? ["1","2"]).count() = 3, true, 12)`);
115
+ let { tokens } = Lexer_1.Lexer.scan(`m.eatBrains((items ?? ["1","2"]).count() = 3, true, 12)`);
116
116
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
117
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
118
- chai_1.expect(statements[0]).instanceof(Statement_1.ExpressionStatement);
119
- chai_1.expect(statements[0].expression).instanceof(Expression_1.CallExpression);
117
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
118
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ExpressionStatement);
119
+ (0, chai_1.expect)(statements[0].expression).instanceof(Expression_1.CallExpression);
120
120
  let callExpression = statements[0].expression;
121
- chai_1.expect(callExpression.args.length).to.equal(3);
121
+ (0, chai_1.expect)(callExpression.args.length).to.equal(3);
122
122
  });
123
123
  it(`in array`, () => {
124
- let { tokens } = lexer_1.Lexer.scan(`a = [letter ?? "b", "c"]`);
124
+ let { tokens } = Lexer_1.Lexer.scan(`a = [letter ?? "b", "c"]`);
125
125
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
126
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
127
- chai_1.expect(statements[0]).instanceof(Statement_1.AssignmentStatement);
128
- chai_1.expect(statements[0].value).instanceof(Expression_1.ArrayLiteralExpression);
126
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
127
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.AssignmentStatement);
128
+ (0, chai_1.expect)(statements[0].value).instanceof(Expression_1.ArrayLiteralExpression);
129
129
  let literalExpression = statements[0].value;
130
- chai_1.expect(literalExpression.elements[0]).instanceOf(Expression_1.NullCoalescingExpression);
131
- chai_1.expect(literalExpression.elements[1]).instanceOf(Expression_1.LiteralExpression);
130
+ (0, chai_1.expect)(literalExpression.elements[0]).instanceOf(Expression_1.NullCoalescingExpression);
131
+ (0, chai_1.expect)(literalExpression.elements[1]).instanceOf(Expression_1.LiteralExpression);
132
132
  });
133
133
  it(`in aa`, () => {
134
- let { tokens } = lexer_1.Lexer.scan(`a = {"v1": letter ?? "b", "v2": "c"}`);
134
+ let { tokens } = Lexer_1.Lexer.scan(`a = {"v1": letter ?? "b", "v2": "c"}`);
135
135
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
136
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
137
- chai_1.expect(statements[0]).instanceof(Statement_1.AssignmentStatement);
138
- chai_1.expect(statements[0].value).instanceof(Expression_1.AALiteralExpression);
136
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
137
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.AssignmentStatement);
138
+ (0, chai_1.expect)(statements[0].value).instanceof(Expression_1.AALiteralExpression);
139
139
  let literalExpression = statements[0].value;
140
- chai_1.expect(literalExpression.elements[0].keyToken.text).is.equal('"v1"');
141
- chai_1.expect(literalExpression.elements[0].value).instanceOf(Expression_1.NullCoalescingExpression);
142
- chai_1.expect(literalExpression.elements[1].keyToken.text).is.equal('"v2"');
143
- chai_1.expect(literalExpression.elements[1].value).instanceOf(Expression_1.LiteralExpression);
140
+ (0, chai_1.expect)(literalExpression.elements[0].keyToken.text).is.equal('"v1"');
141
+ (0, chai_1.expect)(literalExpression.elements[0].value).instanceOf(Expression_1.NullCoalescingExpression);
142
+ (0, chai_1.expect)(literalExpression.elements[1].keyToken.text).is.equal('"v2"');
143
+ (0, chai_1.expect)(literalExpression.elements[1].value).instanceOf(Expression_1.LiteralExpression);
144
144
  });
145
145
  it(`in for each`, () => {
146
- let { tokens } = lexer_1.Lexer.scan(`for each person in items ?? defaultItems
146
+ let { tokens } = Lexer_1.Lexer.scan(`for each person in items ?? defaultItems
147
147
  ? "person is " ; person
148
148
  end for
149
149
  `);
150
150
  let { statements, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
151
- testHelpers_spec_1.expectZeroDiagnostics(diagnostics);
152
- chai_1.expect(statements[0]).instanceof(Statement_1.ForEachStatement);
153
- chai_1.expect(statements[0].target).instanceof(Expression_1.NullCoalescingExpression);
151
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(diagnostics);
152
+ (0, chai_1.expect)(statements[0]).instanceof(Statement_1.ForEachStatement);
153
+ (0, chai_1.expect)(statements[0].target).instanceof(Expression_1.NullCoalescingExpression);
154
154
  });
155
155
  });
156
156
  describe('transpile', () => {
157
157
  let rootDir = process.cwd();
158
158
  let program;
159
- let testTranspile = testHelpers_spec_1.getTestTranspile(() => [program, rootDir]);
159
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
160
160
  beforeEach(() => {
161
- program = new __1.Program({ rootDir: rootDir });
161
+ program = new Program_1.Program({ rootDir: rootDir });
162
162
  });
163
163
  afterEach(() => {
164
164
  program.dispose();
@@ -184,16 +184,28 @@ describe('NullCoalescingExpression', () => {
184
184
  end function)(user)
185
185
  `);
186
186
  });
187
+ it('transpiles null coalesence assignment for variable alternate- complex consequent', () => {
188
+ testTranspile(`a = obj.link ?? fallback`, `
189
+ a = (function(fallback, obj)
190
+ __bsConsequent = obj.link
191
+ if __bsConsequent <> invalid then
192
+ return __bsConsequent
193
+ else
194
+ return fallback
195
+ end if
196
+ end function)(fallback, obj)
197
+ `);
198
+ });
187
199
  it('properly transpiles null coalesence assignments - complex alternate', () => {
188
200
  testTranspile(`a = user ?? m.defaults.getAccount(settings.name)`, `
189
- a = (function(m, settings)
201
+ a = (function(m, settings, user)
190
202
  __bsConsequent = user
191
203
  if __bsConsequent <> invalid then
192
204
  return __bsConsequent
193
205
  else
194
206
  return m.defaults.getAccount(settings.name)
195
207
  end if
196
- end function)(m, settings)
208
+ end function)(m, settings, user)
197
209
  `);
198
210
  });
199
211
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NullCoalescenceExpression.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/NullCoalescenceExpression.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NullCoalescenceExpression.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/NullCoalescenceExpression.spec.ts"],"names":[],"mappings":"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"}
@@ -2,61 +2,61 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
4
  const Parser_1 = require("../../Parser");
5
- const lexer_1 = require("../../../lexer");
5
+ const TokenKind_1 = require("../../../lexer/TokenKind");
6
6
  const Parser_spec_1 = require("../Parser.spec");
7
7
  const vscode_languageserver_1 = require("vscode-languageserver");
8
8
  describe('parser prefix unary expressions', () => {
9
9
  it('parses unary \'not\'', () => {
10
10
  let { statements, diagnostics } = Parser_1.Parser.parse([
11
- Parser_spec_1.identifier('_'),
12
- Parser_spec_1.token(lexer_1.TokenKind.Equal, '='),
13
- Parser_spec_1.token(lexer_1.TokenKind.Not, 'not'),
14
- Parser_spec_1.token(lexer_1.TokenKind.True, 'true'),
11
+ (0, Parser_spec_1.identifier)('_'),
12
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Equal, '='),
13
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Not, 'not'),
14
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'),
15
15
  Parser_spec_1.EOF
16
16
  ]);
17
- chai_1.expect(diagnostics).to.be.lengthOf(0);
18
- chai_1.expect(statements).to.be.length.greaterThan(0);
17
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
18
+ (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
19
19
  });
20
20
  it('parses consecutive unary \'not\'', () => {
21
21
  let { statements, diagnostics } = Parser_1.Parser.parse([
22
- Parser_spec_1.identifier('_'),
23
- Parser_spec_1.token(lexer_1.TokenKind.Equal, '='),
24
- Parser_spec_1.token(lexer_1.TokenKind.Not, 'not'),
25
- Parser_spec_1.token(lexer_1.TokenKind.Not, 'not'),
26
- Parser_spec_1.token(lexer_1.TokenKind.Not, 'not'),
27
- Parser_spec_1.token(lexer_1.TokenKind.Not, 'not'),
28
- Parser_spec_1.token(lexer_1.TokenKind.Not, 'not'),
29
- Parser_spec_1.token(lexer_1.TokenKind.True, 'true'),
22
+ (0, Parser_spec_1.identifier)('_'),
23
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Equal, '='),
24
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Not, 'not'),
25
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Not, 'not'),
26
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Not, 'not'),
27
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Not, 'not'),
28
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Not, 'not'),
29
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.True, 'true'),
30
30
  Parser_spec_1.EOF
31
31
  ]);
32
- chai_1.expect(diagnostics).to.be.lengthOf(0);
33
- chai_1.expect(statements).to.be.length.greaterThan(0);
32
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
33
+ (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
34
34
  });
35
35
  it('parses unary \'-\'', () => {
36
36
  let { statements, diagnostics } = Parser_1.Parser.parse([
37
- Parser_spec_1.identifier('_'),
38
- Parser_spec_1.token(lexer_1.TokenKind.Equal, '='),
39
- Parser_spec_1.token(lexer_1.TokenKind.Minus, '-'),
40
- Parser_spec_1.token(lexer_1.TokenKind.IntegerLiteral, '5'),
37
+ (0, Parser_spec_1.identifier)('_'),
38
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Equal, '='),
39
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Minus, '-'),
40
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.IntegerLiteral, '5'),
41
41
  Parser_spec_1.EOF
42
42
  ]);
43
- chai_1.expect(diagnostics).to.be.lengthOf(0);
44
- chai_1.expect(statements).to.be.length.greaterThan(0);
43
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
44
+ (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
45
45
  });
46
46
  it('parses consecutive unary \'-\'', () => {
47
47
  let { statements, diagnostics } = Parser_1.Parser.parse([
48
- Parser_spec_1.identifier('_'),
49
- Parser_spec_1.token(lexer_1.TokenKind.Equal, '='),
50
- Parser_spec_1.token(lexer_1.TokenKind.Minus, '-'),
51
- Parser_spec_1.token(lexer_1.TokenKind.Minus, '-'),
52
- Parser_spec_1.token(lexer_1.TokenKind.Minus, '-'),
53
- Parser_spec_1.token(lexer_1.TokenKind.Minus, '-'),
54
- Parser_spec_1.token(lexer_1.TokenKind.Minus, '-'),
55
- Parser_spec_1.token(lexer_1.TokenKind.IntegerLiteral, '5'),
48
+ (0, Parser_spec_1.identifier)('_'),
49
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Equal, '='),
50
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Minus, '-'),
51
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Minus, '-'),
52
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Minus, '-'),
53
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Minus, '-'),
54
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Minus, '-'),
55
+ (0, Parser_spec_1.token)(TokenKind_1.TokenKind.IntegerLiteral, '5'),
56
56
  Parser_spec_1.EOF
57
57
  ]);
58
- chai_1.expect(diagnostics).to.be.lengthOf(0);
59
- chai_1.expect(statements).to.be.length.greaterThan(0);
58
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
59
+ (0, chai_1.expect)(statements).to.be.length.greaterThan(0);
60
60
  });
61
61
  it('location tracking', () => {
62
62
  /**
@@ -67,39 +67,39 @@ describe('parser prefix unary expressions', () => {
67
67
  */
68
68
  let { statements, diagnostics } = Parser_1.Parser.parse([
69
69
  {
70
- kind: lexer_1.TokenKind.Identifier,
70
+ kind: TokenKind_1.TokenKind.Identifier,
71
71
  text: '_false',
72
72
  isReserved: false,
73
73
  range: vscode_languageserver_1.Range.create(0, 0, 0, 6)
74
74
  },
75
75
  {
76
- kind: lexer_1.TokenKind.Equal,
76
+ kind: TokenKind_1.TokenKind.Equal,
77
77
  text: '=',
78
78
  isReserved: false,
79
79
  range: vscode_languageserver_1.Range.create(0, 7, 0, 8)
80
80
  },
81
81
  {
82
- kind: lexer_1.TokenKind.Not,
82
+ kind: TokenKind_1.TokenKind.Not,
83
83
  text: 'not',
84
84
  isReserved: true,
85
85
  range: vscode_languageserver_1.Range.create(0, 9, 0, 12)
86
86
  },
87
87
  {
88
- kind: lexer_1.TokenKind.True,
88
+ kind: TokenKind_1.TokenKind.True,
89
89
  text: 'true',
90
90
  isReserved: true,
91
91
  range: vscode_languageserver_1.Range.create(0, 13, 0, 17)
92
92
  },
93
93
  {
94
- kind: lexer_1.TokenKind.Eof,
94
+ kind: TokenKind_1.TokenKind.Eof,
95
95
  text: '\0',
96
96
  isReserved: false,
97
97
  range: vscode_languageserver_1.Range.create(0, 17, 0, 18)
98
98
  }
99
99
  ]);
100
- chai_1.expect(diagnostics).to.be.lengthOf(0);
101
- chai_1.expect(statements).to.be.lengthOf(1);
102
- chai_1.expect(statements[0].value.range).to.deep.include(vscode_languageserver_1.Range.create(0, 9, 0, 17));
100
+ (0, chai_1.expect)(diagnostics).to.be.lengthOf(0);
101
+ (0, chai_1.expect)(statements).to.be.lengthOf(1);
102
+ (0, chai_1.expect)(statements[0].value.range).to.deep.include(vscode_languageserver_1.Range.create(0, 9, 0, 17));
103
103
  });
104
104
  });
105
105
  //# sourceMappingURL=PrefixUnary.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrefixUnary.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/PrefixUnary.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrefixUnary.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/expression/PrefixUnary.spec.ts"],"names":[],"mappings":"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"}