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