brighterscript 0.72.0 → 0.72.2

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 (335) hide show
  1. package/bsconfig.schema.json +62 -0
  2. package/dist/BsConfig.d.ts +56 -1
  3. package/dist/CommentFlagProcessor.d.ts +16 -12
  4. package/dist/CommentFlagProcessor.js +141 -59
  5. package/dist/CommentFlagProcessor.js.map +1 -1
  6. package/dist/DiagnosticMessages.d.ts +27 -1
  7. package/dist/DiagnosticMessages.js +32 -2
  8. package/dist/DiagnosticMessages.js.map +1 -1
  9. package/dist/Program.d.ts +4 -0
  10. package/dist/Program.js +2 -0
  11. package/dist/Program.js.map +1 -1
  12. package/dist/ProgramBuilder.d.ts +1 -8
  13. package/dist/ProgramBuilder.js +31 -11
  14. package/dist/ProgramBuilder.js.map +1 -1
  15. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +38 -0
  16. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +257 -14
  17. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  18. package/dist/bscPlugin/validation/BrsFileValidator.js +13 -0
  19. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  20. package/dist/cli.js +13 -0
  21. package/dist/cli.js.map +1 -1
  22. package/dist/diagnosticUtils.d.ts +51 -1
  23. package/dist/diagnosticUtils.js +222 -1
  24. package/dist/diagnosticUtils.js.map +1 -1
  25. package/dist/files/BrsFile.js +4 -2
  26. package/dist/files/BrsFile.js.map +1 -1
  27. package/dist/files/XmlFile.js +2 -1
  28. package/dist/files/XmlFile.js.map +1 -1
  29. package/dist/interfaces.d.ts +15 -1
  30. package/dist/lexer/TokenKind.d.ts +8 -0
  31. package/dist/lexer/TokenKind.js +21 -1
  32. package/dist/lexer/TokenKind.js.map +1 -1
  33. package/dist/lsp/LspProject.d.ts +19 -0
  34. package/dist/lsp/Project.d.ts +14 -0
  35. package/dist/lsp/Project.js +9 -1
  36. package/dist/lsp/Project.js.map +1 -1
  37. package/dist/lsp/ProjectManager.js +15 -1
  38. package/dist/lsp/ProjectManager.js.map +1 -1
  39. package/dist/lsp/worker/WorkerThreadProject.d.ts +14 -0
  40. package/dist/lsp/worker/WorkerThreadProject.js +7 -0
  41. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  42. package/dist/parser/Parser.d.ts +13 -1
  43. package/dist/parser/Parser.js +40 -14
  44. package/dist/parser/Parser.js.map +1 -1
  45. package/dist/util.js +20 -9
  46. package/dist/util.js.map +1 -1
  47. package/package.json +17 -14
  48. package/dist/astUtils/AstEditor.spec.d.ts +0 -1
  49. package/dist/astUtils/AstEditor.spec.js +0 -254
  50. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  51. package/dist/astUtils/creators.spec.d.ts +0 -1
  52. package/dist/astUtils/creators.spec.js +0 -21
  53. package/dist/astUtils/creators.spec.js.map +0 -1
  54. package/dist/astUtils/reflection.spec.d.ts +0 -1
  55. package/dist/astUtils/reflection.spec.js +0 -308
  56. package/dist/astUtils/reflection.spec.js.map +0 -1
  57. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  58. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  59. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  60. package/dist/astUtils/visitors.spec.d.ts +0 -1
  61. package/dist/astUtils/visitors.spec.js +0 -1197
  62. package/dist/astUtils/visitors.spec.js.map +0 -1
  63. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  64. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -887
  65. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  66. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +0 -1
  67. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +0 -171
  68. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +0 -1
  69. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +0 -1
  70. package/dist/bscPlugin/hover/HoverProcessor.spec.js +0 -201
  71. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +0 -1
  72. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +0 -1
  73. package/dist/bscPlugin/references/ReferencesProvider.spec.js +0 -51
  74. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +0 -1
  75. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.d.ts +0 -1
  76. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js +0 -298
  77. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js.map +0 -1
  78. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +0 -1
  79. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -399
  80. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +0 -1
  81. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +0 -1
  82. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +0 -290
  83. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +0 -1
  84. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +0 -1
  85. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +0 -245
  86. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +0 -1
  87. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts +0 -1
  88. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -46
  89. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  90. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +0 -1
  91. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +0 -487
  92. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +0 -1
  93. package/dist/common/Sequencer.spec.d.ts +0 -1
  94. package/dist/common/Sequencer.spec.js +0 -75
  95. package/dist/common/Sequencer.spec.js.map +0 -1
  96. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  97. package/dist/files/BrsFile.Class.spec.js +0 -1805
  98. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  99. package/dist/files/BrsFile.spec.d.ts +0 -1
  100. package/dist/files/BrsFile.spec.js +0 -4420
  101. package/dist/files/BrsFile.spec.js.map +0 -1
  102. package/dist/files/XmlFile.spec.d.ts +0 -1
  103. package/dist/files/XmlFile.spec.js +0 -1169
  104. package/dist/files/XmlFile.spec.js.map +0 -1
  105. package/dist/files/tests/imports.spec.d.ts +0 -1
  106. package/dist/files/tests/imports.spec.js +0 -241
  107. package/dist/files/tests/imports.spec.js.map +0 -1
  108. package/dist/files/tests/optionalChaning.spec.d.ts +0 -1
  109. package/dist/files/tests/optionalChaning.spec.js +0 -152
  110. package/dist/files/tests/optionalChaning.spec.js.map +0 -1
  111. package/dist/lexer/Character.spec.d.ts +0 -1
  112. package/dist/lexer/Character.spec.js +0 -27
  113. package/dist/lexer/Character.spec.js.map +0 -1
  114. package/dist/lexer/Lexer.spec.d.ts +0 -1
  115. package/dist/lexer/Lexer.spec.js +0 -1300
  116. package/dist/lexer/Lexer.spec.js.map +0 -1
  117. package/dist/lsp/ActionQueue.spec.d.ts +0 -1
  118. package/dist/lsp/ActionQueue.spec.js +0 -80
  119. package/dist/lsp/ActionQueue.spec.js.map +0 -1
  120. package/dist/lsp/DocumentManager.spec.d.ts +0 -1
  121. package/dist/lsp/DocumentManager.spec.js +0 -103
  122. package/dist/lsp/DocumentManager.spec.js.map +0 -1
  123. package/dist/lsp/PathFilterer.spec.d.ts +0 -1
  124. package/dist/lsp/PathFilterer.spec.js +0 -182
  125. package/dist/lsp/PathFilterer.spec.js.map +0 -1
  126. package/dist/lsp/Project.spec.d.ts +0 -1
  127. package/dist/lsp/Project.spec.js +0 -400
  128. package/dist/lsp/Project.spec.js.map +0 -1
  129. package/dist/lsp/ProjectManager.spec.d.ts +0 -1
  130. package/dist/lsp/ProjectManager.spec.js +0 -1147
  131. package/dist/lsp/ProjectManager.spec.js.map +0 -1
  132. package/dist/lsp/worker/MessageHandler.spec.d.ts +0 -1
  133. package/dist/lsp/worker/MessageHandler.spec.js +0 -64
  134. package/dist/lsp/worker/MessageHandler.spec.js.map +0 -1
  135. package/dist/lsp/worker/WorkerPool.spec.d.ts +0 -1
  136. package/dist/lsp/worker/WorkerPool.spec.js +0 -59
  137. package/dist/lsp/worker/WorkerPool.spec.js.map +0 -1
  138. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +0 -2
  139. package/dist/lsp/worker/WorkerThreadProject.spec.js +0 -72
  140. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +0 -1
  141. package/dist/parser/AstNode.spec.d.ts +0 -1
  142. package/dist/parser/AstNode.spec.js +0 -1452
  143. package/dist/parser/AstNode.spec.js.map +0 -1
  144. package/dist/parser/Expression.spec.d.ts +0 -1
  145. package/dist/parser/Expression.spec.js +0 -40
  146. package/dist/parser/Expression.spec.js.map +0 -1
  147. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  148. package/dist/parser/Parser.Class.spec.js +0 -495
  149. package/dist/parser/Parser.Class.spec.js.map +0 -1
  150. package/dist/parser/Parser.spec.d.ts +0 -4
  151. package/dist/parser/Parser.spec.js +0 -1857
  152. package/dist/parser/Parser.spec.js.map +0 -1
  153. package/dist/parser/SGParser.spec.d.ts +0 -1
  154. package/dist/parser/SGParser.spec.js +0 -131
  155. package/dist/parser/SGParser.spec.js.map +0 -1
  156. package/dist/parser/Statement.spec.d.ts +0 -1
  157. package/dist/parser/Statement.spec.js +0 -118
  158. package/dist/parser/Statement.spec.js.map +0 -1
  159. package/dist/parser/tests/Parser.spec.d.ts +0 -19
  160. package/dist/parser/tests/Parser.spec.js +0 -38
  161. package/dist/parser/tests/Parser.spec.js.map +0 -1
  162. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  163. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  164. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  165. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  166. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  167. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  168. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  169. package/dist/parser/tests/controlFlow/If.spec.js +0 -570
  170. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  171. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  172. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  173. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  174. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  175. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  176. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  177. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  178. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -291
  179. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  180. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  181. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -401
  182. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  183. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  184. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  185. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  186. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  187. package/dist/parser/tests/expression/Call.spec.js +0 -242
  188. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  189. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  190. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  191. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  192. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  193. package/dist/parser/tests/expression/Function.spec.js +0 -403
  194. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  195. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  196. package/dist/parser/tests/expression/Indexing.spec.js +0 -289
  197. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  198. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  199. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  200. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  201. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  202. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -346
  203. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  204. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  205. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  206. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  207. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  208. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  209. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  210. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +0 -1
  211. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +0 -171
  212. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +0 -1
  213. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  214. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  215. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  216. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  217. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  218. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  219. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  220. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -389
  221. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  222. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  223. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -876
  224. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  225. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +0 -1
  226. package/dist/parser/tests/expression/UnaryExpression.spec.js +0 -52
  227. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +0 -1
  228. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  229. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  230. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  231. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +0 -1
  232. package/dist/parser/tests/statement/ConstStatement.spec.js +0 -708
  233. package/dist/parser/tests/statement/ConstStatement.spec.js.map +0 -1
  234. package/dist/parser/tests/statement/Continue.spec.d.ts +0 -1
  235. package/dist/parser/tests/statement/Continue.spec.js +0 -119
  236. package/dist/parser/tests/statement/Continue.spec.js.map +0 -1
  237. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  238. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  239. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  240. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  241. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  242. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  243. package/dist/parser/tests/statement/Enum.spec.d.ts +0 -1
  244. package/dist/parser/tests/statement/Enum.spec.js +0 -1307
  245. package/dist/parser/tests/statement/Enum.spec.js.map +0 -1
  246. package/dist/parser/tests/statement/For.spec.d.ts +0 -1
  247. package/dist/parser/tests/statement/For.spec.js +0 -45
  248. package/dist/parser/tests/statement/For.spec.js.map +0 -1
  249. package/dist/parser/tests/statement/ForEach.spec.d.ts +0 -1
  250. package/dist/parser/tests/statement/ForEach.spec.js +0 -36
  251. package/dist/parser/tests/statement/ForEach.spec.js.map +0 -1
  252. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  253. package/dist/parser/tests/statement/Function.spec.js +0 -342
  254. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  255. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  256. package/dist/parser/tests/statement/Goto.spec.js +0 -51
  257. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  258. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  259. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  260. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  261. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +0 -1
  262. package/dist/parser/tests/statement/InterfaceStatement.spec.js +0 -102
  263. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +0 -1
  264. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  265. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  266. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  267. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  268. package/dist/parser/tests/statement/Misc.spec.js +0 -335
  269. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  270. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  271. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -195
  272. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  273. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  274. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  275. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  276. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  277. package/dist/parser/tests/statement/Set.spec.js +0 -218
  278. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  279. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  280. package/dist/parser/tests/statement/Stop.spec.js +0 -38
  281. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  282. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  283. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  284. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  285. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  286. package/dist/parser/tests/statement/TryCatch.spec.js +0 -142
  287. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  288. package/dist/preprocessor/Manifest.spec.d.ts +0 -1
  289. package/dist/preprocessor/Manifest.spec.js +0 -80
  290. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  291. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  292. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  293. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  294. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  295. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  296. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  297. package/dist/types/ArrayType.spec.d.ts +0 -1
  298. package/dist/types/ArrayType.spec.js +0 -30
  299. package/dist/types/ArrayType.spec.js.map +0 -1
  300. package/dist/types/BooleanType.spec.d.ts +0 -1
  301. package/dist/types/BooleanType.spec.js +0 -12
  302. package/dist/types/BooleanType.spec.js.map +0 -1
  303. package/dist/types/DoubleType.spec.d.ts +0 -1
  304. package/dist/types/DoubleType.spec.js +0 -12
  305. package/dist/types/DoubleType.spec.js.map +0 -1
  306. package/dist/types/DynamicType.spec.d.ts +0 -1
  307. package/dist/types/DynamicType.spec.js +0 -12
  308. package/dist/types/DynamicType.spec.js.map +0 -1
  309. package/dist/types/FloatType.spec.d.ts +0 -1
  310. package/dist/types/FloatType.spec.js +0 -12
  311. package/dist/types/FloatType.spec.js.map +0 -1
  312. package/dist/types/FunctionType.spec.d.ts +0 -1
  313. package/dist/types/FunctionType.spec.js +0 -23
  314. package/dist/types/FunctionType.spec.js.map +0 -1
  315. package/dist/types/IntegerType.spec.d.ts +0 -1
  316. package/dist/types/IntegerType.spec.js +0 -12
  317. package/dist/types/IntegerType.spec.js.map +0 -1
  318. package/dist/types/InterfaceType.spec.d.ts +0 -1
  319. package/dist/types/InterfaceType.spec.js +0 -175
  320. package/dist/types/InterfaceType.spec.js.map +0 -1
  321. package/dist/types/InvalidType.spec.d.ts +0 -1
  322. package/dist/types/InvalidType.spec.js +0 -12
  323. package/dist/types/InvalidType.spec.js.map +0 -1
  324. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  325. package/dist/types/LongIntegerType.spec.js +0 -12
  326. package/dist/types/LongIntegerType.spec.js.map +0 -1
  327. package/dist/types/ObjectType.spec.d.ts +0 -1
  328. package/dist/types/ObjectType.spec.js +0 -12
  329. package/dist/types/ObjectType.spec.js.map +0 -1
  330. package/dist/types/StringType.spec.d.ts +0 -1
  331. package/dist/types/StringType.spec.js +0 -12
  332. package/dist/types/StringType.spec.js.map +0 -1
  333. package/dist/types/VoidType.spec.d.ts +0 -1
  334. package/dist/types/VoidType.spec.js +0 -12
  335. package/dist/types/VoidType.spec.js.map +0 -1
@@ -1,117 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_config_spec_1 = require("../../../chai-config.spec");
4
- const Parser_1 = require("../../Parser");
5
- const TokenKind_1 = require("../../../lexer/TokenKind");
6
- const Parser_spec_1 = require("../Parser.spec");
7
- const vscode_languageserver_1 = require("vscode-languageserver");
8
- const DiagnosticMessages_1 = require("../../../DiagnosticMessages");
9
- describe('parser postfix unary expressions', () => {
10
- it('parses postfix \'++\' for variables', () => {
11
- let { statements, diagnostics } = Parser_1.Parser.parse([
12
- (0, Parser_spec_1.identifier)('foo'),
13
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.PlusPlus, '++'),
14
- Parser_spec_1.EOF
15
- ]);
16
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
17
- (0, chai_config_spec_1.expect)(statements).to.exist;
18
- (0, chai_config_spec_1.expect)(statements).not.to.be.null;
19
- });
20
- it('parses postfix \'--\' for dotted get expressions', () => {
21
- let { statements, diagnostics } = Parser_1.Parser.parse([
22
- (0, Parser_spec_1.identifier)('obj'),
23
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Dot, '.'),
24
- (0, Parser_spec_1.identifier)('property'),
25
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.MinusMinus, '--'),
26
- Parser_spec_1.EOF
27
- ]);
28
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
29
- (0, chai_config_spec_1.expect)(statements).to.exist;
30
- (0, chai_config_spec_1.expect)(statements).not.to.be.null;
31
- });
32
- it('parses postfix \'++\' for indexed get expressions', () => {
33
- let { statements, diagnostics } = Parser_1.Parser.parse([
34
- (0, Parser_spec_1.identifier)('obj'),
35
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftSquareBracket, '['),
36
- (0, Parser_spec_1.identifier)('property'),
37
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightSquareBracket, ']'),
38
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.PlusPlus, '++'),
39
- Parser_spec_1.EOF
40
- ]);
41
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
42
- (0, chai_config_spec_1.expect)(statements).to.exist;
43
- (0, chai_config_spec_1.expect)(statements).not.to.be.null;
44
- });
45
- it('disallows consecutive postfix operators', () => {
46
- let { diagnostics } = Parser_1.Parser.parse([
47
- (0, Parser_spec_1.identifier)('foo'),
48
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.PlusPlus, '++'),
49
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.PlusPlus, '++'),
50
- Parser_spec_1.EOF
51
- ]);
52
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(1);
53
- (0, chai_config_spec_1.expect)(diagnostics[0]).deep.include({
54
- message: 'Consecutive increment/decrement operators are not allowed'
55
- });
56
- });
57
- it('disallows postfix \'--\' for function call results', () => {
58
- let { diagnostics } = Parser_1.Parser.parse([
59
- (0, Parser_spec_1.identifier)('func'),
60
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
61
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
62
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.MinusMinus, '--'),
63
- Parser_spec_1.EOF
64
- ]);
65
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(1);
66
- (0, chai_config_spec_1.expect)(diagnostics[0]).to.deep.include(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.incrementDecrementOperatorsAreNotAllowedAsResultOfFunctionCall()));
67
- });
68
- it('allows \'++\' at the end of a function', () => {
69
- let { statements, diagnostics } = Parser_1.Parser.parse([
70
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Sub, 'sub'),
71
- (0, Parser_spec_1.identifier)('foo'),
72
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.LeftParen, '('),
73
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.RightParen, ')'),
74
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
75
- (0, Parser_spec_1.identifier)('someValue'),
76
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.PlusPlus, '++'),
77
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.Newline, '\n'),
78
- (0, Parser_spec_1.token)(TokenKind_1.TokenKind.EndSub, 'end sub'),
79
- Parser_spec_1.EOF
80
- ]);
81
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
82
- (0, chai_config_spec_1.expect)(statements).to.exist;
83
- (0, chai_config_spec_1.expect)(statements).not.to.be.null;
84
- });
85
- it('location tracking', () => {
86
- /**
87
- * 0 0 0 1
88
- * 0 4 8 2
89
- * +--------------
90
- * 0| someNumber++
91
- */
92
- let { statements, diagnostics } = Parser_1.Parser.parse([
93
- {
94
- kind: TokenKind_1.TokenKind.Identifier,
95
- text: 'someNumber',
96
- isReserved: false,
97
- range: vscode_languageserver_1.Range.create(0, 0, 0, 10)
98
- },
99
- {
100
- kind: TokenKind_1.TokenKind.PlusPlus,
101
- text: '++',
102
- isReserved: false,
103
- range: vscode_languageserver_1.Range.create(0, 10, 0, 12)
104
- },
105
- {
106
- kind: TokenKind_1.TokenKind.Eof,
107
- text: '\0',
108
- isReserved: false,
109
- range: vscode_languageserver_1.Range.create(0, 12, 0, 13)
110
- }
111
- ]);
112
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
113
- (0, chai_config_spec_1.expect)(statements).to.be.lengthOf(1);
114
- (0, chai_config_spec_1.expect)(statements[0].range).deep.include(vscode_languageserver_1.Range.create(0, 0, 0, 12));
115
- });
116
- });
117
- //# sourceMappingURL=Increment.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Increment.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/Increment.spec.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const testHelpers_spec_1 = require("../../../testHelpers.spec");
4
- const testHelpers_spec_2 = require("../../../testHelpers.spec");
5
- const Program_1 = require("../../../Program");
6
- describe('InterfaceStatement', () => {
7
- let program;
8
- const testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
9
- const testGetTypedef = (0, testHelpers_spec_1.getTestGetTypedef)(() => [program, testHelpers_spec_2.rootDir]);
10
- beforeEach(() => {
11
- program = new Program_1.Program({
12
- rootDir: testHelpers_spec_2.rootDir
13
- });
14
- });
15
- it('allows strange keywords as property names', () => {
16
- testGetTypedef(`
17
- interface Person
18
- public as string
19
- protected as string
20
- private as string
21
- sub as string
22
- function as string
23
- interface as string
24
- endInterface as string
25
- end interface
26
- `, undefined, undefined, undefined, true);
27
- });
28
- it('allows strange keywords as method names', () => {
29
- testGetTypedef(`
30
- interface Person
31
- sub public() as string
32
- sub protected() as string
33
- sub private() as string
34
- sub sub() as string
35
- sub function() as string
36
- sub interface() as string
37
- sub endInterface() as string
38
- end interface
39
- `, undefined, undefined, undefined, true);
40
- });
41
- it('includes comments', () => {
42
- testGetTypedef(`
43
- interface Person
44
- 'some comment
45
- sub someFunc() as string
46
- end interface
47
- `, undefined, undefined, undefined, true);
48
- });
49
- it('includes annotations', () => {
50
- testGetTypedef(`
51
- @IFace
52
- interface Person
53
- @Method
54
- sub someFunc() as string
55
- @Field
56
- someField as string
57
- end interface
58
- `, undefined, undefined, undefined, true);
59
- });
60
- it('allows declaring multiple interfaces in a file', () => {
61
- program.setFile('source/interfaces.bs', `
62
- interface Iface1
63
- name as dynamic
64
- end interface
65
- interface IFace2
66
- prop as dynamic
67
- end interface
68
- `);
69
- program.validate();
70
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
71
- });
72
- it('allows comments after an interface', () => {
73
- testTranspile(`
74
- interface Iface1
75
- name as dynamic
76
- end interface
77
- 'this comment was throwing exception during transpile
78
- interface IFace2
79
- prop as dynamic
80
- end interface
81
- `, `
82
- 'this comment was throwing exception during transpile
83
- `);
84
- });
85
- it('allows parameters in interface method signatures', () => {
86
- testGetTypedef(`
87
- interface Person
88
- sub someFunc(name as string, age as integer) as string
89
- someField as string
90
- end interface
91
- `, undefined, undefined, undefined, true);
92
- });
93
- it('supports empty interfaces', () => {
94
- const file = program.setFile('source/main.bs', `
95
- interface SomeInterface
96
- end interface
97
- `);
98
- program.validate();
99
- (0, testHelpers_spec_1.expectZeroDiagnostics)(file);
100
- });
101
- });
102
- //# sourceMappingURL=InterfaceStatement.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InterfaceStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/InterfaceStatement.spec.ts"],"names":[],"mappings":";;AAAA,gEAAuG;AACvG,gEAAoD;AACpD,8CAA2C;AAE3C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,IAAI,OAAgB,CAAC;IACrB,MAAM,aAAa,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,IAAA,oCAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IACnE,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC;YAClB,OAAO,EAAE,0BAAO;SACnB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,cAAc,CAAC;;;;;;;;;;SAUd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,cAAc,CAAC;;;;;;;;;;SAUd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,cAAc,CAAC;;;;;SAKd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,cAAc,CAAC;;;;;;;;SAQd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE;;;;;;;SAOvC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,aAAa,CAAC;;;;;;;;SAQb,EAAE;;SAEF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACxD,cAAc,CAAC;;;;;SAKd,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;SAG9C,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_config_spec_1 = require("../../../chai-config.spec");
4
- const Parser_1 = require("../../Parser");
5
- const Lexer_1 = require("../../../lexer/Lexer");
6
- const Statement_1 = require("../../Statement");
7
- describe('parser library statements', () => {
8
- it('supports library statements at top of file', () => {
9
- const { tokens } = Lexer_1.Lexer.scan(`
10
- Library "v30/bslCore.brs"
11
- sub main()
12
- end sub
13
- `);
14
- const { diagnostics } = Parser_1.Parser.parse(tokens);
15
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
16
- });
17
- it('supports multiple library statements separated by colon', () => {
18
- const { tokens } = Lexer_1.Lexer.scan(`
19
- Library "v30/bslCore.brs" : Library "v30/bslCore.brs"
20
- sub main()
21
- end sub
22
- `);
23
- const { diagnostics } = Parser_1.Parser.parse(tokens);
24
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
25
- });
26
- it('still parses entire file after invalid library statement', () => {
27
- const { tokens } = Lexer_1.Lexer.scan(`
28
- library cat dog mouse
29
- sub main()
30
- end sub
31
- `);
32
- const { diagnostics } = Parser_1.Parser.parse(tokens);
33
- (0, chai_config_spec_1.expect)(diagnostics.length).to.be.greaterThan(0);
34
- });
35
- it('does not prevent usage of `library` as varible name', () => {
36
- const { tokens } = Lexer_1.Lexer.scan(`
37
- sub main()
38
- library = "Gotham City Library"
39
- end sub
40
- `);
41
- const { statements, diagnostics } = Parser_1.Parser.parse(tokens);
42
- //make sure the assignment is present in the function body
43
- let assignment = statements[0].func.body.statements[0];
44
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
45
- (0, chai_config_spec_1.expect)(assignment).to.be.instanceOf(Statement_1.AssignmentStatement);
46
- (0, chai_config_spec_1.expect)(assignment.name.text).to.equal('library');
47
- });
48
- it('does not prevent usage of `library` as object property name', () => {
49
- const { tokens } = Lexer_1.Lexer.scan(`
50
- sub main()
51
- buildings = {
52
- library: "Gotham City Library"
53
- }
54
- end sub
55
- `);
56
- const { statements, diagnostics } = Parser_1.Parser.parse(tokens);
57
- //make sure the assignment is present in the function body
58
- (0, chai_config_spec_1.expect)(statements[0].func.body.statements[0].value.elements[0].keyToken.text).to.equal('library');
59
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
60
- });
61
- it('parses rest of file with ONLY the library keyword present at root level', () => {
62
- const { tokens } = Lexer_1.Lexer.scan(`
63
- library
64
- sub main()
65
- library = "Your Library"
66
- end sub
67
- `);
68
- const { statements, diagnostics } = Parser_1.Parser.parse(tokens);
69
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(1);
70
- //function statement should still exist
71
- (0, chai_config_spec_1.expect)(statements[statements.length - 1]).to.be.instanceOf(Statement_1.FunctionStatement);
72
- });
73
- });
74
- //# sourceMappingURL=LibraryStatement.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LibraryStatement.spec.js","sourceRoot":"","sources":["../../../../src/parser/tests/statement/LibraryStatement.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,335 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_config_spec_1 = require("../../../chai-config.spec");
4
- const Parser_1 = require("../../Parser");
5
- const Lexer_1 = require("../../../lexer/Lexer");
6
- const TokenKind_1 = require("../../../lexer/TokenKind");
7
- const vscode_languageserver_1 = require("vscode-languageserver");
8
- const testHelpers_spec_1 = require("../../../testHelpers.spec");
9
- describe('parser', () => {
10
- describe('`end` keyword', () => {
11
- it('does not produce diagnostics', () => {
12
- var _a;
13
- let { tokens } = Lexer_1.Lexer.scan(`
14
- sub Main()
15
- end
16
- end sub
17
- `);
18
- let { diagnostics } = Parser_1.Parser.parse(tokens);
19
- (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).to.not.exist;
20
- });
21
- it('can be used as a property name on objects', () => {
22
- let { tokens } = Lexer_1.Lexer.scan(`
23
- sub Main()
24
- person = {
25
- end: true
26
- }
27
- end sub
28
- `);
29
- let { diagnostics } = Parser_1.Parser.parse(tokens);
30
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
31
- });
32
- it('is not allowed as a standalone variable', () => {
33
- //this test depends on token locations, so use the lexer to generate those locations.
34
- let { tokens } = Lexer_1.Lexer.scan(`sub Main()\n else = true\nend sub`);
35
- let { diagnostics } = Parser_1.Parser.parse(tokens);
36
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(1);
37
- //specifically check for the error location, because the identifier location was wrong in the past
38
- (0, chai_config_spec_1.expect)(diagnostics[0].range).to.deep.include(vscode_languageserver_1.Range.create(1, 4, 1, 8));
39
- });
40
- });
41
- it('certain reserved words are allowed as local var identifiers', () => {
42
- let { tokens } = Lexer_1.Lexer.scan(`
43
- sub Main()
44
- endfor = true
45
- double = true
46
- exitfor = true
47
- float = true
48
- foreach = true
49
- integer = true
50
- longinteger = true
51
- string = true
52
- end sub
53
- `);
54
- let { diagnostics } = Parser_1.Parser.parse(tokens);
55
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
56
- });
57
- it('most reserved words are not allowed as local var identifiers', () => {
58
- let statementList = [];
59
- [...TokenKind_1.DisallowedLocalIdentifiersText].filter(x => x === 'if').forEach((disallowedIdentifier) => {
60
- //use the lexer to generate tokens because there are many different TokenKind types represented in this list
61
- let { tokens } = Lexer_1.Lexer.scan(`
62
- sub main()
63
- ${disallowedIdentifier} = true
64
- end sub
65
- `);
66
- let { statements, diagnostics } = Parser_1.Parser.parse(tokens);
67
- if (diagnostics.length === 0) {
68
- console.log(TokenKind_1.DisallowedLocalIdentifiersText);
69
- throw new Error(`'${disallowedIdentifier}' cannot be used as an identifier, but was not detected as an error`);
70
- }
71
- statementList.push(statements);
72
- });
73
- });
74
- it('allows certain TokenKinds to be treated as local variables', () => {
75
- //a few additional keywords that we don't have tokenKinds for
76
- (0, testHelpers_spec_1.expectZeroDiagnostics)(Parser_1.Parser.parse(`
77
- sub main()
78
- Void = true
79
- Number = true
80
- Boolean = true
81
- Integer = true
82
- LongInteger = true
83
- Float = true
84
- Double = true
85
- String = true
86
- Object = true
87
- Interface = true
88
- Dynamic = true
89
- Class = true
90
- Namespace = true
91
- end sub
92
- `));
93
- });
94
- it('allows certain TokenKinds as object properties', () => {
95
- let kinds = [
96
- TokenKind_1.TokenKind.As,
97
- TokenKind_1.TokenKind.And,
98
- TokenKind_1.TokenKind.Box,
99
- TokenKind_1.TokenKind.CreateObject,
100
- TokenKind_1.TokenKind.Dim,
101
- TokenKind_1.TokenKind.Then,
102
- TokenKind_1.TokenKind.Else,
103
- TokenKind_1.TokenKind.End,
104
- TokenKind_1.TokenKind.EndFunction,
105
- TokenKind_1.TokenKind.EndFor,
106
- TokenKind_1.TokenKind.EndIf,
107
- TokenKind_1.TokenKind.EndSub,
108
- TokenKind_1.TokenKind.EndWhile,
109
- TokenKind_1.TokenKind.Eval,
110
- TokenKind_1.TokenKind.Exit,
111
- TokenKind_1.TokenKind.ExitFor,
112
- TokenKind_1.TokenKind.ExitWhile,
113
- TokenKind_1.TokenKind.False,
114
- TokenKind_1.TokenKind.For,
115
- TokenKind_1.TokenKind.ForEach,
116
- TokenKind_1.TokenKind.Function,
117
- TokenKind_1.TokenKind.GetGlobalAA,
118
- TokenKind_1.TokenKind.GetLastRunCompileError,
119
- TokenKind_1.TokenKind.GetLastRunRunTimeError,
120
- TokenKind_1.TokenKind.Goto,
121
- TokenKind_1.TokenKind.If,
122
- TokenKind_1.TokenKind.Invalid,
123
- TokenKind_1.TokenKind.Let,
124
- TokenKind_1.TokenKind.Next,
125
- TokenKind_1.TokenKind.Not,
126
- TokenKind_1.TokenKind.ObjFun,
127
- TokenKind_1.TokenKind.Or,
128
- TokenKind_1.TokenKind.Pos,
129
- TokenKind_1.TokenKind.Print,
130
- TokenKind_1.TokenKind.Rem,
131
- TokenKind_1.TokenKind.Return,
132
- TokenKind_1.TokenKind.Step,
133
- TokenKind_1.TokenKind.Stop,
134
- TokenKind_1.TokenKind.Sub,
135
- TokenKind_1.TokenKind.Tab,
136
- TokenKind_1.TokenKind.To,
137
- TokenKind_1.TokenKind.True,
138
- TokenKind_1.TokenKind.Type,
139
- TokenKind_1.TokenKind.While,
140
- TokenKind_1.TokenKind.Void,
141
- TokenKind_1.TokenKind.Boolean,
142
- TokenKind_1.TokenKind.Integer,
143
- TokenKind_1.TokenKind.LongInteger,
144
- TokenKind_1.TokenKind.Float,
145
- TokenKind_1.TokenKind.Double,
146
- TokenKind_1.TokenKind.String,
147
- TokenKind_1.TokenKind.Object,
148
- TokenKind_1.TokenKind.Interface,
149
- TokenKind_1.TokenKind.Dynamic,
150
- TokenKind_1.TokenKind.Void,
151
- TokenKind_1.TokenKind.As
152
- ].map(x => x.toLowerCase());
153
- for (let kind of kinds) {
154
- let { tokens } = Lexer_1.Lexer.scan(`
155
- obj = {
156
- ${kind}: true
157
- }
158
- obj.${kind} = false
159
- theValue = obj.${kind}
160
- `);
161
- let { diagnostics } = Parser_1.Parser.parse(tokens);
162
- if (diagnostics.length > 0) {
163
- throw new Error(`Using "${kind}" as object property. Expected no diagnostics, but received: ${JSON.stringify(diagnostics)}`);
164
- }
165
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
166
- }
167
- });
168
- it('allows whitelisted reserved words as object properties', () => {
169
- //use the lexer to generate token list because...this list is huge.
170
- let { tokens } = Lexer_1.Lexer.scan(`
171
- sub Main()
172
- person = {}
173
- person.and = true
174
- person.box = true
175
- person.createobject = true
176
- person.dim = true
177
- person.double = true
178
- person.each = true
179
- person.else = true
180
- person.elseif = true
181
- person.end = true
182
- person.endfor = true
183
- person.endfunction = true
184
- person.endif = true
185
- person.endsub = true
186
- person.endwhile = true
187
- person.eval = true
188
- person.exit = true
189
- person.exitfor = true
190
- person.exitwhile = true
191
- person.false = true
192
- person.float = true
193
- person.for = true
194
- person.foreach = true
195
- person.function = true
196
- person.getglobalaa = true
197
- person.getlastruncompileerror = true
198
- person.getlastrunruntimeerror = true
199
- person.goto = true
200
- person.if = true
201
- person.integer = true
202
- person.invalid = true
203
- person.let = true
204
- person.line_num = true
205
- person.longinteger = true
206
- person.next = true
207
- person.not = true
208
- person.objfun = true
209
- person.or = true
210
- person.pos = true
211
- person.print = true
212
- 'this one is broken
213
- 'person.rem = true
214
- person.return = true
215
- person.run = true
216
- person.step = true
217
- person.stop = true
218
- person.string = true
219
- person.sub = true
220
- person.tab = true
221
- person.then = true
222
- person.to = true
223
- person.true = true
224
- person.type = true
225
- person.while = true
226
- end sub
227
- `);
228
- let { diagnostics } = Parser_1.Parser.parse(tokens);
229
- (0, chai_config_spec_1.expect)(JSON.stringify(diagnostics[0])).not.to.exist;
230
- (0, chai_config_spec_1.expect)(diagnostics).to.be.lengthOf(0);
231
- });
232
- it('allows rem as a property name only in certain situations', () => {
233
- let { tokens } = Lexer_1.Lexer.scan(`
234
- function main ()
235
- person = {
236
- rem: 1
237
- }
238
- person = {
239
- name: "bob": rem: 2
240
- }
241
- person = {
242
- rem: 3: name: "bob"
243
- }
244
- person.rem = 4
245
- end function
246
- `);
247
- let { diagnostics, statements } = Parser_1.Parser.parse(tokens);
248
- (0, chai_config_spec_1.expect)(diagnostics).to.exist.and.be.lengthOf(0, 'Error count should be 0');
249
- (0, chai_config_spec_1.expect)(statements[0].func.body.statements[0].value.elements[0].text).to.equal('rem: 1');
250
- (0, chai_config_spec_1.expect)(statements[0].func.body.statements[1].value.elements[1].text).to.equal('rem: 2');
251
- (0, chai_config_spec_1.expect)(statements[0].func.body.statements[2].value.elements[0].text).to.equal('rem: 3: name: "bob"');
252
- (0, chai_config_spec_1.expect)(statements[0].func.body.statements[3].name.text).to.equal('rem');
253
- });
254
- it('handles quoted AA keys', () => {
255
- var _a;
256
- let { tokens } = Lexer_1.Lexer.scan(`
257
- function main(arg as string)
258
- twoDimensional = {
259
- "has-second-layer": true,
260
- level: 1
261
- secondLayer: {
262
- level: 2
263
- }
264
- }
265
- end function
266
- `);
267
- let { statements, diagnostics } = Parser_1.Parser.parse(tokens);
268
- let element = statements[0].func.body.statements[0].value.elements[0];
269
- (0, chai_config_spec_1.expect)((_a = diagnostics[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
270
- (0, chai_config_spec_1.expect)(element.keyToken.text).to.equal('"has-second-layer"');
271
- });
272
- it('extracts property names for completion', () => {
273
- const { tokens } = Lexer_1.Lexer.scan(`
274
- function main(arg as string)
275
- aa1 = {
276
- "sprop1": 0,
277
- prop1: 1
278
- prop2: {
279
- prop3: 2
280
- }
281
- }
282
- aa2 = {
283
- prop4: {
284
- prop5: 5,
285
- "sprop2": 0,
286
- prop6: 6
287
- },
288
- prop7: 7
289
- }
290
- calling({
291
- prop8: 8,
292
- prop9: 9
293
- })
294
- aa1.field1 = 1
295
- aa1.field2.field3 = 2
296
- calling(aa2.field4, 3 + aa2.field5.field6)
297
- end function
298
- `);
299
- const expected = [
300
- 'field1', 'field2', 'field3', 'field4', 'field5', 'field6',
301
- 'prop1', 'prop2', 'prop3', 'prop4', 'prop5', 'prop6', 'prop7', 'prop8', 'prop9'
302
- ];
303
- const parser = Parser_1.Parser.parse(tokens);
304
- const { propertyHints: initialHints } = parser.references;
305
- (0, chai_config_spec_1.expect)(Object.keys(initialHints).sort()).to.deep.equal(expected, 'Initial hints');
306
- parser.invalidateReferences();
307
- const { propertyHints: refreshedHints } = parser.references;
308
- (0, chai_config_spec_1.expect)(Object.keys(refreshedHints).sort()).to.deep.equal(expected, 'Refreshed hints');
309
- });
310
- it('extracts property names matching JavaScript reserved names', () => {
311
- const { tokens } = Lexer_1.Lexer.scan(`
312
- function main(arg as string)
313
- aa1 = {
314
- "constructor": 0,
315
- constructor: 1
316
- valueOf: {
317
- toString: 2
318
- }
319
- }
320
- aa1.constructor = 1
321
- aa1.valueOf.toString = 2
322
- end function
323
- `);
324
- const expected = [
325
- 'constructor', 'tostring', 'valueof'
326
- ];
327
- const parser = Parser_1.Parser.parse(tokens);
328
- const { propertyHints: initialHints } = parser.references;
329
- (0, chai_config_spec_1.expect)(Object.keys(initialHints).sort()).to.deep.equal(expected, 'Initial hints');
330
- parser.invalidateReferences();
331
- const { propertyHints: refreshedHints } = parser.references;
332
- (0, chai_config_spec_1.expect)(Object.keys(refreshedHints).sort()).to.deep.equal(expected, 'Refreshed hints');
333
- });
334
- });
335
- //# sourceMappingURL=Misc.spec.js.map