brighterscript 1.0.0-alpha.23 → 1.0.0-alpha.25

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 (536) hide show
  1. package/CHANGELOG.md +585 -218
  2. package/README.md +45 -139
  3. package/bsconfig.schema.json +41 -0
  4. package/dist/ActionPipeline.d.ts +10 -0
  5. package/dist/ActionPipeline.js +40 -0
  6. package/dist/ActionPipeline.js.map +1 -0
  7. package/dist/AstValidationSegmenter.d.ts +25 -0
  8. package/dist/AstValidationSegmenter.js +152 -0
  9. package/dist/AstValidationSegmenter.js.map +1 -0
  10. package/dist/BsConfig.d.ts +39 -4
  11. package/dist/BusyStatusTracker.d.ts +31 -0
  12. package/dist/BusyStatusTracker.js +83 -0
  13. package/dist/BusyStatusTracker.js.map +1 -0
  14. package/dist/Cache.js +3 -3
  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 +3 -3
  20. package/dist/CodeActionUtil.js.map +1 -1
  21. package/dist/CommentFlagProcessor.d.ts +3 -2
  22. package/dist/CommentFlagProcessor.js +5 -4
  23. package/dist/CommentFlagProcessor.js.map +1 -1
  24. package/dist/DependencyGraph.d.ts +3 -2
  25. package/dist/DependencyGraph.js +11 -10
  26. package/dist/DependencyGraph.js.map +1 -1
  27. package/dist/DiagnosticCollection.js +9 -5
  28. package/dist/DiagnosticCollection.js.map +1 -1
  29. package/dist/DiagnosticFilterer.d.ts +1 -0
  30. package/dist/DiagnosticFilterer.js +5 -3
  31. package/dist/DiagnosticFilterer.js.map +1 -1
  32. package/dist/DiagnosticMessages.d.ts +79 -15
  33. package/dist/DiagnosticMessages.js +134 -21
  34. package/dist/DiagnosticMessages.js.map +1 -1
  35. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  36. package/dist/DiagnosticSeverityAdjuster.js +41 -0
  37. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  38. package/dist/FunctionScope.d.ts +28 -0
  39. package/dist/FunctionScope.js +52 -0
  40. package/dist/FunctionScope.js.map +1 -0
  41. package/dist/KeyedThrottler.d.ts +3 -3
  42. package/dist/KeyedThrottler.js +3 -3
  43. package/dist/KeyedThrottler.js.map +1 -1
  44. package/dist/LanguageServer.d.ts +23 -11
  45. package/dist/LanguageServer.js +222 -87
  46. package/dist/LanguageServer.js.map +1 -1
  47. package/dist/Logger.d.ts +3 -2
  48. package/dist/Logger.js +11 -3
  49. package/dist/Logger.js.map +1 -1
  50. package/dist/PluginInterface.d.ts +21 -3
  51. package/dist/PluginInterface.js +74 -6
  52. package/dist/PluginInterface.js.map +1 -1
  53. package/dist/Program.d.ts +162 -81
  54. package/dist/Program.js +903 -732
  55. package/dist/Program.js.map +1 -1
  56. package/dist/ProgramBuilder.d.ts +22 -12
  57. package/dist/ProgramBuilder.js +132 -104
  58. package/dist/ProgramBuilder.js.map +1 -1
  59. package/dist/Scope.d.ts +95 -134
  60. package/dist/Scope.js +477 -551
  61. package/dist/Scope.js.map +1 -1
  62. package/dist/Stopwatch.js +1 -1
  63. package/dist/Stopwatch.js.map +1 -1
  64. package/dist/SymbolTable.d.ts +95 -29
  65. package/dist/SymbolTable.js +256 -102
  66. package/dist/SymbolTable.js.map +1 -1
  67. package/dist/Throttler.d.ts +12 -0
  68. package/dist/Throttler.js +39 -0
  69. package/dist/Throttler.js.map +1 -1
  70. package/dist/Watcher.d.ts +0 -3
  71. package/dist/Watcher.js +0 -3
  72. package/dist/Watcher.js.map +1 -1
  73. package/dist/XmlScope.d.ts +4 -6
  74. package/dist/XmlScope.js +74 -68
  75. package/dist/XmlScope.js.map +1 -1
  76. package/dist/astUtils/CachedLookups.d.ts +48 -0
  77. package/dist/astUtils/CachedLookups.js +323 -0
  78. package/dist/astUtils/CachedLookups.js.map +1 -0
  79. package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +9 -5
  80. package/dist/astUtils/{AstEditor.js → Editor.js} +10 -4
  81. package/dist/astUtils/Editor.js.map +1 -0
  82. package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +68 -64
  83. package/dist/astUtils/Editor.spec.js.map +1 -0
  84. package/dist/astUtils/creators.d.ts +10 -10
  85. package/dist/astUtils/creators.js +26 -16
  86. package/dist/astUtils/creators.js.map +1 -1
  87. package/dist/astUtils/creators.spec.js +5 -5
  88. package/dist/astUtils/creators.spec.js.map +1 -1
  89. package/dist/astUtils/reflection.d.ts +132 -100
  90. package/dist/astUtils/reflection.js +225 -166
  91. package/dist/astUtils/reflection.js.map +1 -1
  92. package/dist/astUtils/reflection.spec.js +208 -126
  93. package/dist/astUtils/reflection.spec.js.map +1 -1
  94. package/dist/astUtils/stackedVisitor.spec.js +12 -12
  95. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  96. package/dist/astUtils/visitors.d.ts +54 -35
  97. package/dist/astUtils/visitors.js +29 -3
  98. package/dist/astUtils/visitors.js.map +1 -1
  99. package/dist/astUtils/visitors.spec.js +178 -33
  100. package/dist/astUtils/visitors.spec.js.map +1 -1
  101. package/dist/astUtils/xml.d.ts +9 -9
  102. package/dist/astUtils/xml.js +9 -9
  103. package/dist/astUtils/xml.js.map +1 -1
  104. package/dist/bscPlugin/BscPlugin.d.ts +12 -2
  105. package/dist/bscPlugin/BscPlugin.js +41 -3
  106. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  107. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  108. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  109. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  110. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  111. package/dist/bscPlugin/FileWriter.js +24 -0
  112. package/dist/bscPlugin/FileWriter.js.map +1 -0
  113. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  114. package/dist/bscPlugin/SignatureHelpUtil.js +135 -0
  115. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  116. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +1 -1
  117. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +21 -12
  118. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  119. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +86 -12
  120. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  121. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +57 -0
  122. package/dist/bscPlugin/completions/CompletionsProcessor.js +544 -0
  123. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  124. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1909 -0
  125. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  126. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  127. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  128. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  129. package/dist/bscPlugin/hover/HoverProcessor.d.ts +17 -0
  130. package/dist/bscPlugin/hover/HoverProcessor.js +188 -0
  131. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  132. package/dist/bscPlugin/hover/HoverProcessor.spec.js +513 -0
  133. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  134. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +3 -1
  135. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +102 -29
  136. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  137. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +167 -6
  138. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  139. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  140. package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
  141. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  142. package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
  143. package/dist/bscPlugin/serialize/BslibManager.js +40 -0
  144. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  145. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  146. package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
  147. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  148. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +16 -0
  149. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +123 -0
  150. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  151. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  152. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
  153. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  154. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  155. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  156. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  157. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +22 -1
  158. package/dist/bscPlugin/validation/BrsFileValidator.js +316 -29
  159. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  160. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +1 -0
  161. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +264 -0
  162. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -0
  163. package/dist/bscPlugin/validation/ProgramValidator.d.ts +10 -0
  164. package/dist/bscPlugin/validation/ProgramValidator.js +32 -0
  165. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  166. package/dist/bscPlugin/validation/ScopeValidator.d.ts +56 -8
  167. package/dist/bscPlugin/validation/ScopeValidator.js +514 -116
  168. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  169. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  170. package/dist/bscPlugin/validation/ScopeValidator.spec.js +2454 -0
  171. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  172. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  173. package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
  174. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  175. package/dist/cli.js +107 -8
  176. package/dist/cli.js.map +1 -1
  177. package/dist/deferred.d.ts +3 -3
  178. package/dist/deferred.js.map +1 -1
  179. package/dist/diagnosticUtils.d.ts +8 -2
  180. package/dist/diagnosticUtils.js +47 -17
  181. package/dist/diagnosticUtils.js.map +1 -1
  182. package/dist/examples/plugins/removePrint.js +8 -10
  183. package/dist/examples/plugins/removePrint.js.map +1 -1
  184. package/dist/files/AssetFile.d.ts +26 -0
  185. package/dist/files/AssetFile.js +26 -0
  186. package/dist/files/AssetFile.js.map +1 -0
  187. package/dist/files/BrsFile.Class.spec.js +529 -486
  188. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  189. package/dist/files/BrsFile.d.ts +124 -112
  190. package/dist/files/BrsFile.js +819 -1131
  191. package/dist/files/BrsFile.js.map +1 -1
  192. package/dist/files/BrsFile.spec.js +1869 -1277
  193. package/dist/files/BrsFile.spec.js.map +1 -1
  194. package/dist/files/BscFile.d.ts +104 -0
  195. package/dist/files/BscFile.js +16 -0
  196. package/dist/files/BscFile.js.map +1 -0
  197. package/dist/files/Factory.d.ts +25 -0
  198. package/dist/files/Factory.js +22 -0
  199. package/dist/files/Factory.js.map +1 -0
  200. package/dist/files/LazyFileData.d.ts +20 -0
  201. package/dist/files/LazyFileData.js +54 -0
  202. package/dist/files/LazyFileData.js.map +1 -0
  203. package/dist/files/LazyFileData.spec.d.ts +1 -0
  204. package/dist/files/LazyFileData.spec.js +27 -0
  205. package/dist/files/LazyFileData.spec.js.map +1 -0
  206. package/dist/files/XmlFile.d.ts +70 -32
  207. package/dist/files/XmlFile.js +106 -117
  208. package/dist/files/XmlFile.js.map +1 -1
  209. package/dist/files/XmlFile.spec.js +325 -262
  210. package/dist/files/XmlFile.spec.js.map +1 -1
  211. package/dist/files/tests/imports.spec.js +49 -41
  212. package/dist/files/tests/imports.spec.js.map +1 -1
  213. package/dist/files/tests/optionalChaning.spec.js +104 -40
  214. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  215. package/dist/globalCallables.js +16 -18
  216. package/dist/globalCallables.js.map +1 -1
  217. package/dist/index.d.ts +13 -2
  218. package/dist/index.js +15 -2
  219. package/dist/index.js.map +1 -1
  220. package/dist/interfaces.d.ts +440 -150
  221. package/dist/interfaces.js +27 -0
  222. package/dist/interfaces.js.map +1 -1
  223. package/dist/lexer/Character.spec.js +5 -5
  224. package/dist/lexer/Character.spec.js.map +1 -1
  225. package/dist/lexer/Lexer.d.ts +12 -5
  226. package/dist/lexer/Lexer.js +28 -13
  227. package/dist/lexer/Lexer.js.map +1 -1
  228. package/dist/lexer/Lexer.spec.js +187 -134
  229. package/dist/lexer/Lexer.spec.js.map +1 -1
  230. package/dist/lexer/Token.d.ts +9 -1
  231. package/dist/lexer/Token.js +9 -1
  232. package/dist/lexer/Token.js.map +1 -1
  233. package/dist/lexer/TokenKind.d.ts +9 -0
  234. package/dist/lexer/TokenKind.js +30 -5
  235. package/dist/lexer/TokenKind.js.map +1 -1
  236. package/dist/parser/AstNode.d.ts +162 -0
  237. package/dist/parser/AstNode.js +225 -0
  238. package/dist/parser/AstNode.js.map +1 -0
  239. package/dist/parser/AstNode.spec.d.ts +1 -0
  240. package/dist/parser/AstNode.spec.js +165 -0
  241. package/dist/parser/AstNode.spec.js.map +1 -0
  242. package/dist/parser/BrsTranspileState.d.ts +4 -7
  243. package/dist/parser/BrsTranspileState.js +4 -12
  244. package/dist/parser/BrsTranspileState.js.map +1 -1
  245. package/dist/parser/Expression.d.ts +126 -167
  246. package/dist/parser/Expression.js +524 -394
  247. package/dist/parser/Expression.js.map +1 -1
  248. package/dist/parser/Parser.Class.spec.js +152 -146
  249. package/dist/parser/Parser.Class.spec.js.map +1 -1
  250. package/dist/parser/Parser.d.ts +45 -196
  251. package/dist/parser/Parser.js +470 -926
  252. package/dist/parser/Parser.js.map +1 -1
  253. package/dist/parser/Parser.spec.d.ts +3 -1
  254. package/dist/parser/Parser.spec.js +1034 -805
  255. package/dist/parser/Parser.spec.js.map +1 -1
  256. package/dist/parser/SGParser.d.ts +9 -8
  257. package/dist/parser/SGParser.js +10 -8
  258. package/dist/parser/SGParser.js.map +1 -1
  259. package/dist/parser/SGParser.spec.js +27 -38
  260. package/dist/parser/SGParser.spec.js.map +1 -1
  261. package/dist/parser/SGTypes.d.ts +98 -35
  262. package/dist/parser/SGTypes.js +169 -99
  263. package/dist/parser/SGTypes.js.map +1 -1
  264. package/dist/parser/Statement.d.ts +208 -122
  265. package/dist/parser/Statement.js +599 -364
  266. package/dist/parser/Statement.js.map +1 -1
  267. package/dist/parser/Statement.spec.js +45 -21
  268. package/dist/parser/Statement.spec.js.map +1 -1
  269. package/dist/parser/TranspileState.d.ts +1 -1
  270. package/dist/parser/TranspileState.js +7 -12
  271. package/dist/parser/TranspileState.js.map +1 -1
  272. package/dist/parser/tests/Parser.spec.js +3 -2
  273. package/dist/parser/tests/Parser.spec.js.map +1 -1
  274. package/dist/parser/tests/controlFlow/For.spec.js +33 -23
  275. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  276. package/dist/parser/tests/controlFlow/ForEach.spec.js +25 -20
  277. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  278. package/dist/parser/tests/controlFlow/If.spec.js +96 -94
  279. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  280. package/dist/parser/tests/controlFlow/While.spec.js +22 -16
  281. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  282. package/dist/parser/tests/expression/Additive.spec.js +8 -8
  283. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  284. package/dist/parser/tests/expression/ArrayLiterals.spec.js +58 -21
  285. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  286. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +61 -20
  287. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  288. package/dist/parser/tests/expression/Boolean.spec.js +8 -8
  289. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  290. package/dist/parser/tests/expression/Call.spec.js +129 -21
  291. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  292. package/dist/parser/tests/expression/Exponential.spec.js +5 -5
  293. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  294. package/dist/parser/tests/expression/Function.spec.js +36 -36
  295. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  296. package/dist/parser/tests/expression/Indexing.spec.js +67 -22
  297. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  298. package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
  299. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  300. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +123 -81
  301. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  302. package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
  303. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  304. package/dist/parser/tests/expression/Primary.spec.js +12 -12
  305. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  306. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  307. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  308. package/dist/parser/tests/expression/Relational.spec.js +13 -13
  309. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  310. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  311. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  312. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +221 -81
  313. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  314. package/dist/parser/tests/expression/TernaryExpression.spec.js +287 -105
  315. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  316. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  317. package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
  318. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  319. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  320. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  321. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  322. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  323. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  324. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +1 -0
  325. package/dist/parser/tests/statement/ConstStatement.spec.js +262 -0
  326. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -0
  327. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  328. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  329. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  330. package/dist/parser/tests/statement/Declaration.spec.js +19 -19
  331. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  332. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  333. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  334. package/dist/parser/tests/statement/Enum.spec.js +111 -300
  335. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  336. package/dist/parser/tests/statement/For.spec.js +9 -10
  337. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  338. package/dist/parser/tests/statement/ForEach.spec.js +8 -9
  339. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  340. package/dist/parser/tests/statement/Function.spec.js +44 -35
  341. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  342. package/dist/parser/tests/statement/Goto.spec.js +5 -5
  343. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  344. package/dist/parser/tests/statement/Increment.spec.js +20 -20
  345. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  346. package/dist/parser/tests/statement/InterfaceStatement.spec.js +30 -196
  347. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  348. package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
  349. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  350. package/dist/parser/tests/statement/Misc.spec.js +16 -78
  351. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  352. package/dist/parser/tests/statement/PrintStatement.spec.js +107 -90
  353. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  354. package/dist/parser/tests/statement/ReturnStatement.spec.js +14 -12
  355. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  356. package/dist/parser/tests/statement/Set.spec.js +48 -35
  357. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  358. package/dist/parser/tests/statement/Stop.spec.js +6 -6
  359. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  360. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  361. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  362. package/dist/parser/tests/statement/TryCatch.spec.js +18 -16
  363. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  364. package/dist/preprocessor/Manifest.d.ts +1 -1
  365. package/dist/preprocessor/Manifest.js +3 -3
  366. package/dist/preprocessor/Manifest.js.map +1 -1
  367. package/dist/preprocessor/Manifest.spec.js +8 -8
  368. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  369. package/dist/preprocessor/Preprocessor.d.ts +5 -6
  370. package/dist/preprocessor/Preprocessor.js +15 -11
  371. package/dist/preprocessor/Preprocessor.js.map +1 -1
  372. package/dist/preprocessor/Preprocessor.spec.js +25 -25
  373. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  374. package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
  375. package/dist/preprocessor/PreprocessorParser.js +7 -1
  376. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  377. package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
  378. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  379. package/dist/roku-types/data.json +6544 -10519
  380. package/dist/roku-types/index.d.ts +662 -1934
  381. package/dist/types/ArrayType.d.ts +10 -9
  382. package/dist/types/ArrayType.js +65 -60
  383. package/dist/types/ArrayType.js.map +1 -1
  384. package/dist/types/ArrayType.spec.js +36 -68
  385. package/dist/types/ArrayType.spec.js.map +1 -1
  386. package/dist/types/AssociativeArrayType.d.ts +11 -0
  387. package/dist/types/AssociativeArrayType.js +52 -0
  388. package/dist/types/AssociativeArrayType.js.map +1 -0
  389. package/dist/types/BaseFunctionType.d.ts +9 -0
  390. package/dist/types/BaseFunctionType.js +25 -0
  391. package/dist/types/BaseFunctionType.js.map +1 -0
  392. package/dist/types/BooleanType.d.ts +8 -5
  393. package/dist/types/BooleanType.js +14 -7
  394. package/dist/types/BooleanType.js.map +1 -1
  395. package/dist/types/BooleanType.spec.js +10 -6
  396. package/dist/types/BooleanType.spec.js.map +1 -1
  397. package/dist/types/BscType.d.ts +32 -21
  398. package/dist/types/BscType.js +118 -21
  399. package/dist/types/BscType.js.map +1 -1
  400. package/dist/types/BscTypeKind.d.ts +25 -0
  401. package/dist/types/BscTypeKind.js +30 -0
  402. package/dist/types/BscTypeKind.js.map +1 -0
  403. package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
  404. package/dist/types/BuiltInInterfaceAdder.js +164 -0
  405. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  406. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  407. package/dist/types/BuiltInInterfaceAdder.spec.js +116 -0
  408. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  409. package/dist/types/ClassType.d.ts +17 -0
  410. package/dist/types/ClassType.js +58 -0
  411. package/dist/types/ClassType.js.map +1 -0
  412. package/dist/types/ClassType.spec.d.ts +1 -0
  413. package/dist/types/ClassType.spec.js +77 -0
  414. package/dist/types/ClassType.spec.js.map +1 -0
  415. package/dist/types/ComponentType.d.ts +26 -0
  416. package/dist/types/ComponentType.js +83 -0
  417. package/dist/types/ComponentType.js.map +1 -0
  418. package/dist/types/DoubleType.d.ts +8 -5
  419. package/dist/types/DoubleType.js +18 -16
  420. package/dist/types/DoubleType.js.map +1 -1
  421. package/dist/types/DoubleType.spec.js +12 -6
  422. package/dist/types/DoubleType.spec.js.map +1 -1
  423. package/dist/types/DynamicType.d.ts +10 -5
  424. package/dist/types/DynamicType.js +16 -4
  425. package/dist/types/DynamicType.js.map +1 -1
  426. package/dist/types/DynamicType.spec.js +16 -5
  427. package/dist/types/DynamicType.spec.js.map +1 -1
  428. package/dist/types/EnumType.d.ts +30 -12
  429. package/dist/types/EnumType.js +43 -17
  430. package/dist/types/EnumType.js.map +1 -1
  431. package/dist/types/EnumType.spec.d.ts +1 -0
  432. package/dist/types/EnumType.spec.js +33 -0
  433. package/dist/types/EnumType.spec.js.map +1 -0
  434. package/dist/types/FloatType.d.ts +8 -5
  435. package/dist/types/FloatType.js +18 -16
  436. package/dist/types/FloatType.js.map +1 -1
  437. package/dist/types/FloatType.spec.js +4 -6
  438. package/dist/types/FloatType.spec.js.map +1 -1
  439. package/dist/types/FunctionType.d.ts +13 -8
  440. package/dist/types/FunctionType.js +30 -14
  441. package/dist/types/FunctionType.js.map +1 -1
  442. package/dist/types/InheritableType.d.ts +28 -0
  443. package/dist/types/InheritableType.js +152 -0
  444. package/dist/types/InheritableType.js.map +1 -0
  445. package/dist/types/IntegerType.d.ts +8 -5
  446. package/dist/types/IntegerType.js +18 -16
  447. package/dist/types/IntegerType.js.map +1 -1
  448. package/dist/types/IntegerType.spec.js +8 -6
  449. package/dist/types/IntegerType.spec.js.map +1 -1
  450. package/dist/types/InterfaceType.d.ts +12 -13
  451. package/dist/types/InterfaceType.js +20 -48
  452. package/dist/types/InterfaceType.js.map +1 -1
  453. package/dist/types/InterfaceType.spec.js +90 -56
  454. package/dist/types/InterfaceType.spec.js.map +1 -1
  455. package/dist/types/InvalidType.d.ts +7 -5
  456. package/dist/types/InvalidType.js +13 -7
  457. package/dist/types/InvalidType.js.map +1 -1
  458. package/dist/types/InvalidType.spec.js +8 -6
  459. package/dist/types/InvalidType.spec.js.map +1 -1
  460. package/dist/types/LongIntegerType.d.ts +8 -5
  461. package/dist/types/LongIntegerType.js +17 -15
  462. package/dist/types/LongIntegerType.js.map +1 -1
  463. package/dist/types/LongIntegerType.spec.js +10 -6
  464. package/dist/types/LongIntegerType.spec.js.map +1 -1
  465. package/dist/types/NamespaceType.d.ts +12 -0
  466. package/dist/types/NamespaceType.js +28 -0
  467. package/dist/types/NamespaceType.js.map +1 -0
  468. package/dist/types/ObjectType.d.ts +9 -8
  469. package/dist/types/ObjectType.js +21 -11
  470. package/dist/types/ObjectType.js.map +1 -1
  471. package/dist/types/ObjectType.spec.js +3 -3
  472. package/dist/types/ObjectType.spec.js.map +1 -1
  473. package/dist/types/ReferenceType.d.ts +63 -0
  474. package/dist/types/ReferenceType.js +423 -0
  475. package/dist/types/ReferenceType.js.map +1 -0
  476. package/dist/types/ReferenceType.spec.d.ts +1 -0
  477. package/dist/types/ReferenceType.spec.js +137 -0
  478. package/dist/types/ReferenceType.spec.js.map +1 -0
  479. package/dist/types/StringType.d.ts +11 -5
  480. package/dist/types/StringType.js +18 -7
  481. package/dist/types/StringType.js.map +1 -1
  482. package/dist/types/StringType.spec.js +3 -5
  483. package/dist/types/StringType.spec.js.map +1 -1
  484. package/dist/types/TypedFunctionType.d.ts +22 -17
  485. package/dist/types/TypedFunctionType.js +78 -60
  486. package/dist/types/TypedFunctionType.js.map +1 -1
  487. package/dist/types/TypedFunctionType.spec.js +105 -20
  488. package/dist/types/TypedFunctionType.spec.js.map +1 -1
  489. package/dist/types/UninitializedType.d.ts +8 -6
  490. package/dist/types/UninitializedType.js +13 -7
  491. package/dist/types/UninitializedType.js.map +1 -1
  492. package/dist/types/UnionType.d.ts +20 -0
  493. package/dist/types/UnionType.js +123 -0
  494. package/dist/types/UnionType.js.map +1 -0
  495. package/dist/types/UnionType.spec.d.ts +1 -0
  496. package/dist/types/UnionType.spec.js +130 -0
  497. package/dist/types/UnionType.spec.js.map +1 -0
  498. package/dist/types/VoidType.d.ts +8 -5
  499. package/dist/types/VoidType.js +14 -7
  500. package/dist/types/VoidType.js.map +1 -1
  501. package/dist/types/VoidType.spec.js +3 -3
  502. package/dist/types/VoidType.spec.js.map +1 -1
  503. package/dist/types/helper.spec.d.ts +1 -0
  504. package/dist/types/helper.spec.js +145 -0
  505. package/dist/types/helper.spec.js.map +1 -0
  506. package/dist/types/helpers.d.ts +19 -37
  507. package/dist/types/helpers.js +159 -99
  508. package/dist/types/helpers.js.map +1 -1
  509. package/dist/types/index.d.ts +22 -0
  510. package/dist/types/index.js +39 -0
  511. package/dist/types/index.js.map +1 -0
  512. package/dist/util.d.ts +167 -131
  513. package/dist/util.js +890 -350
  514. package/dist/util.js.map +1 -1
  515. package/dist/validators/ClassValidator.d.ts +7 -25
  516. package/dist/validators/ClassValidator.js +103 -194
  517. package/dist/validators/ClassValidator.js.map +1 -1
  518. package/package.json +165 -149
  519. package/dist/astUtils/AstEditor.js.map +0 -1
  520. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  521. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.d.ts +0 -8
  522. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +0 -40
  523. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +0 -1
  524. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -32
  525. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  526. package/dist/parser/SGTypes.spec.js +0 -351
  527. package/dist/parser/SGTypes.spec.js.map +0 -1
  528. package/dist/types/CustomType.d.ts +0 -12
  529. package/dist/types/CustomType.js +0 -44
  530. package/dist/types/CustomType.js.map +0 -1
  531. package/dist/types/LazyType.d.ts +0 -16
  532. package/dist/types/LazyType.js +0 -44
  533. package/dist/types/LazyType.js.map +0 -1
  534. /package/dist/astUtils/{AstEditor.spec.d.ts → Editor.spec.d.ts} +0 -0
  535. /package/dist/bscPlugin/{transpile/BrsFilePreTranspileProcessor.spec.d.ts → completions/CompletionsProcessor.spec.d.ts} +0 -0
  536. /package/dist/{parser/SGTypes.spec.d.ts → bscPlugin/hover/HoverProcessor.spec.d.ts} +0 -0
@@ -1,39 +1,29 @@
1
1
  import type { Token, Identifier } from '../lexer/Token';
2
- import type { Block, CommentStatement, FunctionStatement, LabelStatement } from './Statement';
2
+ import type { Block, CommentStatement, FunctionStatement } from './Statement';
3
3
  import type { Range } from 'vscode-languageserver';
4
4
  import type { BrsTranspileState } from './BrsTranspileState';
5
5
  import { ParseMode } from './Parser';
6
6
  import type { WalkOptions, WalkVisitor } from '../astUtils/visitors';
7
- import { InternalWalkMode } from '../astUtils/visitors';
8
- import type { TranspileResult, TypedefProvider } from '../interfaces';
9
- import { VoidType } from '../types/VoidType';
10
- import { DynamicType } from '../types/DynamicType';
11
- import type { BscType, SymbolContainer } from '../types/BscType';
12
- import { SymbolTable } from '../SymbolTable';
7
+ import type { GetTypeOptions, TranspileResult, TypedefProvider } from '../interfaces';
8
+ import type { BscType } from '../types/BscType';
13
9
  import { TypedFunctionType } from '../types/TypedFunctionType';
14
- import { ArrayType } from '../types/ArrayType';
10
+ import { AstNodeKind, Expression } from './AstNode';
11
+ import { SourceNode } from 'source-map';
12
+ import type { TranspileState } from './TranspileState';
13
+ import { StringType } from '../types/StringType';
14
+ import { DynamicType } from '../types/DynamicType';
15
+ import { VoidType } from '../types/VoidType';
15
16
  export declare type ExpressionVisitor = (expression: Expression, parent: Expression) => void;
16
- /** A BrightScript expression */
17
- export declare abstract class Expression {
18
- /**
19
- * The starting and ending location of the expression.
20
- */
21
- abstract range: Range;
22
- abstract transpile(state: BrsTranspileState): TranspileResult;
23
- /**
24
- * When being considered by the walk visitor, this describes what type of element the current class is.
25
- */
26
- visitMode: InternalWalkMode;
27
- abstract walk(visitor: WalkVisitor, options: WalkOptions): any;
28
- }
29
17
  export declare class BinaryExpression extends Expression {
30
18
  left: Expression;
31
19
  operator: Token;
32
20
  right: Expression;
33
21
  constructor(left: Expression, operator: Token, right: Expression);
22
+ readonly kind = AstNodeKind.BinaryExpression;
34
23
  readonly range: Range;
35
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
24
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
36
25
  walk(visitor: WalkVisitor, options: WalkOptions): void;
26
+ getType(options: GetTypeOptions): BscType;
37
27
  }
38
28
  export declare class CallExpression extends Expression {
39
29
  readonly callee: Expression;
@@ -43,23 +33,17 @@ export declare class CallExpression extends Expression {
43
33
  readonly openingParen: Token;
44
34
  readonly closingParen: Token;
45
35
  readonly 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
- readonly namespaceName: NamespacedVariableNameExpression;
50
36
  static MaximumArguments: number;
51
37
  constructor(callee: Expression,
52
38
  /**
53
39
  * Can either be `(`, or `?(` for optional chaining
54
40
  */
55
- openingParen: Token, closingParen: Token, args: Expression[],
56
- /**
57
- * 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.
58
- */
59
- namespaceName: NamespacedVariableNameExpression);
41
+ openingParen: Token, closingParen: Token, args: Expression[], unused?: any);
42
+ readonly kind = AstNodeKind.CallExpression;
60
43
  readonly range: Range;
61
- transpile(state: BrsTranspileState, nameOverride?: string): any[];
44
+ transpile(state: BrsTranspileState, nameOverride?: string): (string | SourceNode)[];
62
45
  walk(visitor: WalkVisitor, options: WalkOptions): void;
46
+ getType(options: GetTypeOptions): any;
63
47
  }
64
48
  export declare class FunctionExpression extends Expression implements TypedefProvider {
65
49
  readonly parameters: FunctionParameterExpression[];
@@ -69,31 +53,9 @@ export declare class FunctionExpression extends Expression implements TypedefPro
69
53
  readonly leftParen: Token;
70
54
  readonly rightParen: Token;
71
55
  readonly asToken?: Token;
72
- readonly returnType?: TypeExpression;
73
- /**
74
- * If this function is enclosed within another function, this will reference that parent function
75
- */
76
- readonly parentFunction?: FunctionExpression;
77
- readonly namespaceName?: NamespacedVariableNameExpression;
78
- readonly parentSymbolTable?: SymbolTable;
79
- constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnType?: TypeExpression,
80
- /**
81
- * If this function is enclosed within another function, this will reference that parent function
82
- */
83
- parentFunction?: FunctionExpression, namespaceName?: NamespacedVariableNameExpression, parentSymbolTable?: SymbolTable);
84
- get range(): Range;
85
- /**
86
- * The range of the function
87
- */
88
- cacheRange(): Range;
89
- private _range;
90
- readonly symbolTable: SymbolTable;
91
- labelStatements: LabelStatement[];
92
- private _returnType;
93
- /**
94
- * The type this function returns
95
- */
96
- getReturnType(): BscType;
56
+ returnTypeExpression?: TypeExpression;
57
+ constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnTypeExpression?: TypeExpression);
58
+ readonly kind = AstNodeKind.FunctionExpression;
97
59
  /**
98
60
  * The list of function calls that are declared within this function scope. This excludes CallExpressions
99
61
  * declared in child functions
@@ -103,42 +65,29 @@ export declare class FunctionExpression extends Expression implements TypedefPro
103
65
  * If this function is part of a FunctionStatement, this will be set. Otherwise this will be undefined
104
66
  */
105
67
  functionStatement?: FunctionStatement;
68
+ getLeadingTrivia(): Token[];
106
69
  /**
107
- * A list of all child functions declared directly within this function
70
+ * The range of the function, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
71
+ * and ending with the last n' in 'end function' or 'b' in 'end sub'
108
72
  */
109
- childFunctionExpressions: FunctionExpression[];
110
- /**
111
- * The range of the function declaration, starting at the 'f' in function or 's' in sub (or the open paren if the keyword is missing),
112
- * and ending with the last character in the returnTypeToken, or the 's' in 'as', or the rightParen
113
- */
114
- get functionDeclarationRange(): Range;
73
+ get range(): Range;
115
74
  transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): any[];
116
- getTypedef(state: BrsTranspileState, name?: Identifier): any[];
75
+ getTypedef(state: BrsTranspileState): SourceNode[];
117
76
  walk(visitor: WalkVisitor, options: WalkOptions): void;
118
- getFunctionType(): TypedFunctionType;
77
+ getType(options: GetTypeOptions): TypedFunctionType;
119
78
  }
120
79
  export declare class FunctionParameterExpression extends Expression {
121
80
  name: Identifier;
122
- private typeInContext;
123
- equalsToken?: Token;
81
+ equalToken?: Token;
124
82
  defaultValue?: Expression;
125
83
  asToken?: Token;
126
- type?: TypeExpression;
127
- readonly namespaceName?: NamespacedVariableNameExpression;
128
- constructor(name: Identifier, typeInContext: BscType, equalsToken?: Token, defaultValue?: Expression, asToken?: Token, type?: TypeExpression, namespaceName?: NamespacedVariableNameExpression);
129
- readonly range: Range;
130
- getType(): BscType;
84
+ typeExpression?: TypeExpression;
85
+ constructor(name: Identifier, equalToken?: Token, defaultValue?: Expression, asToken?: Token, typeExpression?: TypeExpression);
86
+ readonly kind = AstNodeKind.FunctionParameterExpression;
87
+ getType(options: GetTypeOptions): BscType;
88
+ get range(): Range;
131
89
  transpile(state: BrsTranspileState): any[];
132
- walk(visitor: WalkVisitor, options: WalkOptions): void;
133
- get isOptional(): boolean;
134
- }
135
- export declare class NamespacedVariableNameExpression extends Expression {
136
- readonly expression: DottedGetExpression | VariableExpression;
137
- constructor(expression: DottedGetExpression | VariableExpression);
138
- readonly range: Range;
139
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
140
- getNameParts(): string[];
141
- getName(parseMode?: ParseMode): string;
90
+ getTypedef(state: BrsTranspileState): TranspileResult;
142
91
  walk(visitor: WalkVisitor, options: WalkOptions): void;
143
92
  }
144
93
  export declare class DottedGetExpression extends Expression {
@@ -153,9 +102,12 @@ export declare class DottedGetExpression extends Expression {
153
102
  * Can either be `.`, or `?.` for optional chaining
154
103
  */
155
104
  dot: Token);
105
+ readonly kind = AstNodeKind.DottedGetExpression;
156
106
  readonly range: Range;
157
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
107
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
158
108
  walk(visitor: WalkVisitor, options: WalkOptions): void;
109
+ getType(options: GetTypeOptions): BscType;
110
+ getName(parseMode: ParseMode): string;
159
111
  }
160
112
  export declare class XmlAttributeGetExpression extends Expression {
161
113
  readonly obj: Expression;
@@ -169,8 +121,9 @@ export declare class XmlAttributeGetExpression extends Expression {
169
121
  * Can either be `@`, or `?@` for optional chaining
170
122
  */
171
123
  at: Token);
124
+ readonly kind = AstNodeKind.XmlAttributeGetExpression;
172
125
  readonly range: Range;
173
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
126
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
174
127
  walk(visitor: WalkVisitor, options: WalkOptions): void;
175
128
  }
176
129
  export declare class IndexedGetExpression extends Expression {
@@ -187,9 +140,11 @@ export declare class IndexedGetExpression extends Expression {
187
140
  * Can either be `[` or `?[`. If `?.[` is used, this will be `[` and `optionalChainingToken` will be `?.`
188
141
  */
189
142
  openingSquare: Token, closingSquare: Token, questionDotToken?: Token);
143
+ readonly kind = AstNodeKind.IndexedGetExpression;
190
144
  readonly range: Range;
191
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
145
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
192
146
  walk(visitor: WalkVisitor, options: WalkOptions): void;
147
+ getType(options: GetTypeOptions): BscType;
193
148
  }
194
149
  export declare class GroupingExpression extends Expression {
195
150
  readonly tokens: {
@@ -201,19 +156,19 @@ export declare class GroupingExpression extends Expression {
201
156
  left: Token;
202
157
  right: Token;
203
158
  }, expression: Expression);
159
+ readonly kind = AstNodeKind.GroupingExpression;
204
160
  readonly range: Range;
205
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
161
+ transpile(state: BrsTranspileState): TranspileResult;
206
162
  walk(visitor: WalkVisitor, options: WalkOptions): void;
163
+ getType(options: GetTypeOptions): BscType;
207
164
  }
208
165
  export declare class LiteralExpression extends Expression {
209
166
  token: Token;
210
167
  constructor(token: Token);
211
- readonly range: Range;
212
- /**
213
- * The (data) type of this expression
214
- */
215
- type: BscType;
216
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
168
+ readonly kind = AstNodeKind.LiteralExpression;
169
+ get range(): Range;
170
+ getType(options?: GetTypeOptions): DynamicType | import("../types").ObjectType | StringType | import("../types").IntegerType | import("../types").BooleanType | import("../types").FloatType | import("../types").DoubleType | import("../types").LongIntegerType | VoidType | import("../types/FunctionType").FunctionType;
171
+ transpile(state: BrsTranspileState): SourceNode[];
217
172
  walk(visitor: WalkVisitor, options: WalkOptions): void;
218
173
  }
219
174
  /**
@@ -227,8 +182,9 @@ export declare class EscapedCharCodeLiteralExpression extends Expression {
227
182
  constructor(token: Token & {
228
183
  charCode: number;
229
184
  });
185
+ readonly kind = AstNodeKind.EscapedCharCodeLiteralExpression;
230
186
  readonly range: Range;
231
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
187
+ transpile(state: BrsTranspileState): SourceNode[];
232
188
  walk(visitor: WalkVisitor, options: WalkOptions): void;
233
189
  }
234
190
  export declare class ArrayLiteralExpression extends Expression {
@@ -237,60 +193,69 @@ export declare class ArrayLiteralExpression extends Expression {
237
193
  readonly close: Token;
238
194
  readonly hasSpread: boolean;
239
195
  constructor(elements: Array<Expression | CommentStatement>, open: Token, close: Token, hasSpread?: boolean);
196
+ readonly kind = AstNodeKind.ArrayLiteralExpression;
240
197
  readonly range: Range;
241
198
  transpile(state: BrsTranspileState): any[];
242
199
  walk(visitor: WalkVisitor, options: WalkOptions): void;
200
+ getType(options: GetTypeOptions): BscType;
243
201
  }
244
202
  export declare class AAMemberExpression extends Expression {
245
203
  keyToken: Token;
246
204
  colonToken: Token;
247
205
  /** The expression evaluated to determine the member's initial value. */
248
206
  value: Expression;
249
- type: BscType;
250
207
  constructor(keyToken: Token, colonToken: Token,
251
208
  /** The expression evaluated to determine the member's initial value. */
252
- value: Expression, type: BscType);
253
- readonly range: Range;
209
+ value: Expression);
210
+ readonly kind = AstNodeKind.AAMemberExpression;
211
+ range: Range;
254
212
  commaToken?: Token;
255
213
  transpile(state: BrsTranspileState): any[];
256
214
  walk(visitor: WalkVisitor, options: WalkOptions): void;
215
+ getType(options: GetTypeOptions): BscType;
257
216
  }
258
- export declare class AALiteralExpression extends Expression implements SymbolContainer {
217
+ export declare class AALiteralExpression extends Expression {
259
218
  readonly elements: Array<AAMemberExpression | CommentStatement>;
260
219
  readonly open: Token;
261
220
  readonly close: Token;
262
- readonly functionExpression: FunctionExpression;
263
- constructor(elements: Array<AAMemberExpression | CommentStatement>, open: Token, close: Token, functionExpression: FunctionExpression);
221
+ constructor(elements: Array<AAMemberExpression | CommentStatement>, open: Token, close: Token);
222
+ readonly kind = AstNodeKind.AALiteralExpression;
264
223
  readonly range: Range;
265
- readonly symbolTable: SymbolTable;
266
- readonly memberTable: SymbolTable;
267
- buildSymbolTable(): void;
268
224
  transpile(state: BrsTranspileState): any[];
269
225
  walk(visitor: WalkVisitor, options: WalkOptions): void;
226
+ getType(options: GetTypeOptions): BscType;
270
227
  }
271
228
  export declare class UnaryExpression extends Expression {
272
229
  operator: Token;
273
230
  right: Expression;
274
231
  constructor(operator: Token, right: Expression);
232
+ readonly kind = AstNodeKind.UnaryExpression;
275
233
  readonly range: Range;
276
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
234
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
277
235
  walk(visitor: WalkVisitor, options: WalkOptions): void;
236
+ getType(options: GetTypeOptions): BscType;
278
237
  }
279
238
  export declare class VariableExpression extends Expression {
280
- name: Identifier;
281
- namespaceName: NamespacedVariableNameExpression;
282
- constructor(name: Identifier, namespaceName: NamespacedVariableNameExpression);
239
+ readonly name: Identifier;
240
+ constructor(name: Identifier);
241
+ readonly kind = AstNodeKind.VariableExpression;
283
242
  readonly range: Range;
284
243
  getName(parseMode: ParseMode): string;
285
244
  transpile(state: BrsTranspileState): any[];
286
245
  walk(visitor: WalkVisitor, options: WalkOptions): void;
246
+ getType(options: GetTypeOptions): BscType;
287
247
  }
288
248
  export declare class SourceLiteralExpression extends Expression {
289
249
  readonly token: Token;
290
250
  constructor(token: Token);
291
251
  readonly range: Range;
252
+ readonly kind = AstNodeKind.SourceLiteralExpression;
253
+ /**
254
+ * Find the index of the function in its parent
255
+ */
256
+ private findFunctionIndex;
292
257
  private getFunctionName;
293
- transpile(state: BrsTranspileState): import("source-map").SourceNode[];
258
+ transpile(state: BrsTranspileState): SourceNode[];
294
259
  walk(visitor: WalkVisitor, options: WalkOptions): void;
295
260
  }
296
261
  /**
@@ -302,14 +267,15 @@ export declare class NewExpression extends Expression {
302
267
  readonly newKeyword: Token;
303
268
  readonly call: CallExpression;
304
269
  constructor(newKeyword: Token, call: CallExpression);
270
+ readonly kind = AstNodeKind.NewExpression;
305
271
  readonly range: Range;
306
272
  /**
307
273
  * The name of the class to initialize (with optional namespace prefixed)
308
274
  */
309
- get className(): NamespacedVariableNameExpression;
310
- get namespaceName(): NamespacedVariableNameExpression;
311
- transpile(state: BrsTranspileState): any[];
275
+ get className(): DottedGetExpression | VariableExpression;
276
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
312
277
  walk(visitor: WalkVisitor, options: WalkOptions): void;
278
+ getType(options: GetTypeOptions): any;
313
279
  }
314
280
  export declare class CallfuncExpression extends Expression {
315
281
  readonly callee: Expression;
@@ -319,9 +285,11 @@ export declare class CallfuncExpression extends Expression {
319
285
  readonly args: Expression[];
320
286
  readonly closingParen: Token;
321
287
  constructor(callee: Expression, operator: Token, methodName: Identifier, openingParen: Token, args: Expression[], closingParen: Token);
288
+ readonly kind = AstNodeKind.CallfuncExpression;
322
289
  readonly range: Range;
323
290
  transpile(state: BrsTranspileState): any[];
324
291
  walk(visitor: WalkVisitor, options: WalkOptions): void;
292
+ getType(options: GetTypeOptions): BscType;
325
293
  }
326
294
  /**
327
295
  * Since template strings can contain newlines, we need to concatenate multiple strings together with chr() calls.
@@ -330,6 +298,7 @@ export declare class CallfuncExpression extends Expression {
330
298
  export declare class TemplateStringQuasiExpression extends Expression {
331
299
  readonly expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>;
332
300
  constructor(expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>);
301
+ readonly kind = AstNodeKind.TemplateStringQuasiExpression;
333
302
  readonly range: Range;
334
303
  transpile(state: BrsTranspileState, skipEmptyStrings?: boolean): any[];
335
304
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -340,7 +309,9 @@ export declare class TemplateStringExpression extends Expression {
340
309
  readonly expressions: Expression[];
341
310
  readonly closingBacktick: Token;
342
311
  constructor(openingBacktick: Token, quasis: TemplateStringQuasiExpression[], expressions: Expression[], closingBacktick: Token);
312
+ readonly kind = AstNodeKind.TemplateStringExpression;
343
313
  readonly range: Range;
314
+ getType(options: GetTypeOptions): StringType;
344
315
  transpile(state: BrsTranspileState): any[];
345
316
  walk(visitor: WalkVisitor, options: WalkOptions): void;
346
317
  }
@@ -351,6 +322,7 @@ export declare class TaggedTemplateStringExpression extends Expression {
351
322
  readonly expressions: Expression[];
352
323
  readonly closingBacktick: Token;
353
324
  constructor(tagName: Identifier, openingBacktick: Token, quasis: TemplateStringQuasiExpression[], expressions: Expression[], closingBacktick: Token);
325
+ readonly kind = AstNodeKind.TaggedTemplateStringExpression;
354
326
  readonly range: Range;
355
327
  transpile(state: BrsTranspileState): any[];
356
328
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -359,9 +331,8 @@ export declare class AnnotationExpression extends Expression {
359
331
  readonly atToken: Token;
360
332
  readonly nameToken: Token;
361
333
  constructor(atToken: Token, nameToken: Token);
334
+ readonly kind = AstNodeKind.AnnotationExpression;
362
335
  get range(): Range;
363
- cacheRange(): Range;
364
- private _range;
365
336
  name: string;
366
337
  call: CallExpression;
367
338
  /**
@@ -369,9 +340,10 @@ export declare class AnnotationExpression extends Expression {
369
340
  * @param strict If false, keep Expression objects not corresponding to JS types
370
341
  */
371
342
  getArguments(strict?: boolean): ExpressionValue[];
343
+ getLeadingTrivia(): Token[];
372
344
  transpile(state: BrsTranspileState): any[];
373
345
  walk(visitor: WalkVisitor, options: WalkOptions): void;
374
- getTypedef(state: BrsTranspileState): any[];
346
+ getTypedef(state: BrsTranspileState): (string | SourceNode)[];
375
347
  }
376
348
  export declare class TernaryExpression extends Expression {
377
349
  readonly test: Expression;
@@ -380,7 +352,8 @@ export declare class TernaryExpression extends Expression {
380
352
  readonly colonToken?: Token;
381
353
  readonly alternate?: Expression;
382
354
  constructor(test: Expression, questionMarkToken: Token, consequent?: Expression, colonToken?: Token, alternate?: Expression);
383
- readonly range: Range;
355
+ readonly kind = AstNodeKind.TernaryExpression;
356
+ range: Range;
384
357
  transpile(state: BrsTranspileState): any[];
385
358
  walk(visitor: WalkVisitor, options: WalkOptions): void;
386
359
  }
@@ -389,6 +362,7 @@ export declare class NullCoalescingExpression extends Expression {
389
362
  questionQuestionToken: Token;
390
363
  alternate: Expression;
391
364
  constructor(consequent: Expression, questionQuestionToken: Token, alternate: Expression);
365
+ readonly kind = AstNodeKind.NullCoalescingExpression;
392
366
  readonly range: Range;
393
367
  transpile(state: BrsTranspileState): any[];
394
368
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -400,68 +374,53 @@ export declare class RegexLiteralExpression extends Expression {
400
374
  constructor(tokens: {
401
375
  regexLiteral: Token;
402
376
  });
403
- readonly range: Range;
377
+ readonly kind = AstNodeKind.RegexLiteralExpression;
378
+ get range(): Range;
404
379
  transpile(state: BrsTranspileState): TranspileResult;
405
380
  walk(visitor: WalkVisitor, options: WalkOptions): void;
406
381
  }
407
- export declare class TypeExpression extends Expression {
408
- private tokens;
409
- namespaceName?: NamespacedVariableNameExpression;
410
- constructor(tokens: {
411
- type?: Token;
412
- }, namespaceName?: NamespacedVariableNameExpression);
413
- readonly range: Range;
414
- private _type;
415
- /**
416
- * The this TypeExpression refers to
417
- */
418
- get type(): BscType;
419
- /**
420
- * Derive a BscType from the type token
421
- * Can deal with multiple brackets to make multidimensional arrays, eg. float[][]
422
- * Defaults to `DynamicType`
423
- */
424
- getType(parseMode?: ParseMode): DynamicType | BscType | import("../types/FloatType").FloatType | import("../types/IntegerType").IntegerType | import("../types/DoubleType").DoubleType | import("../types/LongIntegerType").LongIntegerType | import("../types/StringType").StringType | import("../types/BooleanType").BooleanType | import("../types/FunctionType").FunctionType | import("../types/InvalidType").InvalidType | VoidType;
382
+ declare type ExpressionValue = string | number | boolean | Expression | ExpressionValue[] | {
383
+ [key: string]: ExpressionValue;
384
+ };
385
+ export declare class TypeExpression extends Expression implements TypedefProvider {
425
386
  /**
426
- * Is this a valid, (eg. known) type?
387
+ * The standard AST expression that represents the type for this TypeExpression.
427
388
  */
428
- isValidType(parseMode?: ParseMode): boolean;
389
+ expression: Expression;
390
+ constructor(
429
391
  /**
430
- * Gives a human readable string that says the type
431
- * @returns text to display to show the type
392
+ * The standard AST expression that represents the type for this TypeExpression.
432
393
  */
433
- getText(): string;
394
+ expression: Expression);
395
+ readonly kind = AstNodeKind.TypeExpression;
396
+ range: Range;
434
397
  transpile(state: BrsTranspileState): TranspileResult;
435
398
  walk(visitor: WalkVisitor, options: WalkOptions): void;
399
+ getType(options: GetTypeOptions): BscType;
400
+ getTypedef(state: TranspileState): (string | SourceNode)[];
401
+ getName(parseMode?: ParseMode): string;
402
+ getNameParts(): string[];
436
403
  }
437
- export declare class ArrayTypeExpression extends TypeExpression {
438
- innerTypes: TypeExpression[];
439
- private bracketTokens;
440
- namespaceName?: NamespacedVariableNameExpression;
441
- constructor(innerTypes: TypeExpression[], // this is an array so that in the future when we support union types
442
- bracketTokens: {
443
- leftBracket?: Token;
444
- rightBracket?: Token;
445
- }, namespaceName?: NamespacedVariableNameExpression);
446
- readonly range: Range;
447
- private get defaultTypeExpression();
448
- /**
449
- * Derive a BscType from the type token
450
- * Returns an array type with the inner types based on the inner type expressions
451
- */
452
- getType(parseMode?: ParseMode): ArrayType;
453
- /**
454
- * Is this a valid, (eg. known) type?
455
- */
456
- isValidType(parseMode?: ParseMode): boolean;
457
- /**
458
- * Gives a human readable string that says the type
459
- * @returns text to display to show the type
460
- */
461
- getText(): string;
404
+ export declare class TypeCastExpression extends Expression {
405
+ obj: Expression;
406
+ asToken?: Token;
407
+ typeExpression?: TypeExpression;
408
+ constructor(obj: Expression, asToken?: Token, typeExpression?: TypeExpression);
409
+ readonly kind = AstNodeKind.TypeCastExpression;
410
+ range: Range;
411
+ transpile(state: BrsTranspileState): TranspileResult;
462
412
  walk(visitor: WalkVisitor, options: WalkOptions): void;
413
+ getType(options: GetTypeOptions): BscType;
414
+ }
415
+ export declare class TypedArrayExpression extends Expression {
416
+ innerType: Expression;
417
+ leftBracket: Token;
418
+ rightBracket: Token;
419
+ constructor(innerType: Expression, leftBracket: Token, rightBracket: Token);
420
+ readonly kind = AstNodeKind.TypedArrayExpression;
421
+ range: Range;
422
+ transpile(state: BrsTranspileState): TranspileResult;
423
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
424
+ getType(options: GetTypeOptions): BscType;
463
425
  }
464
- declare type ExpressionValue = string | number | boolean | Expression | ExpressionValue[] | {
465
- [key: string]: ExpressionValue;
466
- };
467
426
  export {};