brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.50

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 (715) hide show
  1. package/README.md +76 -138
  2. package/bsconfig.schema.json +121 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +72 -39
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +12 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +7 -6
  23. package/dist/CommentFlagProcessor.js +11 -8
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +642 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +82 -0
  38. package/dist/DiagnosticManager.js +406 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +558 -196
  41. package/dist/DiagnosticMessages.js +870 -340
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +100 -105
  53. package/dist/LanguageServer.js +444 -745
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +241 -98
  62. package/dist/Program.js +1432 -717
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +47 -23
  65. package/dist/ProgramBuilder.js +224 -178
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +149 -109
  68. package/dist/Scope.js +557 -550
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/SemanticTokenUtils.js +5 -1
  71. package/dist/SemanticTokenUtils.js.map +1 -1
  72. package/dist/Stopwatch.d.ts +4 -0
  73. package/dist/Stopwatch.js +8 -1
  74. package/dist/Stopwatch.js.map +1 -1
  75. package/dist/SymbolTable.d.ts +136 -24
  76. package/dist/SymbolTable.js +565 -64
  77. package/dist/SymbolTable.js.map +1 -1
  78. package/dist/SymbolTypeFlag.d.ts +9 -0
  79. package/dist/SymbolTypeFlag.js +14 -0
  80. package/dist/SymbolTypeFlag.js.map +1 -0
  81. package/dist/Throttler.d.ts +12 -0
  82. package/dist/Throttler.js +39 -0
  83. package/dist/Throttler.js.map +1 -1
  84. package/dist/Watcher.d.ts +0 -3
  85. package/dist/Watcher.js +0 -3
  86. package/dist/Watcher.js.map +1 -1
  87. package/dist/XmlScope.d.ts +5 -15
  88. package/dist/XmlScope.js +34 -90
  89. package/dist/XmlScope.js.map +1 -1
  90. package/dist/astUtils/CachedLookups.d.ts +50 -0
  91. package/dist/astUtils/CachedLookups.js +334 -0
  92. package/dist/astUtils/CachedLookups.js.map +1 -0
  93. package/dist/astUtils/CachedLookups.spec.js +39 -0
  94. package/dist/astUtils/CachedLookups.spec.js.map +1 -0
  95. package/dist/astUtils/Editor.d.ts +69 -0
  96. package/dist/astUtils/Editor.js +245 -0
  97. package/dist/astUtils/Editor.js.map +1 -0
  98. package/dist/astUtils/Editor.spec.js +258 -0
  99. package/dist/astUtils/Editor.spec.js.map +1 -0
  100. package/dist/astUtils/creators.d.ts +54 -19
  101. package/dist/astUtils/creators.js +242 -42
  102. package/dist/astUtils/creators.js.map +1 -1
  103. package/dist/astUtils/creators.spec.js +5 -5
  104. package/dist/astUtils/creators.spec.js.map +1 -1
  105. package/dist/astUtils/reflection.d.ts +196 -85
  106. package/dist/astUtils/reflection.js +497 -144
  107. package/dist/astUtils/reflection.js.map +1 -1
  108. package/dist/astUtils/reflection.spec.js +267 -167
  109. package/dist/astUtils/reflection.spec.js.map +1 -1
  110. package/dist/astUtils/stackedVisitor.js.map +1 -1
  111. package/dist/astUtils/stackedVisitor.spec.js +14 -14
  112. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  113. package/dist/astUtils/visitors.d.ts +116 -53
  114. package/dist/astUtils/visitors.js +95 -15
  115. package/dist/astUtils/visitors.js.map +1 -1
  116. package/dist/astUtils/visitors.spec.js +629 -51
  117. package/dist/astUtils/visitors.spec.js.map +1 -1
  118. package/dist/astUtils/xml.d.ts +9 -8
  119. package/dist/astUtils/xml.js +12 -7
  120. package/dist/astUtils/xml.js.map +1 -1
  121. package/dist/bscPlugin/BscPlugin.d.ts +24 -4
  122. package/dist/bscPlugin/BscPlugin.js +88 -4
  123. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  124. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  125. package/dist/bscPlugin/CallExpressionInfo.js +143 -0
  126. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  127. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  128. package/dist/bscPlugin/FileWriter.js +24 -0
  129. package/dist/bscPlugin/FileWriter.js.map +1 -0
  130. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  131. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  132. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  133. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +6 -5
  134. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +173 -27
  135. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  136. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +138 -21
  137. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  138. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  139. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  140. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  141. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +2512 -0
  142. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  143. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  144. package/dist/bscPlugin/definition/DefinitionProvider.js +212 -0
  145. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  146. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  147. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  148. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  149. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  150. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  151. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  152. package/dist/bscPlugin/hover/HoverProcessor.js +230 -0
  153. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  154. package/dist/bscPlugin/hover/HoverProcessor.spec.js +991 -0
  155. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  156. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  157. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  158. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  159. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  160. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  161. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  162. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  163. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  164. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  165. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  166. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +564 -0
  167. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  168. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  169. package/dist/bscPlugin/serialize/BslibInjector.spec.js +33 -0
  170. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  171. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  172. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  173. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  174. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  175. package/dist/bscPlugin/serialize/FileSerializer.js +75 -0
  176. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  177. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  178. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  179. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  180. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +1 -0
  181. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +291 -0
  182. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  183. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  184. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  185. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  186. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +1 -0
  187. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  188. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  189. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  190. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  191. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  192. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +27 -0
  193. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +418 -0
  194. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  195. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  196. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +75 -0
  197. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  198. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  199. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  200. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  201. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  202. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  203. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  204. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +37 -0
  205. package/dist/bscPlugin/validation/BrsFileValidator.js +638 -0
  206. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  207. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +1 -0
  208. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1517 -0
  209. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -0
  210. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  211. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  212. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  213. package/dist/bscPlugin/validation/ScopeValidator.d.ts +141 -0
  214. package/dist/bscPlugin/validation/ScopeValidator.js +1323 -0
  215. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  216. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  217. package/dist/bscPlugin/validation/ScopeValidator.spec.js +6135 -0
  218. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  219. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  220. package/dist/bscPlugin/validation/XmlFileValidator.js +36 -0
  221. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  222. package/dist/cli.js +126 -27
  223. package/dist/cli.js.map +1 -1
  224. package/dist/common/Sequencer.d.ts +53 -0
  225. package/dist/common/Sequencer.js +233 -0
  226. package/dist/common/Sequencer.js.map +1 -0
  227. package/dist/common/Sequencer.spec.d.ts +1 -0
  228. package/dist/common/Sequencer.spec.js +75 -0
  229. package/dist/common/Sequencer.spec.js.map +1 -0
  230. package/dist/deferred.d.ts +5 -3
  231. package/dist/deferred.js +10 -0
  232. package/dist/deferred.js.map +1 -1
  233. package/dist/diagnosticUtils.d.ts +10 -3
  234. package/dist/diagnosticUtils.js +64 -25
  235. package/dist/diagnosticUtils.js.map +1 -1
  236. package/dist/examples/plugins/removePrint.d.ts +2 -2
  237. package/dist/examples/plugins/removePrint.js +8 -12
  238. package/dist/examples/plugins/removePrint.js.map +1 -1
  239. package/dist/files/AssetFile.d.ts +24 -0
  240. package/dist/files/AssetFile.js +25 -0
  241. package/dist/files/AssetFile.js.map +1 -0
  242. package/dist/files/BrsFile.Class.spec.js +1213 -259
  243. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  244. package/dist/files/BrsFile.d.ts +145 -87
  245. package/dist/files/BrsFile.js +836 -934
  246. package/dist/files/BrsFile.js.map +1 -1
  247. package/dist/files/BrsFile.spec.js +4226 -902
  248. package/dist/files/BrsFile.spec.js.map +1 -1
  249. package/dist/files/BscFile.d.ts +102 -0
  250. package/dist/files/BscFile.js +15 -0
  251. package/dist/files/BscFile.js.map +1 -0
  252. package/dist/files/Factory.d.ts +25 -0
  253. package/dist/files/Factory.js +22 -0
  254. package/dist/files/Factory.js.map +1 -0
  255. package/dist/files/LazyFileData.d.ts +21 -0
  256. package/dist/files/LazyFileData.js +54 -0
  257. package/dist/files/LazyFileData.js.map +1 -0
  258. package/dist/files/LazyFileData.spec.d.ts +1 -0
  259. package/dist/files/LazyFileData.spec.js +27 -0
  260. package/dist/files/LazyFileData.spec.js.map +1 -0
  261. package/dist/files/XmlFile.d.ts +80 -41
  262. package/dist/files/XmlFile.js +161 -137
  263. package/dist/files/XmlFile.js.map +1 -1
  264. package/dist/files/XmlFile.spec.js +444 -336
  265. package/dist/files/XmlFile.spec.js.map +1 -1
  266. package/dist/files/tests/imports.spec.js +62 -52
  267. package/dist/files/tests/imports.spec.js.map +1 -1
  268. package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
  269. package/dist/files/tests/optionalChaning.spec.js +152 -0
  270. package/dist/files/tests/optionalChaning.spec.js.map +1 -0
  271. package/dist/globalCallables.d.ts +3 -1
  272. package/dist/globalCallables.js +424 -184
  273. package/dist/globalCallables.js.map +1 -1
  274. package/dist/index.d.ts +32 -4
  275. package/dist/index.js +54 -7
  276. package/dist/index.js.map +1 -1
  277. package/dist/interfaces.d.ts +942 -125
  278. package/dist/interfaces.js +21 -0
  279. package/dist/interfaces.js.map +1 -1
  280. package/dist/lexer/Character.spec.js +5 -5
  281. package/dist/lexer/Character.spec.js.map +1 -1
  282. package/dist/lexer/Lexer.d.ts +51 -12
  283. package/dist/lexer/Lexer.js +215 -65
  284. package/dist/lexer/Lexer.js.map +1 -1
  285. package/dist/lexer/Lexer.spec.js +812 -568
  286. package/dist/lexer/Lexer.spec.js.map +1 -1
  287. package/dist/lexer/Token.d.ts +27 -11
  288. package/dist/lexer/Token.js +10 -2
  289. package/dist/lexer/Token.js.map +1 -1
  290. package/dist/lexer/TokenKind.d.ts +40 -2
  291. package/dist/lexer/TokenKind.js +147 -10
  292. package/dist/lexer/TokenKind.js.map +1 -1
  293. package/dist/logging.d.ts +14 -0
  294. package/dist/logging.js +29 -0
  295. package/dist/logging.js.map +1 -0
  296. package/dist/lsp/ActionQueue.d.ts +35 -0
  297. package/dist/lsp/ActionQueue.js +115 -0
  298. package/dist/lsp/ActionQueue.js.map +1 -0
  299. package/dist/lsp/ActionQueue.spec.d.ts +1 -0
  300. package/dist/lsp/ActionQueue.spec.js +80 -0
  301. package/dist/lsp/ActionQueue.spec.js.map +1 -0
  302. package/dist/lsp/DocumentManager.d.ts +63 -0
  303. package/dist/lsp/DocumentManager.js +122 -0
  304. package/dist/lsp/DocumentManager.js.map +1 -0
  305. package/dist/lsp/DocumentManager.spec.d.ts +1 -0
  306. package/dist/lsp/DocumentManager.spec.js +103 -0
  307. package/dist/lsp/DocumentManager.spec.js.map +1 -0
  308. package/dist/lsp/LspProject.d.ts +239 -0
  309. package/dist/lsp/LspProject.js +3 -0
  310. package/dist/lsp/LspProject.js.map +1 -0
  311. package/dist/lsp/PathFilterer.d.ts +75 -0
  312. package/dist/lsp/PathFilterer.js +196 -0
  313. package/dist/lsp/PathFilterer.js.map +1 -0
  314. package/dist/lsp/PathFilterer.spec.d.ts +1 -0
  315. package/dist/lsp/PathFilterer.spec.js +182 -0
  316. package/dist/lsp/PathFilterer.spec.js.map +1 -0
  317. package/dist/lsp/Project.d.ts +168 -0
  318. package/dist/lsp/Project.js +437 -0
  319. package/dist/lsp/Project.js.map +1 -0
  320. package/dist/lsp/Project.spec.d.ts +1 -0
  321. package/dist/lsp/Project.spec.js +267 -0
  322. package/dist/lsp/Project.spec.js.map +1 -0
  323. package/dist/lsp/ProjectManager.d.ts +242 -0
  324. package/dist/lsp/ProjectManager.js +824 -0
  325. package/dist/lsp/ProjectManager.js.map +1 -0
  326. package/dist/lsp/ProjectManager.spec.d.ts +1 -0
  327. package/dist/lsp/ProjectManager.spec.js +913 -0
  328. package/dist/lsp/ProjectManager.spec.js.map +1 -0
  329. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  330. package/dist/lsp/ReaderWriterManager.js +60 -0
  331. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  332. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  333. package/dist/lsp/worker/MessageHandler.js +138 -0
  334. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  335. package/dist/lsp/worker/MessageHandler.spec.d.ts +1 -0
  336. package/dist/lsp/worker/MessageHandler.spec.js +64 -0
  337. package/dist/lsp/worker/MessageHandler.spec.js.map +1 -0
  338. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  339. package/dist/lsp/worker/WorkerPool.js +78 -0
  340. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  341. package/dist/lsp/worker/WorkerPool.spec.d.ts +1 -0
  342. package/dist/lsp/worker/WorkerPool.spec.js +59 -0
  343. package/dist/lsp/worker/WorkerPool.spec.js.map +1 -0
  344. package/dist/lsp/worker/WorkerThreadProject.d.ts +143 -0
  345. package/dist/lsp/worker/WorkerThreadProject.js +189 -0
  346. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  347. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +2 -0
  348. package/dist/lsp/worker/WorkerThreadProject.spec.js +71 -0
  349. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -0
  350. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  351. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  352. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  353. package/dist/lsp/worker/run.d.ts +1 -0
  354. package/dist/lsp/worker/run.js +14 -0
  355. package/dist/lsp/worker/run.js.map +1 -0
  356. package/dist/parser/AstNode.d.ts +203 -0
  357. package/dist/parser/AstNode.js +303 -0
  358. package/dist/parser/AstNode.js.map +1 -0
  359. package/dist/parser/AstNode.spec.d.ts +1 -0
  360. package/dist/parser/AstNode.spec.js +1455 -0
  361. package/dist/parser/AstNode.spec.js.map +1 -0
  362. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  363. package/dist/parser/BrightScriptDocParser.js +294 -0
  364. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  365. package/dist/parser/BrightScriptDocParser.spec.d.ts +1 -0
  366. package/dist/parser/BrightScriptDocParser.spec.js +310 -0
  367. package/dist/parser/BrightScriptDocParser.spec.js.map +1 -0
  368. package/dist/parser/BrsTranspileState.d.ts +22 -3
  369. package/dist/parser/BrsTranspileState.js +19 -0
  370. package/dist/parser/BrsTranspileState.js.map +1 -1
  371. package/dist/parser/Expression.d.ts +553 -221
  372. package/dist/parser/Expression.js +1414 -505
  373. package/dist/parser/Expression.js.map +1 -1
  374. package/dist/parser/Expression.spec.d.ts +1 -0
  375. package/dist/parser/Expression.spec.js +40 -0
  376. package/dist/parser/Expression.spec.js.map +1 -0
  377. package/dist/parser/Parser.Class.spec.js +255 -125
  378. package/dist/parser/Parser.Class.spec.js.map +1 -1
  379. package/dist/parser/Parser.d.ts +117 -124
  380. package/dist/parser/Parser.js +1669 -982
  381. package/dist/parser/Parser.js.map +1 -1
  382. package/dist/parser/Parser.spec.d.ts +3 -1
  383. package/dist/parser/Parser.spec.js +2111 -525
  384. package/dist/parser/Parser.spec.js.map +1 -1
  385. package/dist/parser/SGParser.d.ts +29 -13
  386. package/dist/parser/SGParser.js +85 -56
  387. package/dist/parser/SGParser.js.map +1 -1
  388. package/dist/parser/SGParser.spec.js +30 -45
  389. package/dist/parser/SGParser.spec.js.map +1 -1
  390. package/dist/parser/SGTypes.d.ts +134 -46
  391. package/dist/parser/SGTypes.js +206 -115
  392. package/dist/parser/SGTypes.js.map +1 -1
  393. package/dist/parser/Statement.d.ts +849 -267
  394. package/dist/parser/Statement.js +2412 -625
  395. package/dist/parser/Statement.js.map +1 -1
  396. package/dist/parser/Statement.spec.js +133 -36
  397. package/dist/parser/Statement.spec.js.map +1 -1
  398. package/dist/parser/TranspileState.d.ts +26 -12
  399. package/dist/parser/TranspileState.js +115 -24
  400. package/dist/parser/TranspileState.js.map +1 -1
  401. package/dist/parser/tests/Parser.spec.d.ts +3 -9
  402. package/dist/parser/tests/Parser.spec.js +7 -13
  403. package/dist/parser/tests/Parser.spec.js.map +1 -1
  404. package/dist/parser/tests/controlFlow/For.spec.js +83 -75
  405. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  406. package/dist/parser/tests/controlFlow/ForEach.spec.js +85 -51
  407. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  408. package/dist/parser/tests/controlFlow/If.spec.js +382 -239
  409. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  410. package/dist/parser/tests/controlFlow/While.spec.js +52 -45
  411. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  412. package/dist/parser/tests/expression/Additive.spec.js +51 -43
  413. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  414. package/dist/parser/tests/expression/ArrayLiterals.spec.js +192 -142
  415. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  416. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +236 -160
  417. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  418. package/dist/parser/tests/expression/Boolean.spec.js +41 -34
  419. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  420. package/dist/parser/tests/expression/Call.spec.js +173 -55
  421. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  422. package/dist/parser/tests/expression/Exponential.spec.js +20 -20
  423. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  424. package/dist/parser/tests/expression/Function.spec.js +291 -282
  425. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  426. package/dist/parser/tests/expression/Indexing.spec.js +193 -110
  427. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  428. package/dist/parser/tests/expression/Multiplicative.spec.js +42 -42
  429. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  430. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +260 -115
  431. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  432. package/dist/parser/tests/expression/PrefixUnary.spec.js +58 -52
  433. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  434. package/dist/parser/tests/expression/Primary.spec.js +76 -60
  435. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  436. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  437. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +171 -0
  438. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  439. package/dist/parser/tests/expression/Relational.spec.js +50 -50
  440. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  441. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +31 -31
  442. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  443. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +281 -94
  444. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  445. package/dist/parser/tests/expression/TernaryExpression.spec.js +747 -192
  446. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  447. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  448. package/dist/parser/tests/expression/TypeExpression.spec.js +126 -0
  449. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  450. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  451. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  452. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  453. package/dist/parser/tests/statement/AssignmentOperators.spec.js +44 -44
  454. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  455. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +1 -0
  456. package/dist/parser/tests/statement/ConstStatement.spec.js +500 -0
  457. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -0
  458. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  459. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  460. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  461. package/dist/parser/tests/statement/Declaration.spec.js +61 -55
  462. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  463. package/dist/parser/tests/statement/Dim.spec.js +29 -22
  464. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  465. package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
  466. package/dist/parser/tests/statement/Enum.spec.js +744 -0
  467. package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
  468. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  469. package/dist/parser/tests/statement/For.spec.js +45 -0
  470. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  471. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  472. package/dist/parser/tests/statement/ForEach.spec.js +36 -0
  473. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  474. package/dist/parser/tests/statement/Function.spec.js +226 -215
  475. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  476. package/dist/parser/tests/statement/Goto.spec.js +16 -15
  477. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  478. package/dist/parser/tests/statement/Increment.spec.js +64 -61
  479. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  480. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  481. package/dist/parser/tests/statement/InterfaceStatement.spec.js +110 -0
  482. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  483. package/dist/parser/tests/statement/LibraryStatement.spec.js +22 -22
  484. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  485. package/dist/parser/tests/statement/Misc.spec.js +127 -168
  486. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  487. package/dist/parser/tests/statement/PrintStatement.spec.js +133 -114
  488. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  489. package/dist/parser/tests/statement/ReturnStatement.spec.js +57 -54
  490. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  491. package/dist/parser/tests/statement/Set.spec.js +131 -117
  492. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  493. package/dist/parser/tests/statement/Stop.spec.js +14 -13
  494. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  495. package/dist/parser/tests/statement/Throw.spec.js +11 -8
  496. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  497. package/dist/parser/tests/statement/TryCatch.spec.js +26 -15
  498. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  499. package/dist/preprocessor/Manifest.d.ts +6 -6
  500. package/dist/preprocessor/Manifest.js +17 -38
  501. package/dist/preprocessor/Manifest.js.map +1 -1
  502. package/dist/preprocessor/Manifest.spec.d.ts +1 -0
  503. package/dist/preprocessor/Manifest.spec.js +78 -103
  504. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  505. package/dist/roku-types/data.json +20347 -0
  506. package/dist/roku-types/index.d.ts +5726 -0
  507. package/dist/roku-types/index.js +11 -0
  508. package/dist/roku-types/index.js.map +1 -0
  509. package/dist/types/ArrayType.d.ts +12 -5
  510. package/dist/types/ArrayType.js +89 -24
  511. package/dist/types/ArrayType.js.map +1 -1
  512. package/dist/types/ArrayType.spec.js +39 -11
  513. package/dist/types/ArrayType.spec.js.map +1 -1
  514. package/dist/types/AssociativeArrayType.d.ts +15 -0
  515. package/dist/types/AssociativeArrayType.js +64 -0
  516. package/dist/types/AssociativeArrayType.js.map +1 -0
  517. package/dist/types/BaseFunctionType.d.ts +10 -0
  518. package/dist/types/BaseFunctionType.js +26 -0
  519. package/dist/types/BaseFunctionType.js.map +1 -0
  520. package/dist/types/BooleanType.d.ts +9 -5
  521. package/dist/types/BooleanType.js +19 -8
  522. package/dist/types/BooleanType.js.map +1 -1
  523. package/dist/types/BooleanType.spec.js +10 -4
  524. package/dist/types/BooleanType.spec.js.map +1 -1
  525. package/dist/types/BscType.d.ts +41 -3
  526. package/dist/types/BscType.js +152 -0
  527. package/dist/types/BscType.js.map +1 -1
  528. package/dist/types/BscTypeKind.d.ts +28 -0
  529. package/dist/types/BscTypeKind.js +33 -0
  530. package/dist/types/BscTypeKind.js.map +1 -0
  531. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  532. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  533. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  534. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  535. package/dist/types/BuiltInInterfaceAdder.spec.js +115 -0
  536. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  537. package/dist/types/CallFuncableType.d.ts +24 -0
  538. package/dist/types/CallFuncableType.js +91 -0
  539. package/dist/types/CallFuncableType.js.map +1 -0
  540. package/dist/types/ClassType.d.ts +17 -0
  541. package/dist/types/ClassType.js +60 -0
  542. package/dist/types/ClassType.js.map +1 -0
  543. package/dist/types/ClassType.spec.d.ts +1 -0
  544. package/dist/types/ClassType.spec.js +76 -0
  545. package/dist/types/ClassType.spec.js.map +1 -0
  546. package/dist/types/ComponentType.d.ts +22 -0
  547. package/dist/types/ComponentType.js +107 -0
  548. package/dist/types/ComponentType.js.map +1 -0
  549. package/dist/types/DoubleType.d.ts +10 -5
  550. package/dist/types/DoubleType.js +21 -17
  551. package/dist/types/DoubleType.js.map +1 -1
  552. package/dist/types/DoubleType.spec.js +12 -4
  553. package/dist/types/DoubleType.spec.js.map +1 -1
  554. package/dist/types/DynamicType.d.ts +13 -5
  555. package/dist/types/DynamicType.js +26 -5
  556. package/dist/types/DynamicType.js.map +1 -1
  557. package/dist/types/DynamicType.spec.js +16 -5
  558. package/dist/types/DynamicType.spec.js.map +1 -1
  559. package/dist/types/EnumType.d.ts +42 -0
  560. package/dist/types/EnumType.js +98 -0
  561. package/dist/types/EnumType.js.map +1 -0
  562. package/dist/types/EnumType.spec.d.ts +1 -0
  563. package/dist/types/EnumType.spec.js +33 -0
  564. package/dist/types/EnumType.spec.js.map +1 -0
  565. package/dist/types/FloatType.d.ts +10 -5
  566. package/dist/types/FloatType.js +21 -17
  567. package/dist/types/FloatType.js.map +1 -1
  568. package/dist/types/FloatType.spec.js +4 -4
  569. package/dist/types/FloatType.spec.js.map +1 -1
  570. package/dist/types/FunctionType.d.ts +8 -22
  571. package/dist/types/FunctionType.js +25 -63
  572. package/dist/types/FunctionType.js.map +1 -1
  573. package/dist/types/InheritableType.d.ts +29 -0
  574. package/dist/types/InheritableType.js +173 -0
  575. package/dist/types/InheritableType.js.map +1 -0
  576. package/dist/types/InlineInterfaceType.d.ts +5 -0
  577. package/dist/types/InlineInterfaceType.js +17 -0
  578. package/dist/types/InlineInterfaceType.js.map +1 -0
  579. package/dist/types/IntegerType.d.ts +10 -5
  580. package/dist/types/IntegerType.js +21 -17
  581. package/dist/types/IntegerType.js.map +1 -1
  582. package/dist/types/IntegerType.spec.js +8 -4
  583. package/dist/types/IntegerType.spec.js.map +1 -1
  584. package/dist/types/InterfaceType.d.ts +14 -6
  585. package/dist/types/InterfaceType.js +30 -15
  586. package/dist/types/InterfaceType.js.map +1 -1
  587. package/dist/types/InterfaceType.spec.d.ts +1 -0
  588. package/dist/types/InterfaceType.spec.js +227 -0
  589. package/dist/types/InterfaceType.spec.js.map +1 -0
  590. package/dist/types/IntersectionType.d.ts +29 -0
  591. package/dist/types/IntersectionType.js +253 -0
  592. package/dist/types/IntersectionType.js.map +1 -0
  593. package/dist/types/IntersectionType.spec.d.ts +1 -0
  594. package/dist/types/IntersectionType.spec.js +150 -0
  595. package/dist/types/IntersectionType.spec.js.map +1 -0
  596. package/dist/types/InvalidType.d.ts +10 -5
  597. package/dist/types/InvalidType.js +21 -9
  598. package/dist/types/InvalidType.js.map +1 -1
  599. package/dist/types/InvalidType.spec.js +8 -4
  600. package/dist/types/InvalidType.spec.js.map +1 -1
  601. package/dist/types/LongIntegerType.d.ts +10 -5
  602. package/dist/types/LongIntegerType.js +21 -17
  603. package/dist/types/LongIntegerType.js.map +1 -1
  604. package/dist/types/LongIntegerType.spec.js +10 -4
  605. package/dist/types/LongIntegerType.spec.js.map +1 -1
  606. package/dist/types/NamespaceType.d.ts +12 -0
  607. package/dist/types/NamespaceType.js +28 -0
  608. package/dist/types/NamespaceType.js.map +1 -0
  609. package/dist/types/ObjectType.d.ts +12 -5
  610. package/dist/types/ObjectType.js +25 -8
  611. package/dist/types/ObjectType.js.map +1 -1
  612. package/dist/types/ObjectType.spec.js +3 -3
  613. package/dist/types/ObjectType.spec.js.map +1 -1
  614. package/dist/types/ReferenceType.d.ts +123 -0
  615. package/dist/types/ReferenceType.js +720 -0
  616. package/dist/types/ReferenceType.js.map +1 -0
  617. package/dist/types/ReferenceType.spec.d.ts +1 -0
  618. package/dist/types/ReferenceType.spec.js +151 -0
  619. package/dist/types/ReferenceType.spec.js.map +1 -0
  620. package/dist/types/StringType.d.ts +12 -5
  621. package/dist/types/StringType.js +23 -8
  622. package/dist/types/StringType.js.map +1 -1
  623. package/dist/types/StringType.spec.js +3 -3
  624. package/dist/types/StringType.spec.js.map +1 -1
  625. package/dist/types/TypeStatementType.d.ts +18 -0
  626. package/dist/types/TypeStatementType.js +45 -0
  627. package/dist/types/TypeStatementType.js.map +1 -0
  628. package/dist/types/TypedFunctionType.d.ts +34 -0
  629. package/dist/types/TypedFunctionType.js +147 -0
  630. package/dist/types/TypedFunctionType.js.map +1 -0
  631. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  632. package/dist/types/TypedFunctionType.spec.js +122 -0
  633. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  634. package/dist/types/UninitializedType.d.ts +11 -6
  635. package/dist/types/UninitializedType.js +20 -11
  636. package/dist/types/UninitializedType.js.map +1 -1
  637. package/dist/types/UnionType.d.ts +27 -0
  638. package/dist/types/UnionType.js +193 -0
  639. package/dist/types/UnionType.js.map +1 -0
  640. package/dist/types/UnionType.spec.d.ts +1 -0
  641. package/dist/types/UnionType.spec.js +205 -0
  642. package/dist/types/UnionType.spec.js.map +1 -0
  643. package/dist/types/VoidType.d.ts +11 -5
  644. package/dist/types/VoidType.js +22 -8
  645. package/dist/types/VoidType.js.map +1 -1
  646. package/dist/types/VoidType.spec.js +3 -3
  647. package/dist/types/VoidType.spec.js.map +1 -1
  648. package/dist/types/helper.spec.d.ts +1 -0
  649. package/dist/types/helper.spec.js +174 -0
  650. package/dist/types/helper.spec.js.map +1 -0
  651. package/dist/types/helpers.d.ts +51 -0
  652. package/dist/types/helpers.js +323 -0
  653. package/dist/types/helpers.js.map +1 -0
  654. package/dist/types/index.d.ts +22 -0
  655. package/dist/types/index.js +39 -0
  656. package/dist/types/index.js.map +1 -0
  657. package/dist/types/roFunctionType.d.ts +11 -0
  658. package/dist/types/roFunctionType.js +37 -0
  659. package/dist/types/roFunctionType.js.map +1 -0
  660. package/dist/types/roFunctionType.spec.d.ts +1 -0
  661. package/dist/types/roFunctionType.spec.js +20 -0
  662. package/dist/types/roFunctionType.spec.js.map +1 -0
  663. package/dist/util.d.ts +288 -187
  664. package/dist/util.js +2018 -575
  665. package/dist/util.js.map +1 -1
  666. package/dist/validators/ClassValidator.d.ts +9 -15
  667. package/dist/validators/ClassValidator.js +93 -138
  668. package/dist/validators/ClassValidator.js.map +1 -1
  669. package/package.json +185 -138
  670. package/CHANGELOG.md +0 -1188
  671. package/dist/astUtils/index.d.ts +0 -7
  672. package/dist/astUtils/index.js +0 -26
  673. package/dist/astUtils/index.js.map +0 -1
  674. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  675. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  676. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  677. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  678. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  679. package/dist/lexer/index.d.ts +0 -3
  680. package/dist/lexer/index.js +0 -17
  681. package/dist/lexer/index.js.map +0 -1
  682. package/dist/parser/SGTypes.spec.js +0 -351
  683. package/dist/parser/SGTypes.spec.js.map +0 -1
  684. package/dist/parser/index.d.ts +0 -3
  685. package/dist/parser/index.js +0 -16
  686. package/dist/parser/index.js.map +0 -1
  687. package/dist/preprocessor/Chunk.d.ts +0 -82
  688. package/dist/preprocessor/Chunk.js +0 -77
  689. package/dist/preprocessor/Chunk.js.map +0 -1
  690. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  691. package/dist/preprocessor/Preprocessor.js +0 -156
  692. package/dist/preprocessor/Preprocessor.js.map +0 -1
  693. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  694. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  695. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  696. package/dist/preprocessor/PreprocessorParser.js +0 -194
  697. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  698. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  699. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  700. package/dist/preprocessor/index.d.ts +0 -3
  701. package/dist/preprocessor/index.js +0 -16
  702. package/dist/preprocessor/index.js.map +0 -1
  703. package/dist/types/CustomType.d.ts +0 -10
  704. package/dist/types/CustomType.js +0 -35
  705. package/dist/types/CustomType.js.map +0 -1
  706. package/dist/types/FunctionType.spec.js +0 -29
  707. package/dist/types/FunctionType.spec.js.map +0 -1
  708. package/dist/types/LazyType.d.ts +0 -15
  709. package/dist/types/LazyType.js +0 -32
  710. package/dist/types/LazyType.js.map +0 -1
  711. /package/dist/{bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts → astUtils/CachedLookups.spec.d.ts} +0 -0
  712. /package/dist/{parser/SGTypes.spec.d.ts → astUtils/Editor.spec.d.ts} +0 -0
  713. /package/dist/{preprocessor/Preprocessor.spec.d.ts → bscPlugin/completions/CompletionsProcessor.spec.d.ts} +0 -0
  714. /package/dist/{preprocessor/PreprocessorParser.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
  715. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/hover/HoverProcessor.spec.d.ts} +0 -0
@@ -1,252 +1,398 @@
1
- import type { Token, Identifier } from '../lexer';
2
- import type { Block, CommentStatement, FunctionStatement, LabelStatement } from './Statement';
3
- import type { Range } from 'vscode-languageserver';
1
+ import type { Token, Identifier } from '../lexer/Token';
2
+ import type { PrintSeparatorToken } from '../lexer/TokenKind';
3
+ import type { Block } from './Statement';
4
+ import type { Location } from 'vscode-languageserver';
4
5
  import type { BrsTranspileState } from './BrsTranspileState';
5
6
  import { ParseMode } from './Parser';
6
7
  import type { WalkOptions, WalkVisitor } from '../astUtils/visitors';
7
- import { InternalWalkMode } from '../astUtils/visitors';
8
- import type { TranspileResult, TypedefProvider } from '../interfaces';
8
+ import type { GetTypeOptions, TranspileResult, TypedefProvider } from '../interfaces';
9
+ import { VoidType } from '../types/VoidType';
10
+ import { DynamicType } from '../types/DynamicType';
9
11
  import type { BscType } from '../types/BscType';
10
- import { SymbolTable } from '../SymbolTable';
12
+ import { AstNodeKind, Expression } from './AstNode';
13
+ import { SourceNode } from 'source-map';
14
+ import type { TranspileState } from './TranspileState';
15
+ import { StringType } from '../types/StringType';
16
+ import { TypedFunctionType } from '../types/TypedFunctionType';
17
+ import { InvalidType } from '../types/InvalidType';
11
18
  import { FunctionType } from '../types/FunctionType';
12
19
  export declare type ExpressionVisitor = (expression: Expression, parent: Expression) => void;
13
- /** A BrightScript expression */
14
- export declare abstract class Expression {
15
- /**
16
- * The starting and ending location of the expression.
17
- */
18
- abstract range: Range;
19
- abstract transpile(state: BrsTranspileState): TranspileResult;
20
- /**
21
- * When being considered by the walk visitor, this describes what type of element the current class is.
22
- */
23
- visitMode: InternalWalkMode;
24
- abstract walk(visitor: WalkVisitor, options: WalkOptions): any;
25
- }
26
20
  export declare class BinaryExpression extends Expression {
27
- left: Expression;
28
- operator: Token;
29
- right: Expression;
30
- constructor(left: Expression, operator: Token, right: Expression);
31
- readonly range: Range;
32
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
21
+ constructor(options: {
22
+ left: Expression;
23
+ operator: Token;
24
+ right: Expression;
25
+ });
26
+ readonly tokens: {
27
+ readonly operator: Token;
28
+ };
29
+ readonly left: Expression;
30
+ readonly right: Expression;
31
+ readonly kind = AstNodeKind.BinaryExpression;
32
+ readonly location: Location | undefined;
33
+ transpile(state: BrsTranspileState): TranspileResult;
33
34
  walk(visitor: WalkVisitor, options: WalkOptions): void;
35
+ getType(options: GetTypeOptions): BscType;
36
+ get leadingTrivia(): Token[];
37
+ clone(): BinaryExpression;
34
38
  }
35
39
  export declare class CallExpression extends Expression {
36
- readonly callee: Expression;
37
- readonly openingParen: Token;
38
- readonly closingParen: Token;
39
- readonly args: Expression[];
40
40
  /**
41
- * The namespace that currently wraps this call expression. This is NOT the namespace of the callee...that will be represented in the callee expression itself.
41
+ * Number of parameters that can be defined on a function
42
+ *
43
+ * Prior to Roku OS 11.5, this was 32
44
+ * As of Roku OS 11.5, this is 63
42
45
  */
43
- readonly namespaceName: NamespacedVariableNameExpression;
44
46
  static MaximumArguments: number;
45
- constructor(callee: Expression, openingParen: Token, closingParen: Token, args: Expression[],
46
- /**
47
- * The namespace that currently wraps this call expression. This is NOT the namespace of the callee...that will be represented in the callee expression itself.
48
- */
49
- namespaceName: NamespacedVariableNameExpression);
50
- readonly range: Range;
51
- transpile(state: BrsTranspileState, nameOverride?: string): any[];
47
+ constructor(options: {
48
+ callee: Expression;
49
+ openingParen?: Token;
50
+ args?: Expression[];
51
+ closingParen?: Token;
52
+ });
53
+ readonly callee: Expression;
54
+ readonly args: Expression[];
55
+ readonly tokens: {
56
+ /**
57
+ * Can either be `(`, or `?(` for optional chaining - defaults to '('
58
+ */
59
+ readonly openingParen?: Token;
60
+ readonly closingParen?: Token;
61
+ };
62
+ readonly kind = AstNodeKind.CallExpression;
63
+ readonly location: Location | undefined;
64
+ transpile(state: BrsTranspileState, nameOverride?: string): TranspileResult;
52
65
  walk(visitor: WalkVisitor, options: WalkOptions): void;
66
+ getType(options: GetTypeOptions): BscType;
67
+ get leadingTrivia(): Token[];
68
+ clone(): CallExpression;
53
69
  }
54
70
  export declare class FunctionExpression extends Expression implements TypedefProvider {
71
+ constructor(options: {
72
+ functionType?: Token;
73
+ leftParen?: Token;
74
+ parameters?: FunctionParameterExpression[];
75
+ rightParen?: Token;
76
+ as?: Token;
77
+ returnTypeExpression?: TypeExpression;
78
+ body: Block;
79
+ endFunctionType?: Token;
80
+ });
81
+ readonly kind = AstNodeKind.FunctionExpression;
55
82
  readonly parameters: FunctionParameterExpression[];
56
- body: Block;
57
- readonly functionType: Token | null;
58
- end: Token;
59
- readonly leftParen: Token;
60
- readonly rightParen: Token;
61
- readonly asToken?: Token;
62
- readonly returnTypeToken?: Token;
63
- /**
64
- * If this function is enclosed within another function, this will reference that parent function
65
- */
66
- readonly parentFunction?: FunctionExpression;
67
- readonly namespaceName?: NamespacedVariableNameExpression;
68
- readonly parentSymbolTable?: SymbolTable;
69
- constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnTypeToken?: Token,
70
- /**
71
- * If this function is enclosed within another function, this will reference that parent function
72
- */
73
- parentFunction?: FunctionExpression, namespaceName?: NamespacedVariableNameExpression, parentSymbolTable?: SymbolTable);
74
- readonly symbolTable: SymbolTable;
75
- labelStatements: LabelStatement[];
76
- /**
77
- * The type this function returns
78
- */
79
- returnType: BscType;
80
- /**
81
- * The list of function calls that are declared within this function scope. This excludes CallExpressions
82
- * declared in child functions
83
- */
84
- callExpressions: CallExpression[];
85
- /**
86
- * If this function is part of a FunctionStatement, this will be set. Otherwise this will be undefined
87
- */
88
- functionStatement?: FunctionStatement;
89
- /**
90
- * A list of all child functions declared directly within this function
91
- */
92
- childFunctionExpressions: FunctionExpression[];
83
+ readonly body: Block;
84
+ readonly returnTypeExpression?: TypeExpression;
85
+ readonly tokens: {
86
+ readonly functionType?: Token;
87
+ readonly endFunctionType?: Token;
88
+ readonly leftParen?: Token;
89
+ readonly rightParen?: Token;
90
+ readonly as?: Token;
91
+ };
92
+ get leadingTrivia(): Token[];
93
+ get endTrivia(): Token[];
93
94
  /**
94
95
  * The range of the function, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
95
96
  * and ending with the last n' in 'end function' or 'b' in 'end sub'
96
97
  */
97
- get range(): Range;
98
- transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): any[];
99
- getTypedef(state: BrsTranspileState, name?: Identifier): any[];
98
+ get location(): Location;
99
+ transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): TranspileResult;
100
+ getTypedef(state: BrsTranspileState): SourceNode[];
100
101
  walk(visitor: WalkVisitor, options: WalkOptions): void;
101
- getFunctionType(): FunctionType;
102
+ getType(options: GetTypeOptions): TypedFunctionType;
103
+ private get requiresReturnType();
104
+ clone(): FunctionExpression;
102
105
  }
103
106
  export declare class FunctionParameterExpression extends Expression {
104
- name: Identifier;
105
- type: BscType;
106
- equalsToken?: Token;
107
- defaultValue?: Expression;
108
- asToken?: Token;
109
- typeToken?: Token;
110
- readonly namespaceName?: NamespacedVariableNameExpression;
111
- constructor(name: Identifier, type: BscType, equalsToken?: Token, defaultValue?: Expression, asToken?: Token, typeToken?: Token, namespaceName?: NamespacedVariableNameExpression);
112
- get range(): Range;
113
- transpile(state: BrsTranspileState): any[];
114
- walk(visitor: WalkVisitor, options: WalkOptions): void;
115
- get isOptional(): boolean;
116
- }
117
- export declare class NamespacedVariableNameExpression extends Expression {
118
- readonly expression: DottedGetExpression | VariableExpression;
119
- constructor(expression: DottedGetExpression | VariableExpression);
120
- range: Range;
121
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
122
- getNameParts(): string[];
123
- getName(parseMode: ParseMode): string;
107
+ constructor(options: {
108
+ name: Identifier;
109
+ equals?: Token;
110
+ defaultValue?: Expression;
111
+ as?: Token;
112
+ typeExpression?: TypeExpression;
113
+ });
114
+ readonly kind = AstNodeKind.FunctionParameterExpression;
115
+ readonly tokens: {
116
+ readonly name: Identifier;
117
+ readonly equals?: Token;
118
+ readonly as?: Token;
119
+ };
120
+ readonly defaultValue?: Expression;
121
+ readonly typeExpression?: TypeExpression;
122
+ getType(options: GetTypeOptions): BscType;
123
+ get location(): Location | undefined;
124
+ transpile(state: BrsTranspileState): TranspileResult;
125
+ getTypedef(state: BrsTranspileState): TranspileResult;
124
126
  walk(visitor: WalkVisitor, options: WalkOptions): void;
127
+ get leadingTrivia(): Token[];
128
+ clone(): FunctionParameterExpression;
125
129
  }
126
130
  export declare class DottedGetExpression extends Expression {
131
+ constructor(options: {
132
+ obj: Expression;
133
+ name: Identifier;
134
+ /**
135
+ * Can either be `.`, or `?.` for optional chaining - defaults in transpile to '.'
136
+ */
137
+ dot?: Token;
138
+ });
139
+ readonly tokens: {
140
+ readonly name: Identifier;
141
+ readonly dot?: Token;
142
+ };
127
143
  readonly obj: Expression;
128
- readonly name: Identifier;
129
- readonly dot: Token;
130
- constructor(obj: Expression, name: Identifier, dot: Token);
131
- readonly range: Range;
132
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
144
+ readonly kind = AstNodeKind.DottedGetExpression;
145
+ readonly location: Location | undefined;
146
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
147
+ getTypedef(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
133
148
  walk(visitor: WalkVisitor, options: WalkOptions): void;
149
+ getType(options: GetTypeOptions): BscType;
150
+ getName(parseMode: ParseMode): string;
151
+ get leadingTrivia(): Token[];
152
+ clone(): DottedGetExpression;
134
153
  }
135
154
  export declare class XmlAttributeGetExpression extends Expression {
155
+ constructor(options: {
156
+ obj: Expression;
157
+ /**
158
+ * Can either be `@`, or `?@` for optional chaining - defaults to '@'
159
+ */
160
+ at?: Token;
161
+ name: Identifier;
162
+ });
163
+ readonly kind = AstNodeKind.XmlAttributeGetExpression;
164
+ readonly tokens: {
165
+ name: Identifier;
166
+ at?: Token;
167
+ };
136
168
  readonly obj: Expression;
137
- readonly name: Identifier;
138
- readonly at: Token;
139
- constructor(obj: Expression, name: Identifier, at: Token);
140
- readonly range: Range;
141
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
169
+ readonly location: Location | undefined;
170
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
142
171
  walk(visitor: WalkVisitor, options: WalkOptions): void;
172
+ get leadingTrivia(): Token[];
173
+ clone(): XmlAttributeGetExpression;
143
174
  }
144
175
  export declare class IndexedGetExpression extends Expression {
176
+ constructor(options: {
177
+ obj: Expression;
178
+ indexes: Expression[];
179
+ /**
180
+ * Can either be `[` or `?[`. If `?.[` is used, this will be `[` and `optionalChainingToken` will be `?.` - defaults to '[' in transpile
181
+ */
182
+ openingSquare?: Token;
183
+ closingSquare?: Token;
184
+ questionDot?: Token;
185
+ });
186
+ readonly kind = AstNodeKind.IndexedGetExpression;
145
187
  readonly obj: Expression;
146
- readonly index: Expression;
147
- readonly openingSquare: Token;
148
- readonly closingSquare: Token;
149
- constructor(obj: Expression, index: Expression, openingSquare: Token, closingSquare: Token);
150
- readonly range: Range;
151
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
188
+ readonly indexes: Expression[];
189
+ readonly tokens: {
190
+ /**
191
+ * Can either be `[` or `?[`. If `?.[` is used, this will be `[` and `optionalChainingToken` will be `?.` - defaults to '[' in transpile
192
+ */
193
+ readonly openingSquare?: Token;
194
+ readonly closingSquare?: Token;
195
+ readonly questionDot?: Token;
196
+ };
197
+ readonly location: Location | undefined;
198
+ transpile(state: BrsTranspileState): any[];
152
199
  walk(visitor: WalkVisitor, options: WalkOptions): void;
200
+ getType(options: GetTypeOptions): BscType;
201
+ get leadingTrivia(): Token[];
202
+ clone(): IndexedGetExpression;
153
203
  }
154
204
  export declare class GroupingExpression extends Expression {
205
+ constructor(options: {
206
+ leftParen?: Token;
207
+ rightParen?: Token;
208
+ expression: Expression;
209
+ });
155
210
  readonly tokens: {
156
- left: Token;
157
- right: Token;
211
+ readonly leftParen?: Token;
212
+ readonly rightParen?: Token;
158
213
  };
159
- expression: Expression;
160
- constructor(tokens: {
161
- left: Token;
162
- right: Token;
163
- }, expression: Expression);
164
- readonly range: Range;
165
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
214
+ readonly expression: Expression;
215
+ readonly kind = AstNodeKind.GroupingExpression;
216
+ readonly location: Location | undefined;
217
+ transpile(state: BrsTranspileState): TranspileResult;
166
218
  walk(visitor: WalkVisitor, options: WalkOptions): void;
219
+ getType(options: GetTypeOptions): BscType;
220
+ get leadingTrivia(): Token[];
221
+ clone(): GroupingExpression;
167
222
  }
168
223
  export declare class LiteralExpression extends Expression {
169
- token: Token;
170
- constructor(token: Token);
171
- get range(): Range;
172
- /**
173
- * The (data) type of this expression
174
- */
175
- type: BscType;
176
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
224
+ constructor(options: {
225
+ value: Token;
226
+ });
227
+ readonly tokens: {
228
+ readonly value: Token;
229
+ };
230
+ readonly kind = AstNodeKind.LiteralExpression;
231
+ get location(): Location;
232
+ getType(options?: GetTypeOptions): DynamicType | import("..").ObjectType | VoidType | InvalidType | import("..").BooleanType | import("..").DoubleType | import("..").FloatType | FunctionType | import("..").IntegerType | import("..").LongIntegerType | StringType;
233
+ transpile(state: BrsTranspileState): TranspileResult[];
177
234
  walk(visitor: WalkVisitor, options: WalkOptions): void;
235
+ get leadingTrivia(): Token[];
236
+ clone(): LiteralExpression;
237
+ }
238
+ /**
239
+ * The print statement can have a mix of expressions and separators. These separators represent actual output to the screen,
240
+ * so this AstNode represents those separators (comma, semicolon, and whitespace)
241
+ */
242
+ export declare class PrintSeparatorExpression extends Expression {
243
+ constructor(options: {
244
+ separator: PrintSeparatorToken;
245
+ });
246
+ readonly tokens: {
247
+ readonly separator: PrintSeparatorToken;
248
+ };
249
+ readonly kind = AstNodeKind.PrintSeparatorExpression;
250
+ location: Location;
251
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
252
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
253
+ get leadingTrivia(): Token[];
254
+ clone(): PrintSeparatorExpression;
178
255
  }
179
256
  /**
180
257
  * This is a special expression only used within template strings. It exists so we can prevent producing lots of empty strings
181
258
  * during template string transpile by identifying these expressions explicitly and skipping the bslib_toString around them
182
259
  */
183
260
  export declare class EscapedCharCodeLiteralExpression extends Expression {
184
- readonly token: Token & {
185
- charCode: number;
186
- };
187
- constructor(token: Token & {
188
- charCode: number;
261
+ constructor(options: {
262
+ value: Token & {
263
+ charCode: number;
264
+ };
189
265
  });
190
- readonly range: Range;
191
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
266
+ readonly kind = AstNodeKind.EscapedCharCodeLiteralExpression;
267
+ readonly tokens: {
268
+ readonly value: Token & {
269
+ charCode: number;
270
+ };
271
+ };
272
+ readonly location: Location;
273
+ transpile(state: BrsTranspileState): SourceNode[];
192
274
  walk(visitor: WalkVisitor, options: WalkOptions): void;
275
+ clone(): EscapedCharCodeLiteralExpression;
193
276
  }
194
277
  export declare class ArrayLiteralExpression extends Expression {
195
- readonly elements: Array<Expression | CommentStatement>;
196
- readonly open: Token;
197
- readonly close: Token;
198
- readonly hasSpread: boolean;
199
- constructor(elements: Array<Expression | CommentStatement>, open: Token, close: Token, hasSpread?: boolean);
200
- readonly range: Range;
201
- transpile(state: BrsTranspileState): any[];
278
+ constructor(options: {
279
+ elements: Array<Expression>;
280
+ open?: Token;
281
+ close?: Token;
282
+ });
283
+ readonly elements: Array<Expression>;
284
+ readonly tokens: {
285
+ readonly open?: Token;
286
+ readonly close?: Token;
287
+ };
288
+ readonly kind = AstNodeKind.ArrayLiteralExpression;
289
+ readonly location: Location | undefined;
290
+ transpile(state: BrsTranspileState): TranspileResult;
202
291
  walk(visitor: WalkVisitor, options: WalkOptions): void;
292
+ getType(options: GetTypeOptions): BscType;
293
+ get leadingTrivia(): Token[];
294
+ get endTrivia(): Token[];
295
+ clone(): ArrayLiteralExpression;
203
296
  }
204
297
  export declare class AAMemberExpression extends Expression {
205
- keyToken: Token;
206
- colonToken: Token;
207
- /** The expression evaluated to determine the member's initial value. */
208
- value: Expression;
209
- constructor(keyToken: Token, colonToken: Token,
298
+ constructor(options: {
299
+ key: Token;
300
+ colon?: Token;
301
+ /** The expression evaluated to determine the member's initial value. */
302
+ value: Expression;
303
+ comma?: Token;
304
+ });
305
+ readonly kind = AstNodeKind.AAMemberExpression;
306
+ readonly location: Location | undefined;
307
+ readonly tokens: {
308
+ readonly key: Token;
309
+ readonly colon?: Token;
310
+ readonly comma?: Token;
311
+ };
210
312
  /** The expression evaluated to determine the member's initial value. */
211
- value: Expression);
212
- range: Range;
313
+ readonly value: Expression;
213
314
  transpile(state: BrsTranspileState): any[];
214
315
  walk(visitor: WalkVisitor, options: WalkOptions): void;
316
+ getType(options: GetTypeOptions): BscType;
317
+ get leadingTrivia(): Token[];
318
+ clone(): AAMemberExpression;
215
319
  }
216
320
  export declare class AALiteralExpression extends Expression {
217
- readonly elements: Array<AAMemberExpression | CommentStatement>;
218
- readonly open: Token;
219
- readonly close: Token;
220
- constructor(elements: Array<AAMemberExpression | CommentStatement>, open: Token, close: Token);
221
- readonly range: Range;
222
- transpile(state: BrsTranspileState): any[];
321
+ constructor(options: {
322
+ elements: Array<AAMemberExpression>;
323
+ open?: Token;
324
+ close?: Token;
325
+ });
326
+ readonly elements: Array<AAMemberExpression>;
327
+ readonly tokens: {
328
+ readonly open?: Token;
329
+ readonly close?: Token;
330
+ };
331
+ readonly kind = AstNodeKind.AALiteralExpression;
332
+ readonly location: Location | undefined;
333
+ transpile(state: BrsTranspileState): TranspileResult;
223
334
  walk(visitor: WalkVisitor, options: WalkOptions): void;
335
+ getType(options: GetTypeOptions): BscType;
336
+ get leadingTrivia(): Token[];
337
+ get endTrivia(): Token[];
338
+ clone(): AALiteralExpression;
224
339
  }
225
340
  export declare class UnaryExpression extends Expression {
226
- operator: Token;
227
- right: Expression;
228
- constructor(operator: Token, right: Expression);
229
- readonly range: Range;
230
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
341
+ constructor(options: {
342
+ operator: Token;
343
+ right: Expression;
344
+ });
345
+ readonly kind = AstNodeKind.UnaryExpression;
346
+ readonly location: Location | undefined;
347
+ readonly tokens: {
348
+ readonly operator: Token;
349
+ };
350
+ readonly right: Expression;
351
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
231
352
  walk(visitor: WalkVisitor, options: WalkOptions): void;
353
+ getType(options: GetTypeOptions): BscType;
354
+ get leadingTrivia(): Token[];
355
+ clone(): UnaryExpression;
232
356
  }
233
357
  export declare class VariableExpression extends Expression {
234
- name: Identifier;
235
- namespaceName: NamespacedVariableNameExpression;
236
- constructor(name: Identifier, namespaceName: NamespacedVariableNameExpression);
237
- readonly range: Range;
238
- isCalled: boolean;
239
- getName(parseMode: ParseMode): string;
240
- transpile(state: BrsTranspileState): any[];
358
+ constructor(options: {
359
+ name: Identifier;
360
+ });
361
+ readonly tokens: {
362
+ readonly name: Identifier;
363
+ };
364
+ readonly kind = AstNodeKind.VariableExpression;
365
+ readonly location: Location;
366
+ getName(parseMode?: ParseMode): string;
367
+ transpile(state: BrsTranspileState): TranspileResult;
368
+ getTypedef(state: BrsTranspileState): TranspileResult[];
241
369
  walk(visitor: WalkVisitor, options: WalkOptions): void;
370
+ getType(options: GetTypeOptions): BscType;
371
+ get leadingTrivia(): Token[];
372
+ clone(): VariableExpression;
242
373
  }
243
374
  export declare class SourceLiteralExpression extends Expression {
244
- readonly token: Token;
245
- constructor(token: Token);
246
- readonly range: Range;
375
+ constructor(options: {
376
+ value: Token;
377
+ });
378
+ readonly location: Location;
379
+ readonly kind = AstNodeKind.SourceLiteralExpression;
380
+ readonly tokens: {
381
+ readonly value: Token;
382
+ };
383
+ /**
384
+ * Find the index of the function in its parent
385
+ */
386
+ private findFunctionIndex;
247
387
  private getFunctionName;
248
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
388
+ /**
389
+ * Get the line number from our token or from the closest ancestor that has a range
390
+ */
391
+ private getClosestLineNumber;
392
+ transpile(state: BrsTranspileState): SourceNode[];
249
393
  walk(visitor: WalkVisitor, options: WalkOptions): void;
394
+ get leadingTrivia(): Token[];
395
+ clone(): SourceLiteralExpression;
250
396
  }
251
397
  /**
252
398
  * This expression transpiles and acts exactly like a CallExpression,
@@ -254,99 +400,285 @@ export declare class SourceLiteralExpression extends Expression {
254
400
  * do more type checking.
255
401
  */
256
402
  export declare class NewExpression extends Expression {
257
- readonly newKeyword: Token;
403
+ constructor(options: {
404
+ new?: Token;
405
+ call: CallExpression;
406
+ });
407
+ readonly kind = AstNodeKind.NewExpression;
408
+ readonly location: Location | undefined;
409
+ readonly tokens: {
410
+ readonly new?: Token;
411
+ };
258
412
  readonly call: CallExpression;
259
- constructor(newKeyword: Token, call: CallExpression);
260
413
  /**
261
414
  * The name of the class to initialize (with optional namespace prefixed)
262
415
  */
263
- get className(): NamespacedVariableNameExpression;
264
- get namespaceName(): NamespacedVariableNameExpression;
265
- readonly range: Range;
266
- transpile(state: BrsTranspileState): any[];
416
+ get className(): DottedGetExpression | VariableExpression;
417
+ transpile(state: BrsTranspileState): TranspileResult;
267
418
  walk(visitor: WalkVisitor, options: WalkOptions): void;
419
+ getType(options: GetTypeOptions): BscType;
420
+ get leadingTrivia(): Token[];
421
+ clone(): NewExpression;
268
422
  }
269
423
  export declare class CallfuncExpression extends Expression {
424
+ constructor(options: {
425
+ callee: Expression;
426
+ operator?: Token;
427
+ methodName: Identifier;
428
+ openingParen?: Token;
429
+ args?: Expression[];
430
+ closingParen?: Token;
431
+ });
270
432
  readonly callee: Expression;
271
- readonly operator: Token;
272
- readonly methodName: Identifier;
273
- readonly openingParen: Token;
274
433
  readonly args: Expression[];
275
- readonly closingParen: Token;
276
- constructor(callee: Expression, operator: Token, methodName: Identifier, openingParen: Token, args: Expression[], closingParen: Token);
277
- readonly range: Range;
278
- transpile(state: BrsTranspileState): any[];
434
+ readonly tokens: {
435
+ readonly operator: Token;
436
+ readonly methodName: Identifier;
437
+ readonly openingParen?: Token;
438
+ readonly closingParen?: Token;
439
+ };
440
+ readonly kind = AstNodeKind.CallfuncExpression;
441
+ readonly location: Location | undefined;
442
+ transpile(state: BrsTranspileState): TranspileResult;
279
443
  walk(visitor: WalkVisitor, options: WalkOptions): void;
444
+ getType(options: GetTypeOptions): BscType;
445
+ get leadingTrivia(): Token[];
446
+ clone(): CallfuncExpression;
280
447
  }
281
448
  /**
282
449
  * Since template strings can contain newlines, we need to concatenate multiple strings together with chr() calls.
283
450
  * This is a single expression that represents the string contatenation of all parts of a single quasi.
284
451
  */
285
452
  export declare class TemplateStringQuasiExpression extends Expression {
453
+ constructor(options: {
454
+ expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>;
455
+ });
286
456
  readonly expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>;
287
- constructor(expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>);
288
- readonly range: Range;
289
- transpile(state: BrsTranspileState, skipEmptyStrings?: boolean): any[];
457
+ readonly kind = AstNodeKind.TemplateStringQuasiExpression;
458
+ readonly location: Location | undefined;
459
+ transpile(state: BrsTranspileState, skipEmptyStrings?: boolean): TranspileResult;
290
460
  walk(visitor: WalkVisitor, options: WalkOptions): void;
461
+ clone(): TemplateStringQuasiExpression;
291
462
  }
292
463
  export declare class TemplateStringExpression extends Expression {
293
- readonly openingBacktick: Token;
464
+ constructor(options: {
465
+ openingBacktick?: Token;
466
+ quasis: TemplateStringQuasiExpression[];
467
+ expressions: Expression[];
468
+ closingBacktick?: Token;
469
+ });
470
+ readonly kind = AstNodeKind.TemplateStringExpression;
471
+ readonly tokens: {
472
+ readonly openingBacktick?: Token;
473
+ readonly closingBacktick?: Token;
474
+ };
294
475
  readonly quasis: TemplateStringQuasiExpression[];
295
476
  readonly expressions: Expression[];
296
- readonly closingBacktick: Token;
297
- constructor(openingBacktick: Token, quasis: TemplateStringQuasiExpression[], expressions: Expression[], closingBacktick: Token);
298
- readonly range: Range;
299
- transpile(state: BrsTranspileState): any[];
477
+ readonly location: Location | undefined;
478
+ getType(options: GetTypeOptions): StringType;
479
+ transpile(state: BrsTranspileState): TranspileResult;
300
480
  walk(visitor: WalkVisitor, options: WalkOptions): void;
481
+ clone(): TemplateStringExpression;
301
482
  }
302
483
  export declare class TaggedTemplateStringExpression extends Expression {
303
- readonly tagName: Identifier;
304
- readonly openingBacktick: Token;
484
+ constructor(options: {
485
+ tagName: Identifier;
486
+ openingBacktick?: Token;
487
+ quasis: TemplateStringQuasiExpression[];
488
+ expressions: Expression[];
489
+ closingBacktick?: Token;
490
+ });
491
+ readonly kind = AstNodeKind.TaggedTemplateStringExpression;
492
+ readonly tokens: {
493
+ readonly tagName: Identifier;
494
+ readonly openingBacktick?: Token;
495
+ readonly closingBacktick?: Token;
496
+ };
305
497
  readonly quasis: TemplateStringQuasiExpression[];
306
498
  readonly expressions: Expression[];
307
- readonly closingBacktick: Token;
308
- constructor(tagName: Identifier, openingBacktick: Token, quasis: TemplateStringQuasiExpression[], expressions: Expression[], closingBacktick: Token);
309
- readonly range: Range;
310
- transpile(state: BrsTranspileState): any[];
499
+ readonly location: Location | undefined;
500
+ transpile(state: BrsTranspileState): TranspileResult;
311
501
  walk(visitor: WalkVisitor, options: WalkOptions): void;
502
+ clone(): TaggedTemplateStringExpression;
312
503
  }
313
504
  export declare class AnnotationExpression extends Expression {
314
- readonly atToken: Token;
315
- readonly nameToken: Token;
316
- constructor(atToken: Token, nameToken: Token);
317
- name: string;
318
- range: Range;
505
+ constructor(options: {
506
+ at?: Token;
507
+ name: Token;
508
+ call?: CallExpression;
509
+ });
510
+ readonly kind = AstNodeKind.AnnotationExpression;
511
+ readonly tokens: {
512
+ readonly at: Token;
513
+ readonly name: Token;
514
+ };
515
+ get location(): Location | undefined;
516
+ readonly name: string;
319
517
  call: CallExpression;
320
518
  /**
321
519
  * Convert annotation arguments to JavaScript types
322
520
  * @param strict If false, keep Expression objects not corresponding to JS types
323
521
  */
324
522
  getArguments(strict?: boolean): ExpressionValue[];
325
- transpile(state: BrsTranspileState): any[];
523
+ get leadingTrivia(): Token[];
524
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
326
525
  walk(visitor: WalkVisitor, options: WalkOptions): void;
327
- getTypedef(state: BrsTranspileState): any[];
526
+ getTypedef(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
527
+ clone(): AnnotationExpression;
328
528
  }
329
529
  export declare class TernaryExpression extends Expression {
530
+ constructor(options: {
531
+ test: Expression;
532
+ questionMark?: Token;
533
+ consequent?: Expression;
534
+ colon?: Token;
535
+ alternate?: Expression;
536
+ });
537
+ readonly kind = AstNodeKind.TernaryExpression;
538
+ readonly location: Location | undefined;
539
+ readonly tokens: {
540
+ readonly questionMark?: Token;
541
+ readonly colon?: Token;
542
+ };
330
543
  readonly test: Expression;
331
- readonly questionMarkToken: Token;
332
544
  readonly consequent?: Expression;
333
- readonly colonToken?: Token;
334
545
  readonly alternate?: Expression;
335
- constructor(test: Expression, questionMarkToken: Token, consequent?: Expression, colonToken?: Token, alternate?: Expression);
336
- range: Range;
337
- transpile(state: BrsTranspileState): any[];
546
+ transpile(state: BrsTranspileState): TranspileResult;
338
547
  walk(visitor: WalkVisitor, options: WalkOptions): void;
548
+ get leadingTrivia(): Token[];
549
+ clone(): TernaryExpression;
339
550
  }
340
551
  export declare class NullCoalescingExpression extends Expression {
341
- consequent: Expression;
342
- questionQuestionToken: Token;
343
- alternate: Expression;
344
- constructor(consequent: Expression, questionQuestionToken: Token, alternate: Expression);
345
- readonly range: Range;
346
- transpile(state: BrsTranspileState): any[];
552
+ constructor(options: {
553
+ consequent: Expression;
554
+ questionQuestion?: Token;
555
+ alternate: Expression;
556
+ });
557
+ readonly kind = AstNodeKind.NullCoalescingExpression;
558
+ readonly location: Location | undefined;
559
+ readonly tokens: {
560
+ readonly questionQuestion?: Token;
561
+ };
562
+ readonly consequent: Expression;
563
+ readonly alternate: Expression;
564
+ transpile(state: BrsTranspileState): TranspileResult;
565
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
566
+ get leadingTrivia(): Token[];
567
+ clone(): NullCoalescingExpression;
568
+ }
569
+ export declare class RegexLiteralExpression extends Expression {
570
+ constructor(options: {
571
+ regexLiteral: Token;
572
+ });
573
+ readonly kind = AstNodeKind.RegexLiteralExpression;
574
+ readonly tokens: {
575
+ readonly regexLiteral: Token;
576
+ };
577
+ get location(): Location;
578
+ transpile(state: BrsTranspileState): TranspileResult;
347
579
  walk(visitor: WalkVisitor, options: WalkOptions): void;
580
+ clone(): RegexLiteralExpression;
581
+ get leadingTrivia(): Token[];
348
582
  }
349
583
  declare type ExpressionValue = string | number | boolean | Expression | ExpressionValue[] | {
350
584
  [key: string]: ExpressionValue;
351
- };
585
+ } | null;
586
+ export declare class TypeExpression extends Expression implements TypedefProvider {
587
+ constructor(options: {
588
+ /**
589
+ * The standard AST expression that represents the type for this TypeExpression.
590
+ */
591
+ expression: Expression;
592
+ });
593
+ readonly kind = AstNodeKind.TypeExpression;
594
+ /**
595
+ * The standard AST expression that represents the type for this TypeExpression.
596
+ */
597
+ readonly expression: Expression;
598
+ readonly location: Location;
599
+ transpile(state: BrsTranspileState): TranspileResult;
600
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
601
+ getType(options: GetTypeOptions): BscType;
602
+ getTypedef(state: TranspileState): TranspileResult;
603
+ getName(parseMode?: ParseMode): string;
604
+ getNameParts(): string[];
605
+ clone(): TypeExpression;
606
+ }
607
+ export declare class TypecastExpression extends Expression {
608
+ constructor(options: {
609
+ obj: Expression;
610
+ as?: Token;
611
+ typeExpression?: TypeExpression;
612
+ });
613
+ readonly kind = AstNodeKind.TypecastExpression;
614
+ readonly obj: Expression;
615
+ readonly tokens: {
616
+ readonly as?: Token;
617
+ };
618
+ typeExpression?: TypeExpression;
619
+ readonly location: Location;
620
+ transpile(state: BrsTranspileState): TranspileResult;
621
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
622
+ getType(options: GetTypeOptions): BscType;
623
+ clone(): TypecastExpression;
624
+ }
625
+ export declare class TypedArrayExpression extends Expression {
626
+ constructor(options: {
627
+ innerType: Expression;
628
+ leftBracket?: Token;
629
+ rightBracket?: Token;
630
+ });
631
+ readonly tokens: {
632
+ readonly leftBracket?: Token;
633
+ readonly rightBracket?: Token;
634
+ };
635
+ readonly innerType: Expression;
636
+ readonly kind = AstNodeKind.TypedArrayExpression;
637
+ readonly location: Location;
638
+ transpile(state: BrsTranspileState): TranspileResult;
639
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
640
+ getType(options: GetTypeOptions): BscType;
641
+ clone(): TypedArrayExpression;
642
+ }
643
+ export declare class InlineInterfaceExpression extends Expression {
644
+ constructor(options: {
645
+ open?: Token;
646
+ members: InlineInterfaceMemberExpression[];
647
+ close?: Token;
648
+ });
649
+ readonly tokens: {
650
+ readonly open?: Token;
651
+ readonly close?: Token;
652
+ };
653
+ readonly members: InlineInterfaceMemberExpression[];
654
+ readonly kind = AstNodeKind.InlineInterfaceExpression;
655
+ readonly location: Location;
656
+ get leadingTrivia(): Token[];
657
+ transpile(state: BrsTranspileState): TranspileResult;
658
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
659
+ getType(options: GetTypeOptions): BscType;
660
+ clone(): InlineInterfaceExpression;
661
+ }
662
+ export declare class InlineInterfaceMemberExpression extends Expression {
663
+ constructor(options: {
664
+ optional?: Token;
665
+ name: Token;
666
+ as?: Token;
667
+ typeExpression?: TypeExpression;
668
+ });
669
+ readonly kind = AstNodeKind.InlineInterfaceMemberExpression;
670
+ readonly tokens: {
671
+ readonly optional?: Token;
672
+ readonly name: Token;
673
+ readonly as?: Token;
674
+ };
675
+ readonly typeExpression?: TypeExpression;
676
+ readonly location: Location;
677
+ get leadingTrivia(): Token[];
678
+ transpile(state: BrsTranspileState): TranspileResult;
679
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
680
+ getType(options: GetTypeOptions): BscType;
681
+ get isOptional(): boolean;
682
+ clone(): InlineInterfaceMemberExpression;
683
+ }
352
684
  export {};