brighterscript 0.66.0-alpha.8 → 0.67.0

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 (472) hide show
  1. package/CHANGELOG.md +120 -71
  2. package/README.md +14 -418
  3. package/dist/BsConfig.d.ts +25 -2
  4. package/dist/Cache.js +3 -3
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CodeActionUtil.d.ts +3 -3
  7. package/dist/CodeActionUtil.js.map +1 -1
  8. package/dist/CommentFlagProcessor.d.ts +3 -4
  9. package/dist/CommentFlagProcessor.js +4 -3
  10. package/dist/CommentFlagProcessor.js.map +1 -1
  11. package/dist/DependencyGraph.js +8 -8
  12. package/dist/DependencyGraph.js.map +1 -1
  13. package/dist/DiagnosticFilterer.d.ts +8 -4
  14. package/dist/DiagnosticFilterer.js +71 -38
  15. package/dist/DiagnosticFilterer.js.map +1 -1
  16. package/dist/DiagnosticMessages.d.ts +15 -36
  17. package/dist/DiagnosticMessages.js +15 -61
  18. package/dist/DiagnosticMessages.js.map +1 -1
  19. package/dist/DiagnosticSeverityAdjuster.js +3 -0
  20. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  21. package/dist/FunctionScope.d.ts +2 -3
  22. package/dist/FunctionScope.js +0 -3
  23. package/dist/FunctionScope.js.map +1 -1
  24. package/dist/LanguageServer.d.ts +1 -2
  25. package/dist/LanguageServer.js +29 -35
  26. package/dist/LanguageServer.js.map +1 -1
  27. package/dist/Logger.d.ts +5 -9
  28. package/dist/Logger.js +18 -22
  29. package/dist/Logger.js.map +1 -1
  30. package/dist/PluginInterface.d.ts +13 -15
  31. package/dist/PluginInterface.js +16 -70
  32. package/dist/PluginInterface.js.map +1 -1
  33. package/dist/Program.d.ts +105 -138
  34. package/dist/Program.js +479 -702
  35. package/dist/Program.js.map +1 -1
  36. package/dist/ProgramBuilder.d.ts +8 -19
  37. package/dist/ProgramBuilder.js +82 -87
  38. package/dist/ProgramBuilder.js.map +1 -1
  39. package/dist/Scope.d.ts +56 -46
  40. package/dist/Scope.js +281 -217
  41. package/dist/Scope.js.map +1 -1
  42. package/dist/Stopwatch.js +1 -1
  43. package/dist/Stopwatch.js.map +1 -1
  44. package/dist/SymbolTable.d.ts +12 -68
  45. package/dist/SymbolTable.js +28 -213
  46. package/dist/SymbolTable.js.map +1 -1
  47. package/dist/XmlScope.d.ts +5 -7
  48. package/dist/XmlScope.js +36 -76
  49. package/dist/XmlScope.js.map +1 -1
  50. package/dist/astUtils/{Editor.d.ts → AstEditor.d.ts} +1 -6
  51. package/dist/astUtils/{Editor.js → AstEditor.js} +3 -9
  52. package/dist/astUtils/AstEditor.js.map +1 -0
  53. package/dist/astUtils/{Editor.spec.js → AstEditor.spec.js} +6 -10
  54. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  55. package/dist/astUtils/creators.d.ts +8 -19
  56. package/dist/astUtils/creators.js +22 -54
  57. package/dist/astUtils/creators.js.map +1 -1
  58. package/dist/astUtils/creators.spec.js +0 -10
  59. package/dist/astUtils/creators.spec.js.map +1 -1
  60. package/dist/astUtils/reflection.d.ts +45 -81
  61. package/dist/astUtils/reflection.js +157 -220
  62. package/dist/astUtils/reflection.js.map +1 -1
  63. package/dist/astUtils/reflection.spec.js +19 -96
  64. package/dist/astUtils/reflection.spec.js.map +1 -1
  65. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  66. package/dist/astUtils/visitors.d.ts +14 -18
  67. package/dist/astUtils/visitors.js +9 -22
  68. package/dist/astUtils/visitors.js.map +1 -1
  69. package/dist/astUtils/visitors.spec.js +9 -62
  70. package/dist/astUtils/visitors.spec.js.map +1 -1
  71. package/dist/astUtils/xml.d.ts +9 -9
  72. package/dist/astUtils/xml.js +6 -6
  73. package/dist/astUtils/xml.js.map +1 -1
  74. package/dist/bscPlugin/BscPlugin.d.ts +8 -11
  75. package/dist/bscPlugin/BscPlugin.js +21 -29
  76. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  77. package/dist/bscPlugin/CallExpressionInfo.d.ts +6 -5
  78. package/dist/bscPlugin/CallExpressionInfo.js +2 -2
  79. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  80. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +11 -11
  81. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  82. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
  83. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  84. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -49
  85. package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -424
  86. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  87. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  88. package/dist/bscPlugin/definition/DefinitionProvider.js +200 -0
  89. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  90. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  91. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  92. package/dist/bscPlugin/hover/HoverProcessor.d.ts +3 -7
  93. package/dist/bscPlugin/hover/HoverProcessor.js +88 -128
  94. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  95. package/dist/bscPlugin/hover/HoverProcessor.spec.js +24 -336
  96. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  97. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  98. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  99. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  100. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  101. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  102. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +0 -1
  103. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +5 -49
  104. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  105. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -22
  106. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  107. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  108. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  109. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  110. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +290 -0
  111. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  112. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  113. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  114. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  115. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  116. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  117. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  118. package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
  119. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  120. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.d.ts → BrsFilePreTranspileProcessor.d.ts} +2 -4
  121. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.js → BrsFilePreTranspileProcessor.js} +15 -36
  122. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
  123. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +46 -0
  124. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
  125. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
  126. package/dist/bscPlugin/validation/BrsFileValidator.js +30 -41
  127. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  128. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +2 -2
  129. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  130. package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
  131. package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
  132. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
  133. package/dist/bscPlugin/validation/ScopeValidator.d.ts +6 -28
  134. package/dist/bscPlugin/validation/ScopeValidator.js +166 -387
  135. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  136. package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
  137. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  138. package/dist/diagnosticUtils.d.ts +2 -3
  139. package/dist/diagnosticUtils.js +5 -5
  140. package/dist/diagnosticUtils.js.map +1 -1
  141. package/dist/examples/plugins/removePrint.js +1 -1
  142. package/dist/examples/plugins/removePrint.js.map +1 -1
  143. package/dist/files/BrsFile.Class.spec.js +143 -114
  144. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  145. package/dist/files/BrsFile.d.ts +61 -83
  146. package/dist/files/BrsFile.js +552 -607
  147. package/dist/files/BrsFile.js.map +1 -1
  148. package/dist/files/BrsFile.spec.js +1365 -1201
  149. package/dist/files/BrsFile.spec.js.map +1 -1
  150. package/dist/files/XmlFile.d.ts +28 -56
  151. package/dist/files/XmlFile.js +103 -89
  152. package/dist/files/XmlFile.js.map +1 -1
  153. package/dist/files/XmlFile.spec.js +179 -122
  154. package/dist/files/XmlFile.spec.js.map +1 -1
  155. package/dist/files/tests/imports.spec.js +19 -29
  156. package/dist/files/tests/imports.spec.js.map +1 -1
  157. package/dist/files/tests/optionalChaning.spec.js +14 -14
  158. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  159. package/dist/globalCallables.js +83 -88
  160. package/dist/globalCallables.js.map +1 -1
  161. package/dist/index.d.ts +1 -9
  162. package/dist/index.js +1 -9
  163. package/dist/index.js.map +1 -1
  164. package/dist/interfaces.d.ts +173 -423
  165. package/dist/interfaces.js +0 -24
  166. package/dist/interfaces.js.map +1 -1
  167. package/dist/lexer/Lexer.d.ts +9 -15
  168. package/dist/lexer/Lexer.js +35 -46
  169. package/dist/lexer/Lexer.js.map +1 -1
  170. package/dist/lexer/Lexer.spec.js +48 -40
  171. package/dist/lexer/Lexer.spec.js.map +1 -1
  172. package/dist/lexer/Token.d.ts +1 -5
  173. package/dist/lexer/Token.js +1 -1
  174. package/dist/lexer/Token.js.map +1 -1
  175. package/dist/lexer/TokenKind.d.ts +0 -6
  176. package/dist/lexer/TokenKind.js +2 -14
  177. package/dist/lexer/TokenKind.js.map +1 -1
  178. package/dist/logging.d.ts +9 -0
  179. package/dist/logging.js +16 -0
  180. package/dist/logging.js.map +1 -0
  181. package/dist/parser/AstNode.d.ts +6 -90
  182. package/dist/parser/AstNode.js +5 -96
  183. package/dist/parser/AstNode.js.map +1 -1
  184. package/dist/parser/AstNode.spec.js.map +1 -1
  185. package/dist/parser/BrsTranspileState.d.ts +3 -4
  186. package/dist/parser/BrsTranspileState.js +2 -3
  187. package/dist/parser/BrsTranspileState.js.map +1 -1
  188. package/dist/parser/Expression.d.ts +114 -137
  189. package/dist/parser/Expression.js +244 -373
  190. package/dist/parser/Expression.js.map +1 -1
  191. package/dist/parser/Parser.Class.spec.js +19 -46
  192. package/dist/parser/Parser.Class.spec.js.map +1 -1
  193. package/dist/parser/Parser.d.ts +18 -14
  194. package/dist/parser/Parser.js +196 -175
  195. package/dist/parser/Parser.js.map +1 -1
  196. package/dist/parser/Parser.spec.d.ts +0 -2
  197. package/dist/parser/Parser.spec.js +10 -674
  198. package/dist/parser/Parser.spec.js.map +1 -1
  199. package/dist/parser/SGParser.d.ts +6 -44
  200. package/dist/parser/SGParser.js +198 -194
  201. package/dist/parser/SGParser.js.map +1 -1
  202. package/dist/parser/SGParser.spec.js +11 -14
  203. package/dist/parser/SGParser.spec.js.map +1 -1
  204. package/dist/parser/SGTypes.d.ts +52 -280
  205. package/dist/parser/SGTypes.js +185 -562
  206. package/dist/parser/SGTypes.js.map +1 -1
  207. package/dist/parser/Statement.d.ts +140 -172
  208. package/dist/parser/Statement.js +201 -337
  209. package/dist/parser/Statement.js.map +1 -1
  210. package/dist/parser/Statement.spec.js.map +1 -1
  211. package/dist/parser/TranspileState.d.ts +3 -2
  212. package/dist/parser/TranspileState.js +8 -10
  213. package/dist/parser/TranspileState.js.map +1 -1
  214. package/dist/parser/tests/Parser.spec.js +3 -5
  215. package/dist/parser/tests/Parser.spec.js.map +1 -1
  216. package/dist/parser/tests/controlFlow/For.spec.js +8 -16
  217. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  218. package/dist/parser/tests/controlFlow/ForEach.spec.js +6 -12
  219. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  220. package/dist/parser/tests/controlFlow/While.spec.js +4 -8
  221. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  222. package/dist/parser/tests/expression/Call.spec.js +4 -4
  223. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  224. package/dist/parser/tests/expression/Indexing.spec.js +25 -0
  225. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  226. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +73 -29
  227. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  228. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  229. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  230. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  231. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  232. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +47 -35
  233. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  234. package/dist/parser/tests/expression/TernaryExpression.spec.js +83 -36
  235. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  236. package/dist/parser/tests/expression/UnaryExpression.spec.js +2 -2
  237. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -1
  238. package/dist/parser/tests/statement/ConstStatement.spec.js +26 -27
  239. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  240. package/dist/parser/tests/statement/Continue.spec.js +2 -2
  241. package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
  242. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  243. package/dist/parser/tests/statement/Enum.spec.js +393 -90
  244. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  245. package/dist/parser/tests/statement/For.spec.js +6 -6
  246. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  247. package/dist/parser/tests/statement/ForEach.spec.js +4 -4
  248. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  249. package/dist/parser/tests/statement/Function.spec.js +1 -1
  250. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  251. package/dist/parser/tests/statement/InterfaceStatement.spec.js +18 -18
  252. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  253. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  254. package/dist/parser/tests/statement/PrintStatement.spec.js +13 -16
  255. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  256. package/dist/parser/tests/statement/ReturnStatement.spec.js +3 -5
  257. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  258. package/dist/parser/tests/statement/Set.spec.js +13 -26
  259. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  260. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  261. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  262. package/dist/preprocessor/Chunk.js +1 -2
  263. package/dist/preprocessor/Chunk.js.map +1 -1
  264. package/dist/preprocessor/Preprocessor.d.ts +3 -4
  265. package/dist/preprocessor/Preprocessor.js +3 -3
  266. package/dist/preprocessor/Preprocessor.js.map +1 -1
  267. package/dist/preprocessor/PreprocessorParser.js +8 -1
  268. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  269. package/dist/roku-types/data.json +293 -243
  270. package/dist/roku-types/index.d.ts +38 -17
  271. package/dist/types/ArrayType.d.ts +4 -9
  272. package/dist/types/ArrayType.js +24 -72
  273. package/dist/types/ArrayType.js.map +1 -1
  274. package/dist/types/ArrayType.spec.js +10 -39
  275. package/dist/types/ArrayType.spec.js.map +1 -1
  276. package/dist/types/BooleanType.d.ts +4 -8
  277. package/dist/types/BooleanType.js +8 -19
  278. package/dist/types/BooleanType.js.map +1 -1
  279. package/dist/types/BooleanType.spec.js +3 -9
  280. package/dist/types/BooleanType.spec.js.map +1 -1
  281. package/dist/types/BscType.d.ts +2 -29
  282. package/dist/types/BscType.js +0 -113
  283. package/dist/types/BscType.js.map +1 -1
  284. package/dist/types/CustomType.d.ts +9 -0
  285. package/dist/types/CustomType.js +32 -0
  286. package/dist/types/CustomType.js.map +1 -0
  287. package/dist/types/DoubleType.d.ts +4 -8
  288. package/dist/types/DoubleType.js +20 -23
  289. package/dist/types/DoubleType.js.map +1 -1
  290. package/dist/types/DoubleType.spec.js +3 -11
  291. package/dist/types/DoubleType.spec.js.map +1 -1
  292. package/dist/types/DynamicType.d.ts +3 -9
  293. package/dist/types/DynamicType.js +2 -18
  294. package/dist/types/DynamicType.js.map +1 -1
  295. package/dist/types/DynamicType.spec.js +4 -15
  296. package/dist/types/DynamicType.spec.js.map +1 -1
  297. package/dist/types/FloatType.d.ts +4 -8
  298. package/dist/types/FloatType.js +20 -23
  299. package/dist/types/FloatType.js.map +1 -1
  300. package/dist/types/FloatType.spec.js +3 -3
  301. package/dist/types/FloatType.spec.js.map +1 -1
  302. package/dist/types/FunctionType.d.ts +20 -10
  303. package/dist/types/FunctionType.js +52 -27
  304. package/dist/types/FunctionType.js.map +1 -1
  305. package/dist/types/FunctionType.spec.js +23 -0
  306. package/dist/types/FunctionType.spec.js.map +1 -0
  307. package/dist/types/IntegerType.d.ts +4 -8
  308. package/dist/types/IntegerType.js +20 -23
  309. package/dist/types/IntegerType.js.map +1 -1
  310. package/dist/types/IntegerType.spec.js +3 -7
  311. package/dist/types/IntegerType.spec.js.map +1 -1
  312. package/dist/types/InterfaceType.d.ts +10 -12
  313. package/dist/types/InterfaceType.js +48 -23
  314. package/dist/types/InterfaceType.js.map +1 -1
  315. package/dist/types/InterfaceType.spec.js +45 -82
  316. package/dist/types/InterfaceType.spec.js.map +1 -1
  317. package/dist/types/InvalidType.d.ts +4 -7
  318. package/dist/types/InvalidType.js +8 -18
  319. package/dist/types/InvalidType.js.map +1 -1
  320. package/dist/types/InvalidType.spec.js +3 -7
  321. package/dist/types/InvalidType.spec.js.map +1 -1
  322. package/dist/types/LongIntegerType.d.ts +4 -8
  323. package/dist/types/LongIntegerType.js +20 -23
  324. package/dist/types/LongIntegerType.js.map +1 -1
  325. package/dist/types/LongIntegerType.spec.js +3 -9
  326. package/dist/types/LongIntegerType.spec.js.map +1 -1
  327. package/dist/types/ObjectType.d.ts +4 -8
  328. package/dist/types/ObjectType.js +7 -21
  329. package/dist/types/ObjectType.js.map +1 -1
  330. package/dist/types/ObjectType.spec.js +2 -2
  331. package/dist/types/ObjectType.spec.js.map +1 -1
  332. package/dist/types/StringType.d.ts +4 -11
  333. package/dist/types/StringType.js +8 -23
  334. package/dist/types/StringType.js.map +1 -1
  335. package/dist/types/StringType.spec.js +2 -2
  336. package/dist/types/StringType.spec.js.map +1 -1
  337. package/dist/types/UninitializedType.d.ts +3 -7
  338. package/dist/types/UninitializedType.js +3 -14
  339. package/dist/types/UninitializedType.js.map +1 -1
  340. package/dist/types/VoidType.d.ts +4 -8
  341. package/dist/types/VoidType.js +8 -18
  342. package/dist/types/VoidType.js.map +1 -1
  343. package/dist/types/VoidType.spec.js +2 -2
  344. package/dist/types/VoidType.spec.js.map +1 -1
  345. package/dist/util.d.ts +43 -104
  346. package/dist/util.js +243 -640
  347. package/dist/util.js.map +1 -1
  348. package/dist/validators/ClassValidator.d.ts +6 -1
  349. package/dist/validators/ClassValidator.js +61 -20
  350. package/dist/validators/ClassValidator.js.map +1 -1
  351. package/package.json +13 -12
  352. package/dist/ActionPipeline.d.ts +0 -10
  353. package/dist/ActionPipeline.js +0 -40
  354. package/dist/ActionPipeline.js.map +0 -1
  355. package/dist/AstValidationSegmenter.d.ts +0 -25
  356. package/dist/AstValidationSegmenter.js +0 -150
  357. package/dist/AstValidationSegmenter.js.map +0 -1
  358. package/dist/CacheVerifier.d.ts +0 -7
  359. package/dist/CacheVerifier.js +0 -20
  360. package/dist/CacheVerifier.js.map +0 -1
  361. package/dist/astUtils/Editor.js.map +0 -1
  362. package/dist/astUtils/Editor.spec.js.map +0 -1
  363. package/dist/bscPlugin/FileWriter.d.ts +0 -6
  364. package/dist/bscPlugin/FileWriter.js +0 -24
  365. package/dist/bscPlugin/FileWriter.js.map +0 -1
  366. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -1658
  367. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
  368. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +0 -9
  369. package/dist/bscPlugin/fileProviders/FileProvider.js +0 -51
  370. package/dist/bscPlugin/fileProviders/FileProvider.js.map +0 -1
  371. package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -19
  372. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
  373. package/dist/bscPlugin/serialize/BslibManager.d.ts +0 -9
  374. package/dist/bscPlugin/serialize/BslibManager.js +0 -40
  375. package/dist/bscPlugin/serialize/BslibManager.js.map +0 -1
  376. package/dist/bscPlugin/serialize/FileSerializer.d.ts +0 -9
  377. package/dist/bscPlugin/serialize/FileSerializer.js +0 -72
  378. package/dist/bscPlugin/serialize/FileSerializer.js.map +0 -1
  379. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +0 -1
  380. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -41
  381. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
  382. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +0 -11
  383. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +0 -53
  384. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +0 -1
  385. package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -2004
  386. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
  387. package/dist/files/AssetFile.d.ts +0 -26
  388. package/dist/files/AssetFile.js +0 -26
  389. package/dist/files/AssetFile.js.map +0 -1
  390. package/dist/files/Factory.d.ts +0 -25
  391. package/dist/files/Factory.js +0 -22
  392. package/dist/files/Factory.js.map +0 -1
  393. package/dist/files/File.d.ts +0 -106
  394. package/dist/files/File.js +0 -16
  395. package/dist/files/File.js.map +0 -1
  396. package/dist/files/LazyFileData.d.ts +0 -20
  397. package/dist/files/LazyFileData.js +0 -54
  398. package/dist/files/LazyFileData.js.map +0 -1
  399. package/dist/files/LazyFileData.spec.js +0 -27
  400. package/dist/files/LazyFileData.spec.js.map +0 -1
  401. package/dist/parser/tests/expression/TypeExpression.spec.js +0 -127
  402. package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
  403. package/dist/types/AssociativeArrayType.d.ts +0 -11
  404. package/dist/types/AssociativeArrayType.js +0 -52
  405. package/dist/types/AssociativeArrayType.js.map +0 -1
  406. package/dist/types/BaseFunctionType.d.ts +0 -9
  407. package/dist/types/BaseFunctionType.js +0 -25
  408. package/dist/types/BaseFunctionType.js.map +0 -1
  409. package/dist/types/BscTypeKind.d.ts +0 -25
  410. package/dist/types/BscTypeKind.js +0 -30
  411. package/dist/types/BscTypeKind.js.map +0 -1
  412. package/dist/types/BuiltInInterfaceAdder.d.ts +0 -23
  413. package/dist/types/BuiltInInterfaceAdder.js +0 -160
  414. package/dist/types/BuiltInInterfaceAdder.js.map +0 -1
  415. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
  416. package/dist/types/BuiltInInterfaceAdder.spec.js +0 -116
  417. package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
  418. package/dist/types/ClassType.d.ts +0 -17
  419. package/dist/types/ClassType.js +0 -58
  420. package/dist/types/ClassType.js.map +0 -1
  421. package/dist/types/ClassType.spec.d.ts +0 -1
  422. package/dist/types/ClassType.spec.js +0 -77
  423. package/dist/types/ClassType.spec.js.map +0 -1
  424. package/dist/types/ComponentType.d.ts +0 -26
  425. package/dist/types/ComponentType.js +0 -83
  426. package/dist/types/ComponentType.js.map +0 -1
  427. package/dist/types/EnumType.d.ts +0 -40
  428. package/dist/types/EnumType.js +0 -81
  429. package/dist/types/EnumType.js.map +0 -1
  430. package/dist/types/EnumType.spec.d.ts +0 -1
  431. package/dist/types/EnumType.spec.js +0 -33
  432. package/dist/types/EnumType.spec.js.map +0 -1
  433. package/dist/types/InheritableType.d.ts +0 -28
  434. package/dist/types/InheritableType.js +0 -152
  435. package/dist/types/InheritableType.js.map +0 -1
  436. package/dist/types/NamespaceType.d.ts +0 -12
  437. package/dist/types/NamespaceType.js +0 -28
  438. package/dist/types/NamespaceType.js.map +0 -1
  439. package/dist/types/ReferenceType.d.ts +0 -63
  440. package/dist/types/ReferenceType.js +0 -423
  441. package/dist/types/ReferenceType.js.map +0 -1
  442. package/dist/types/ReferenceType.spec.d.ts +0 -1
  443. package/dist/types/ReferenceType.spec.js +0 -137
  444. package/dist/types/ReferenceType.spec.js.map +0 -1
  445. package/dist/types/TypedFunctionType.d.ts +0 -33
  446. package/dist/types/TypedFunctionType.js +0 -106
  447. package/dist/types/TypedFunctionType.js.map +0 -1
  448. package/dist/types/TypedFunctionType.spec.d.ts +0 -1
  449. package/dist/types/TypedFunctionType.spec.js +0 -122
  450. package/dist/types/TypedFunctionType.spec.js.map +0 -1
  451. package/dist/types/UnionType.d.ts +0 -20
  452. package/dist/types/UnionType.js +0 -123
  453. package/dist/types/UnionType.js.map +0 -1
  454. package/dist/types/UnionType.spec.d.ts +0 -1
  455. package/dist/types/UnionType.spec.js +0 -130
  456. package/dist/types/UnionType.spec.js.map +0 -1
  457. package/dist/types/helper.spec.d.ts +0 -1
  458. package/dist/types/helper.spec.js +0 -145
  459. package/dist/types/helper.spec.js.map +0 -1
  460. package/dist/types/helpers.d.ts +0 -24
  461. package/dist/types/helpers.js +0 -178
  462. package/dist/types/helpers.js.map +0 -1
  463. package/dist/types/index.d.ts +0 -22
  464. package/dist/types/index.js +0 -39
  465. package/dist/types/index.js.map +0 -1
  466. /package/dist/astUtils/{Editor.spec.d.ts → AstEditor.spec.d.ts} +0 -0
  467. /package/dist/bscPlugin/{completions/CompletionsProcessor.spec.d.ts → definition/DefinitionProvider.spec.d.ts} +0 -0
  468. /package/dist/bscPlugin/{serialize/BslibInjector.spec.d.ts → references/ReferencesProvider.spec.d.ts} +0 -0
  469. /package/dist/bscPlugin/{transpile/BrsFileTranspileProcessor.spec.d.ts → symbols/DocumentSymbolProcessor.spec.d.ts} +0 -0
  470. /package/dist/bscPlugin/{validation/ScopeValidator.spec.d.ts → symbols/WorkspaceSymbolProcessor.spec.d.ts} +0 -0
  471. /package/dist/{files/LazyFileData.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
  472. /package/dist/{parser/tests/expression/TypeExpression.spec.d.ts → types/FunctionType.spec.d.ts} +0 -0
@@ -4,26 +4,20 @@ 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 type { GetTypeOptions, TranspileResult, TypedefProvider } from '../interfaces';
7
+ import type { TranspileResult, TypedefProvider } from '../interfaces';
8
8
  import type { BscType } from '../types/BscType';
9
- import { TypedFunctionType } from '../types/TypedFunctionType';
10
- import { AstNodeKind, Expression } from './AstNode';
9
+ import { FunctionType } from '../types/FunctionType';
10
+ import { Expression } from './AstNode';
11
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';
16
12
  export declare type ExpressionVisitor = (expression: Expression, parent: Expression) => void;
17
13
  export declare class BinaryExpression extends Expression {
18
14
  left: Expression;
19
15
  operator: Token;
20
16
  right: Expression;
21
17
  constructor(left: Expression, operator: Token, right: Expression);
22
- readonly kind = AstNodeKind.BinaryExpression;
23
- readonly range: Range;
18
+ readonly range: Range | undefined;
24
19
  transpile(state: BrsTranspileState): (string | SourceNode)[];
25
20
  walk(visitor: WalkVisitor, options: WalkOptions): void;
26
- getType(options: GetTypeOptions): BscType;
27
21
  }
28
22
  export declare class CallExpression extends Expression {
29
23
  readonly callee: Expression;
@@ -33,17 +27,26 @@ export declare class CallExpression extends Expression {
33
27
  readonly openingParen: Token;
34
28
  readonly closingParen: Token;
35
29
  readonly args: Expression[];
30
+ /**
31
+ * Number of parameters that can be defined on a function
32
+ *
33
+ * Prior to Roku OS 11.5, this was 32
34
+ * As of Roku OS 11.5, this is 63
35
+ */
36
36
  static MaximumArguments: number;
37
37
  constructor(callee: Expression,
38
38
  /**
39
39
  * Can either be `(`, or `?(` for optional chaining
40
40
  */
41
41
  openingParen: Token, closingParen: Token, args: Expression[], unused?: any);
42
- readonly kind = AstNodeKind.CallExpression;
43
- readonly range: Range;
44
- transpile(state: BrsTranspileState, nameOverride?: string): any[];
42
+ readonly range: Range | undefined;
43
+ /**
44
+ * Get the name of the wrapping namespace (if it exists)
45
+ * @deprecated use `.findAncestor(isNamespaceStatement)` instead.
46
+ */
47
+ get namespaceName(): NamespacedVariableNameExpression;
48
+ transpile(state: BrsTranspileState, nameOverride?: string): TranspileResult;
45
49
  walk(visitor: WalkVisitor, options: WalkOptions): void;
46
- getType(options: GetTypeOptions): any;
47
50
  }
48
51
  export declare class FunctionExpression extends Expression implements TypedefProvider {
49
52
  readonly parameters: FunctionParameterExpression[];
@@ -53,9 +56,22 @@ export declare class FunctionExpression extends Expression implements TypedefPro
53
56
  readonly leftParen: Token;
54
57
  readonly rightParen: Token;
55
58
  readonly asToken?: Token;
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;
59
+ readonly returnTypeToken?: Token;
60
+ constructor(parameters: FunctionParameterExpression[], body: Block, functionType: Token | null, end: Token, leftParen: Token, rightParen: Token, asToken?: Token, returnTypeToken?: Token);
61
+ /**
62
+ * The type this function returns
63
+ */
64
+ returnType: BscType;
65
+ /**
66
+ * Get the name of the wrapping namespace (if it exists)
67
+ * @deprecated use `.findAncestor(isNamespaceStatement)` instead.
68
+ */
69
+ get namespaceName(): NamespacedVariableNameExpression;
70
+ /**
71
+ * Get the name of the wrapping namespace (if it exists)
72
+ * @deprecated use `.findAncestor(isFunctionExpression)` instead.
73
+ */
74
+ get parentFunction(): FunctionExpression;
59
75
  /**
60
76
  * The list of function calls that are declared within this function scope. This excludes CallExpressions
61
77
  * declared in child functions
@@ -65,31 +81,42 @@ export declare class FunctionExpression extends Expression implements TypedefPro
65
81
  * If this function is part of a FunctionStatement, this will be set. Otherwise this will be undefined
66
82
  */
67
83
  functionStatement?: FunctionStatement;
68
- getLeadingTrivia(): Token[];
84
+ /**
85
+ * A list of all child functions declared directly within this function
86
+ * @deprecated use `.walk(createVisitor({ FunctionExpression: ()=>{}), { walkMode: WalkMode.visitAllRecursive })` instead
87
+ */
88
+ get childFunctionExpressions(): FunctionExpression[];
69
89
  /**
70
90
  * 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
91
  * and ending with the last n' in 'end function' or 'b' in 'end sub'
72
92
  */
73
93
  get range(): Range;
74
- transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): any[];
94
+ transpile(state: BrsTranspileState, name?: Identifier, includeBody?: boolean): TranspileResult;
75
95
  getTypedef(state: BrsTranspileState): SourceNode[];
76
96
  walk(visitor: WalkVisitor, options: WalkOptions): void;
77
- getType(options: GetTypeOptions): TypedFunctionType;
97
+ getFunctionType(): FunctionType;
78
98
  }
79
99
  export declare class FunctionParameterExpression extends Expression {
80
100
  name: Identifier;
81
- equalToken?: Token;
101
+ typeToken?: Token;
82
102
  defaultValue?: Expression;
83
103
  asToken?: Token;
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;
104
+ constructor(name: Identifier, typeToken?: Token, defaultValue?: Expression, asToken?: Token);
105
+ type: BscType;
106
+ get range(): Range | undefined;
89
107
  transpile(state: BrsTranspileState): any[];
90
108
  getTypedef(state: BrsTranspileState): TranspileResult;
91
109
  walk(visitor: WalkVisitor, options: WalkOptions): void;
92
110
  }
111
+ export declare class NamespacedVariableNameExpression extends Expression {
112
+ readonly expression: DottedGetExpression | VariableExpression;
113
+ constructor(expression: DottedGetExpression | VariableExpression);
114
+ range: Range | undefined;
115
+ transpile(state: BrsTranspileState): SourceNode[];
116
+ getNameParts(): string[];
117
+ getName(parseMode: ParseMode): string;
118
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
119
+ }
93
120
  export declare class DottedGetExpression extends Expression {
94
121
  readonly obj: Expression;
95
122
  readonly name: Identifier;
@@ -102,12 +129,9 @@ export declare class DottedGetExpression extends Expression {
102
129
  * Can either be `.`, or `?.` for optional chaining
103
130
  */
104
131
  dot: Token);
105
- readonly kind = AstNodeKind.DottedGetExpression;
106
- readonly range: Range;
107
- transpile(state: BrsTranspileState): (string | SourceNode)[];
132
+ readonly range: Range | undefined;
133
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
108
134
  walk(visitor: WalkVisitor, options: WalkOptions): void;
109
- getType(options: GetTypeOptions): BscType;
110
- getName(parseMode: ParseMode): string;
111
135
  }
112
136
  export declare class XmlAttributeGetExpression extends Expression {
113
137
  readonly obj: Expression;
@@ -121,9 +145,8 @@ export declare class XmlAttributeGetExpression extends Expression {
121
145
  * Can either be `@`, or `?@` for optional chaining
122
146
  */
123
147
  at: Token);
124
- readonly kind = AstNodeKind.XmlAttributeGetExpression;
125
- readonly range: Range;
126
- transpile(state: BrsTranspileState): (string | SourceNode)[];
148
+ readonly range: Range | undefined;
149
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
127
150
  walk(visitor: WalkVisitor, options: WalkOptions): void;
128
151
  }
129
152
  export declare class IndexedGetExpression extends Expression {
@@ -135,16 +158,22 @@ export declare class IndexedGetExpression extends Expression {
135
158
  openingSquare: Token;
136
159
  closingSquare: Token;
137
160
  questionDotToken?: Token;
161
+ /**
162
+ * More indexes, separated by commas
163
+ */
164
+ additionalIndexes?: Expression[];
138
165
  constructor(obj: Expression, index: Expression,
139
166
  /**
140
167
  * Can either be `[` or `?[`. If `?.[` is used, this will be `[` and `optionalChainingToken` will be `?.`
141
168
  */
142
- openingSquare: Token, closingSquare: Token, questionDotToken?: Token);
143
- readonly kind = AstNodeKind.IndexedGetExpression;
144
- readonly range: Range;
145
- transpile(state: BrsTranspileState): (string | SourceNode)[];
169
+ openingSquare: Token, closingSquare: Token, questionDotToken?: Token, // ? or ?.
170
+ /**
171
+ * More indexes, separated by commas
172
+ */
173
+ additionalIndexes?: Expression[]);
174
+ readonly range: Range | undefined;
175
+ transpile(state: BrsTranspileState): any[];
146
176
  walk(visitor: WalkVisitor, options: WalkOptions): void;
147
- getType(options: GetTypeOptions): BscType;
148
177
  }
149
178
  export declare class GroupingExpression extends Expression {
150
179
  readonly tokens: {
@@ -156,18 +185,18 @@ export declare class GroupingExpression extends Expression {
156
185
  left: Token;
157
186
  right: Token;
158
187
  }, expression: Expression);
159
- readonly kind = AstNodeKind.GroupingExpression;
160
- readonly range: Range;
161
- transpile(state: BrsTranspileState): (string | SourceNode)[];
188
+ readonly range: Range | undefined;
189
+ transpile(state: BrsTranspileState): TranspileResult;
162
190
  walk(visitor: WalkVisitor, options: WalkOptions): void;
163
- getType(options: GetTypeOptions): BscType;
164
191
  }
165
192
  export declare class LiteralExpression extends Expression {
166
193
  token: Token;
167
194
  constructor(token: Token);
168
- readonly kind = AstNodeKind.LiteralExpression;
169
195
  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;
196
+ /**
197
+ * The (data) type of this expression
198
+ */
199
+ type: BscType;
171
200
  transpile(state: BrsTranspileState): SourceNode[];
172
201
  walk(visitor: WalkVisitor, options: WalkOptions): void;
173
202
  }
@@ -182,7 +211,6 @@ export declare class EscapedCharCodeLiteralExpression extends Expression {
182
211
  constructor(token: Token & {
183
212
  charCode: number;
184
213
  });
185
- readonly kind = AstNodeKind.EscapedCharCodeLiteralExpression;
186
214
  readonly range: Range;
187
215
  transpile(state: BrsTranspileState): SourceNode[];
188
216
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -193,11 +221,9 @@ export declare class ArrayLiteralExpression extends Expression {
193
221
  readonly close: Token;
194
222
  readonly hasSpread: boolean;
195
223
  constructor(elements: Array<Expression | CommentStatement>, open: Token, close: Token, hasSpread?: boolean);
196
- readonly kind = AstNodeKind.ArrayLiteralExpression;
197
- readonly range: Range;
198
- transpile(state: BrsTranspileState): any[];
224
+ readonly range: Range | undefined;
225
+ transpile(state: BrsTranspileState): TranspileResult;
199
226
  walk(visitor: WalkVisitor, options: WalkOptions): void;
200
- getType(options: GetTypeOptions): BscType;
201
227
  }
202
228
  export declare class AAMemberExpression extends Expression {
203
229
  keyToken: Token;
@@ -207,54 +233,45 @@ export declare class AAMemberExpression extends Expression {
207
233
  constructor(keyToken: Token, colonToken: Token,
208
234
  /** The expression evaluated to determine the member's initial value. */
209
235
  value: Expression);
210
- readonly kind = AstNodeKind.AAMemberExpression;
211
- range: Range;
236
+ range: Range | undefined;
212
237
  commaToken?: Token;
213
238
  transpile(state: BrsTranspileState): any[];
214
239
  walk(visitor: WalkVisitor, options: WalkOptions): void;
215
- getType(options: GetTypeOptions): BscType;
216
240
  }
217
241
  export declare class AALiteralExpression extends Expression {
218
242
  readonly elements: Array<AAMemberExpression | CommentStatement>;
219
243
  readonly open: Token;
220
244
  readonly close: Token;
221
245
  constructor(elements: Array<AAMemberExpression | CommentStatement>, open: Token, close: Token);
222
- readonly kind = AstNodeKind.AALiteralExpression;
223
- readonly range: Range;
224
- transpile(state: BrsTranspileState): any[];
246
+ readonly range: Range | undefined;
247
+ transpile(state: BrsTranspileState): TranspileResult;
225
248
  walk(visitor: WalkVisitor, options: WalkOptions): void;
226
- getType(options: GetTypeOptions): BscType;
227
249
  }
228
250
  export declare class UnaryExpression extends Expression {
229
251
  operator: Token;
230
252
  right: Expression;
231
253
  constructor(operator: Token, right: Expression);
232
- readonly kind = AstNodeKind.UnaryExpression;
233
- readonly range: Range;
234
- transpile(state: BrsTranspileState): (string | SourceNode)[];
254
+ readonly range: Range | undefined;
255
+ transpile(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
235
256
  walk(visitor: WalkVisitor, options: WalkOptions): void;
236
- getType(options: GetTypeOptions): BscType;
237
257
  }
238
258
  export declare class VariableExpression extends Expression {
239
259
  readonly name: Identifier;
240
260
  constructor(name: Identifier);
241
- readonly kind = AstNodeKind.VariableExpression;
242
261
  readonly range: Range;
243
262
  getName(parseMode: ParseMode): string;
244
- transpile(state: BrsTranspileState): any[];
263
+ transpile(state: BrsTranspileState): TranspileResult;
245
264
  walk(visitor: WalkVisitor, options: WalkOptions): void;
246
- getType(options: GetTypeOptions): BscType;
247
265
  }
248
266
  export declare class SourceLiteralExpression extends Expression {
249
267
  readonly token: Token;
250
268
  constructor(token: Token);
251
269
  readonly range: Range;
252
- readonly kind = AstNodeKind.SourceLiteralExpression;
270
+ private getFunctionName;
253
271
  /**
254
- * Find the index of the function in its parent
272
+ * Get the line number from our token or from the closest ancestor that has a range
255
273
  */
256
- private findFunctionIndex;
257
- private getFunctionName;
274
+ private getClosestLineNumber;
258
275
  transpile(state: BrsTranspileState): SourceNode[];
259
276
  walk(visitor: WalkVisitor, options: WalkOptions): void;
260
277
  }
@@ -267,15 +284,13 @@ export declare class NewExpression extends Expression {
267
284
  readonly newKeyword: Token;
268
285
  readonly call: CallExpression;
269
286
  constructor(newKeyword: Token, call: CallExpression);
270
- readonly kind = AstNodeKind.NewExpression;
271
- readonly range: Range;
272
287
  /**
273
288
  * The name of the class to initialize (with optional namespace prefixed)
274
289
  */
275
- get className(): DottedGetExpression | VariableExpression;
276
- transpile(state: BrsTranspileState): any[];
290
+ get className(): NamespacedVariableNameExpression;
291
+ readonly range: Range | undefined;
292
+ transpile(state: BrsTranspileState): TranspileResult;
277
293
  walk(visitor: WalkVisitor, options: WalkOptions): void;
278
- getType(options: GetTypeOptions): any;
279
294
  }
280
295
  export declare class CallfuncExpression extends Expression {
281
296
  readonly callee: Expression;
@@ -285,11 +300,14 @@ export declare class CallfuncExpression extends Expression {
285
300
  readonly args: Expression[];
286
301
  readonly closingParen: Token;
287
302
  constructor(callee: Expression, operator: Token, methodName: Identifier, openingParen: Token, args: Expression[], closingParen: Token);
288
- readonly kind = AstNodeKind.CallfuncExpression;
289
- readonly range: Range;
290
- transpile(state: BrsTranspileState): any[];
303
+ readonly range: Range | undefined;
304
+ /**
305
+ * Get the name of the wrapping namespace (if it exists)
306
+ * @deprecated use `.findAncestor(isNamespaceStatement)` instead.
307
+ */
308
+ get namespaceName(): NamespacedVariableNameExpression;
309
+ transpile(state: BrsTranspileState): TranspileResult;
291
310
  walk(visitor: WalkVisitor, options: WalkOptions): void;
292
- getType(options: GetTypeOptions): BscType;
293
311
  }
294
312
  /**
295
313
  * Since template strings can contain newlines, we need to concatenate multiple strings together with chr() calls.
@@ -298,9 +316,8 @@ export declare class CallfuncExpression extends Expression {
298
316
  export declare class TemplateStringQuasiExpression extends Expression {
299
317
  readonly expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>;
300
318
  constructor(expressions: Array<LiteralExpression | EscapedCharCodeLiteralExpression>);
301
- readonly kind = AstNodeKind.TemplateStringQuasiExpression;
302
- readonly range: Range;
303
- transpile(state: BrsTranspileState, skipEmptyStrings?: boolean): any[];
319
+ readonly range: Range | undefined;
320
+ transpile(state: BrsTranspileState, skipEmptyStrings?: boolean): TranspileResult;
304
321
  walk(visitor: WalkVisitor, options: WalkOptions): void;
305
322
  }
306
323
  export declare class TemplateStringExpression extends Expression {
@@ -309,10 +326,8 @@ export declare class TemplateStringExpression extends Expression {
309
326
  readonly expressions: Expression[];
310
327
  readonly closingBacktick: Token;
311
328
  constructor(openingBacktick: Token, quasis: TemplateStringQuasiExpression[], expressions: Expression[], closingBacktick: Token);
312
- readonly kind = AstNodeKind.TemplateStringExpression;
313
- readonly range: Range;
314
- getType(options: GetTypeOptions): StringType;
315
- transpile(state: BrsTranspileState): any[];
329
+ readonly range: Range | undefined;
330
+ transpile(state: BrsTranspileState): TranspileResult;
316
331
  walk(visitor: WalkVisitor, options: WalkOptions): void;
317
332
  }
318
333
  export declare class TaggedTemplateStringExpression extends Expression {
@@ -322,28 +337,25 @@ export declare class TaggedTemplateStringExpression extends Expression {
322
337
  readonly expressions: Expression[];
323
338
  readonly closingBacktick: Token;
324
339
  constructor(tagName: Identifier, openingBacktick: Token, quasis: TemplateStringQuasiExpression[], expressions: Expression[], closingBacktick: Token);
325
- readonly kind = AstNodeKind.TaggedTemplateStringExpression;
326
- readonly range: Range;
327
- transpile(state: BrsTranspileState): any[];
340
+ readonly range: Range | undefined;
341
+ transpile(state: BrsTranspileState): TranspileResult;
328
342
  walk(visitor: WalkVisitor, options: WalkOptions): void;
329
343
  }
330
344
  export declare class AnnotationExpression extends Expression {
331
345
  readonly atToken: Token;
332
346
  readonly nameToken: Token;
333
347
  constructor(atToken: Token, nameToken: Token);
334
- readonly kind = AstNodeKind.AnnotationExpression;
335
- range: Range;
348
+ get range(): Range;
336
349
  name: string;
337
- call: CallExpression;
350
+ call: CallExpression | undefined;
338
351
  /**
339
352
  * Convert annotation arguments to JavaScript types
340
353
  * @param strict If false, keep Expression objects not corresponding to JS types
341
354
  */
342
355
  getArguments(strict?: boolean): ExpressionValue[];
343
- getLeadingTrivia(): Token[];
344
356
  transpile(state: BrsTranspileState): any[];
345
357
  walk(visitor: WalkVisitor, options: WalkOptions): void;
346
- getTypedef(state: BrsTranspileState): any[];
358
+ getTypedef(state: BrsTranspileState): (string | SourceNode | TranspileResult)[];
347
359
  }
348
360
  export declare class TernaryExpression extends Expression {
349
361
  readonly test: Expression;
@@ -352,9 +364,8 @@ export declare class TernaryExpression extends Expression {
352
364
  readonly colonToken?: Token;
353
365
  readonly alternate?: Expression;
354
366
  constructor(test: Expression, questionMarkToken: Token, consequent?: Expression, colonToken?: Token, alternate?: Expression);
355
- readonly kind = AstNodeKind.TernaryExpression;
356
- range: Range;
357
- transpile(state: BrsTranspileState): any[];
367
+ range: Range | undefined;
368
+ transpile(state: BrsTranspileState): TranspileResult;
358
369
  walk(visitor: WalkVisitor, options: WalkOptions): void;
359
370
  }
360
371
  export declare class NullCoalescingExpression extends Expression {
@@ -362,9 +373,8 @@ export declare class NullCoalescingExpression extends Expression {
362
373
  questionQuestionToken: Token;
363
374
  alternate: Expression;
364
375
  constructor(consequent: Expression, questionQuestionToken: Token, alternate: Expression);
365
- readonly kind = AstNodeKind.NullCoalescingExpression;
366
- readonly range: Range;
367
- transpile(state: BrsTranspileState): any[];
376
+ readonly range: Range | undefined;
377
+ transpile(state: BrsTranspileState): TranspileResult;
368
378
  walk(visitor: WalkVisitor, options: WalkOptions): void;
369
379
  }
370
380
  export declare class RegexLiteralExpression extends Expression {
@@ -374,53 +384,20 @@ export declare class RegexLiteralExpression extends Expression {
374
384
  constructor(tokens: {
375
385
  regexLiteral: Token;
376
386
  });
377
- readonly kind = AstNodeKind.RegexLiteralExpression;
378
387
  get range(): Range;
379
388
  transpile(state: BrsTranspileState): TranspileResult;
380
389
  walk(visitor: WalkVisitor, options: WalkOptions): void;
381
390
  }
382
- declare type ExpressionValue = string | number | boolean | Expression | ExpressionValue[] | {
383
- [key: string]: ExpressionValue;
384
- };
385
- export declare class TypeExpression extends Expression implements TypedefProvider {
386
- /**
387
- * The standard AST expression that represents the type for this TypeExpression.
388
- */
389
- expression: Expression;
390
- constructor(
391
- /**
392
- * The standard AST expression that represents the type for this TypeExpression.
393
- */
394
- expression: Expression);
395
- readonly kind = AstNodeKind.TypeExpression;
396
- range: Range;
397
- transpile(state: BrsTranspileState): TranspileResult;
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[];
403
- }
404
391
  export declare class TypeCastExpression extends Expression {
405
392
  obj: Expression;
406
- asToken?: Token;
407
- typeExpression?: TypeExpression;
408
- constructor(obj: Expression, asToken?: Token, typeExpression?: TypeExpression);
409
- readonly kind = AstNodeKind.TypeCastExpression;
393
+ asToken: Token;
394
+ typeToken: Token;
395
+ constructor(obj: Expression, asToken: Token, typeToken: Token);
410
396
  range: Range;
411
397
  transpile(state: BrsTranspileState): TranspileResult;
412
398
  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;
425
399
  }
400
+ declare type ExpressionValue = string | number | boolean | Expression | ExpressionValue[] | {
401
+ [key: string]: ExpressionValue;
402
+ } | null;
426
403
  export {};