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,46 +1,24 @@
1
1
  import type { Token, Identifier } from '../lexer/Token';
2
2
  import { TokenKind } from '../lexer/TokenKind';
3
- import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression, TypeExpression } from './Expression';
3
+ import type { DottedGetExpression, FunctionExpression, FunctionParameterExpression, TypeExpression } from './Expression';
4
+ import { VariableExpression } from './Expression';
4
5
  import type { Range } from 'vscode-languageserver';
5
6
  import type { BrsTranspileState } from './BrsTranspileState';
6
7
  import { ParseMode } from './Parser';
7
8
  import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
8
- import { InternalWalkMode } from '../astUtils/visitors';
9
- import type { InheritableStatement, MemberSymbolTableProvider, TranspileResult, TypedefProvider } from '../interfaces';
10
- import { DynamicType } from '../types/DynamicType';
9
+ import { type GetTypeOptions, type TranspileResult, type TypedefProvider } from '../interfaces';
11
10
  import type { SourceNode } from 'source-map';
12
11
  import type { TranspileState } from './TranspileState';
13
12
  import { SymbolTable } from '../SymbolTable';
14
- import { CustomType } from '../types/CustomType';
15
- import { EnumType } from '../types/EnumType';
13
+ import type { Expression } from './AstNode';
14
+ import { AstNodeKind } from './AstNode';
15
+ import { Statement } from './AstNode';
16
+ import { ClassType } from '../types/ClassType';
17
+ import { EnumMemberType, EnumType } from '../types/EnumType';
18
+ import { NamespaceType } from '../types/NamespaceType';
16
19
  import { InterfaceType } from '../types/InterfaceType';
17
- /**
18
- * A BrightScript statement
19
- */
20
- export declare abstract class Statement {
21
- /**
22
- * The starting and ending location of the statement.
23
- **/
24
- abstract readonly range: Range;
25
- /**
26
- * Statement annotations
27
- */
28
- annotations: AnnotationExpression[];
29
- abstract transpile(state: BrsTranspileState): TranspileResult;
30
- /**
31
- * When being considered by the walk visitor, this describes what type of element the current class is.
32
- */
33
- visitMode: InternalWalkMode;
34
- abstract walk(visitor: WalkVisitor, options: WalkOptions): any;
35
- /**
36
- * The parent node for this statement. This is set dynamically during `onFileValidate`, and should not be set directly.
37
- */
38
- parent?: Statement | Expression;
39
- /**
40
- * Get the closest symbol table for this node. Should be overridden in children that directly contain a symbol table
41
- */
42
- getSymbolTable(): SymbolTable;
43
- }
20
+ import type { BscType } from '../types/BscType';
21
+ import { TypedFunctionType } from '../types/TypedFunctionType';
44
22
  export declare class EmptyStatement extends Statement {
45
23
  /**
46
24
  * Create a negative range to indicate this is an interpolated location
@@ -51,6 +29,7 @@ export declare class EmptyStatement extends Statement {
51
29
  * Create a negative range to indicate this is an interpolated location
52
30
  */
53
31
  range?: Range);
32
+ readonly kind = AstNodeKind.EmptyStatement;
54
33
  transpile(state: BrsTranspileState): any[];
55
34
  walk(visitor: WalkVisitor, options: WalkOptions): void;
56
35
  }
@@ -59,28 +38,32 @@ export declare class EmptyStatement extends Statement {
59
38
  */
60
39
  export declare class Body extends Statement implements TypedefProvider {
61
40
  statements: Statement[];
41
+ constructor(statements?: Statement[]);
42
+ readonly kind = AstNodeKind.Body;
62
43
  symbolTable: SymbolTable;
63
- constructor(statements?: Statement[], symbolTable?: SymbolTable);
64
- getSymbolTable(): SymbolTable;
65
44
  get range(): Range;
66
45
  transpile(state: BrsTranspileState): TranspileResult;
67
46
  getTypedef(state: BrsTranspileState): any[];
68
47
  walk(visitor: WalkVisitor, options: WalkOptions): void;
69
48
  }
70
49
  export declare class AssignmentStatement extends Statement {
71
- readonly name: Identifier;
72
- readonly equals: Token;
73
- readonly value: Expression;
74
- readonly containingFunction: FunctionExpression;
75
- constructor(name: Identifier, equals: Token, value: Expression, containingFunction: FunctionExpression);
50
+ equals: Token;
51
+ name: Identifier;
52
+ value: Expression;
53
+ asToken?: Token;
54
+ typeExpression?: TypeExpression;
55
+ constructor(equals: Token, name: Identifier, value: Expression, asToken?: Token, typeExpression?: TypeExpression);
56
+ readonly kind = AstNodeKind.AssignmentStatement;
76
57
  readonly range: Range;
77
58
  transpile(state: BrsTranspileState): TranspileResult;
78
59
  walk(visitor: WalkVisitor, options: WalkOptions): void;
60
+ getType(options: GetTypeOptions): BscType;
79
61
  }
80
62
  export declare class Block extends Statement {
81
63
  readonly statements: Statement[];
82
64
  readonly startingRange: Range;
83
65
  constructor(statements: Statement[], startingRange: Range);
66
+ readonly kind = AstNodeKind.Block;
84
67
  readonly range: Range;
85
68
  transpile(state: BrsTranspileState): TranspileResult;
86
69
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -88,6 +71,7 @@ export declare class Block extends Statement {
88
71
  export declare class ExpressionStatement extends Statement {
89
72
  readonly expression: Expression;
90
73
  constructor(expression: Expression);
74
+ readonly kind = AstNodeKind.ExpressionStatement;
91
75
  readonly range: Range;
92
76
  transpile(state: BrsTranspileState): TranspileResult;
93
77
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -95,7 +79,8 @@ export declare class ExpressionStatement extends Statement {
95
79
  export declare class CommentStatement extends Statement implements Expression, TypedefProvider {
96
80
  comments: Token[];
97
81
  constructor(comments: Token[]);
98
- readonly range: Range;
82
+ readonly kind = AstNodeKind.CommentStatement;
83
+ range: Range;
99
84
  get text(): string;
100
85
  transpile(state: BrsTranspileState): any[];
101
86
  getTypedef(state: TranspileState): any[];
@@ -108,6 +93,7 @@ export declare class ExitForStatement extends Statement {
108
93
  constructor(tokens: {
109
94
  exitFor: Token;
110
95
  });
96
+ readonly kind = AstNodeKind.ExitForStatement;
111
97
  readonly range: Range;
112
98
  transpile(state: BrsTranspileState): SourceNode[];
113
99
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -119,6 +105,7 @@ export declare class ExitWhileStatement extends Statement {
119
105
  constructor(tokens: {
120
106
  exitWhile: Token;
121
107
  });
108
+ readonly kind = AstNodeKind.ExitWhileStatement;
122
109
  readonly range: Range;
123
110
  transpile(state: BrsTranspileState): SourceNode[];
124
111
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -126,18 +113,18 @@ export declare class ExitWhileStatement extends Statement {
126
113
  export declare class FunctionStatement extends Statement implements TypedefProvider {
127
114
  name: Identifier;
128
115
  func: FunctionExpression;
129
- namespaceName: NamespacedVariableNameExpression;
130
- constructor(name: Identifier, func: FunctionExpression, namespaceName: NamespacedVariableNameExpression);
131
- get range(): Range;
132
- cacheRange(): Range;
133
- protected _range: Range;
116
+ constructor(name: Identifier, func: FunctionExpression);
117
+ readonly kind: AstNodeKind;
118
+ readonly range: Range;
134
119
  /**
135
120
  * Get the name of this expression based on the parse mode
136
121
  */
137
122
  getName(parseMode: ParseMode): string;
123
+ getLeadingTrivia(): Token[];
138
124
  transpile(state: BrsTranspileState): any[];
139
125
  getTypedef(state: BrsTranspileState): any[];
140
126
  walk(visitor: WalkVisitor, options: WalkOptions): void;
127
+ getType(options: GetTypeOptions): TypedFunctionType;
141
128
  }
142
129
  export declare class IfStatement extends Statement {
143
130
  readonly tokens: {
@@ -156,6 +143,7 @@ export declare class IfStatement extends Statement {
156
143
  else?: Token;
157
144
  endIf?: Token;
158
145
  }, condition: Expression, thenBranch: Block, elseBranch?: IfStatement | Block, isInline?: boolean);
146
+ readonly kind = AstNodeKind.IfStatement;
159
147
  readonly range: Range;
160
148
  transpile(state: BrsTranspileState): any[];
161
149
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -164,6 +152,7 @@ export declare class IncrementStatement extends Statement {
164
152
  readonly value: Expression;
165
153
  readonly operator: Token;
166
154
  constructor(value: Expression, operator: Token);
155
+ readonly kind = AstNodeKind.IncrementStatement;
167
156
  readonly range: Range;
168
157
  transpile(state: BrsTranspileState): (string | SourceNode)[];
169
158
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -186,12 +175,14 @@ export declare class PrintStatement extends Statement {
186
175
  readonly expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>;
187
176
  /**
188
177
  * Creates a new internal representation of a BrightScript `print` statement.
189
- * @param expressions an array of expressions or `PrintSeparator`s to be
190
- * evaluated and printed.
178
+ * @param tokens the tokens for this statement
179
+ * @param tokens.print a print token
180
+ * @param expressions an array of expressions or `PrintSeparator`s to be evaluated and printed.
191
181
  */
192
182
  constructor(tokens: {
193
183
  print: Token;
194
184
  }, expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>);
185
+ readonly kind = AstNodeKind.PrintStatement;
195
186
  readonly range: Range;
196
187
  transpile(state: BrsTranspileState): (string | SourceNode)[];
197
188
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -203,7 +194,8 @@ export declare class DimStatement extends Statement {
203
194
  dimensions?: Expression[];
204
195
  closingSquare?: Token;
205
196
  constructor(dimToken: Token, identifier?: Identifier, openingSquare?: Token, dimensions?: Expression[], closingSquare?: Token);
206
- readonly range: Range;
197
+ readonly kind = AstNodeKind.DimStatement;
198
+ range: Range;
207
199
  transpile(state: BrsTranspileState): (string | SourceNode)[];
208
200
  walk(visitor: WalkVisitor, options: WalkOptions): void;
209
201
  }
@@ -216,6 +208,7 @@ export declare class GotoStatement extends Statement {
216
208
  goto: Token;
217
209
  label: Token;
218
210
  });
211
+ readonly kind = AstNodeKind.GotoStatement;
219
212
  readonly range: Range;
220
213
  transpile(state: BrsTranspileState): (string | SourceNode)[];
221
214
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -229,7 +222,9 @@ export declare class LabelStatement extends Statement {
229
222
  identifier: Token;
230
223
  colon: Token;
231
224
  });
225
+ readonly kind = AstNodeKind.LabelStatement;
232
226
  readonly range: Range;
227
+ getLeadingTrivia(): Token[];
233
228
  transpile(state: BrsTranspileState): SourceNode[];
234
229
  walk(visitor: WalkVisitor, options: WalkOptions): void;
235
230
  }
@@ -241,6 +236,7 @@ export declare class ReturnStatement extends Statement {
241
236
  constructor(tokens: {
242
237
  return: Token;
243
238
  }, value?: Expression);
239
+ readonly kind = AstNodeKind.ReturnStatement;
244
240
  readonly range: Range;
245
241
  transpile(state: BrsTranspileState): any[];
246
242
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -252,6 +248,7 @@ export declare class EndStatement extends Statement {
252
248
  constructor(tokens: {
253
249
  end: Token;
254
250
  });
251
+ readonly kind = AstNodeKind.EndStatement;
255
252
  readonly range: Range;
256
253
  transpile(state: BrsTranspileState): SourceNode[];
257
254
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -263,6 +260,7 @@ export declare class StopStatement extends Statement {
263
260
  constructor(tokens: {
264
261
  stop: Token;
265
262
  });
263
+ readonly kind = AstNodeKind.StopStatement;
266
264
  readonly range: Range;
267
265
  transpile(state: BrsTranspileState): SourceNode[];
268
266
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -277,18 +275,26 @@ export declare class ForStatement extends Statement {
277
275
  stepToken?: Token;
278
276
  increment?: Expression;
279
277
  constructor(forToken: Token, counterDeclaration: AssignmentStatement, toToken: Token, finalValue: Expression, body: Block, endForToken: Token, stepToken?: Token, increment?: Expression);
278
+ readonly kind = AstNodeKind.ForStatement;
280
279
  readonly range: Range;
281
280
  transpile(state: BrsTranspileState): any[];
282
281
  walk(visitor: WalkVisitor, options: WalkOptions): void;
283
282
  }
284
283
  export declare class ForEachStatement extends Statement {
285
- forEachToken: Token;
286
- item: Identifier;
287
- inToken: Token;
288
- target: Expression;
289
- body: Block;
290
- endForToken: Token;
291
- constructor(forEachToken: Token, item: Identifier, inToken: Token, target: Expression, body: Block, endForToken: Token);
284
+ readonly tokens: {
285
+ forEach: Token;
286
+ in: Token;
287
+ endFor: Token;
288
+ };
289
+ readonly item: Token;
290
+ readonly target: Expression;
291
+ readonly body: Block;
292
+ constructor(tokens: {
293
+ forEach: Token;
294
+ in: Token;
295
+ endFor: Token;
296
+ }, item: Token, target: Expression, body: Block);
297
+ readonly kind = AstNodeKind.ForEachStatement;
292
298
  readonly range: Range;
293
299
  transpile(state: BrsTranspileState): any[];
294
300
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -304,6 +310,7 @@ export declare class WhileStatement extends Statement {
304
310
  while: Token;
305
311
  endWhile: Token;
306
312
  }, condition: Expression, body: Block);
313
+ readonly kind = AstNodeKind.WhileStatement;
307
314
  readonly range: Range;
308
315
  transpile(state: BrsTranspileState): any[];
309
316
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -312,12 +319,13 @@ export declare class DottedSetStatement extends Statement {
312
319
  readonly obj: Expression;
313
320
  readonly name: Identifier;
314
321
  readonly value: Expression;
315
- dot: Token;
316
- operator: Token;
317
- constructor(obj: Expression, name: Identifier, value: Expression, dot: Token, operator: Token);
322
+ readonly dot?: Token;
323
+ constructor(obj: Expression, name: Identifier, value: Expression, dot?: Token);
324
+ readonly kind = AstNodeKind.DottedSetStatement;
318
325
  readonly range: Range;
319
326
  transpile(state: BrsTranspileState): TranspileResult;
320
327
  walk(visitor: WalkVisitor, options: WalkOptions): void;
328
+ getType(options: GetTypeOptions): BscType;
321
329
  }
322
330
  export declare class IndexedSetStatement extends Statement {
323
331
  readonly obj: Expression;
@@ -325,8 +333,8 @@ export declare class IndexedSetStatement extends Statement {
325
333
  readonly value: Expression;
326
334
  readonly openingSquare: Token;
327
335
  readonly closingSquare: Token;
328
- operator: Token;
329
- constructor(obj: Expression, index: Expression, value: Expression, openingSquare: Token, closingSquare: Token, operator: Token);
336
+ constructor(obj: Expression, index: Expression, value: Expression, openingSquare: Token, closingSquare: Token);
337
+ readonly kind = AstNodeKind.IndexedSetStatement;
330
338
  readonly range: Range;
331
339
  transpile(state: BrsTranspileState): TranspileResult;
332
340
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -340,6 +348,7 @@ export declare class LibraryStatement extends Statement implements TypedefProvid
340
348
  library: Token;
341
349
  filePath: Token | undefined;
342
350
  });
351
+ readonly kind = AstNodeKind.LibraryStatement;
343
352
  readonly range: Range;
344
353
  transpile(state: BrsTranspileState): any[];
345
354
  getTypedef(state: BrsTranspileState): any[];
@@ -347,13 +356,11 @@ export declare class LibraryStatement extends Statement implements TypedefProvid
347
356
  }
348
357
  export declare class NamespaceStatement extends Statement implements TypedefProvider {
349
358
  keyword: Token;
350
- nameExpression: NamespacedVariableNameExpression;
359
+ nameExpression: VariableExpression | DottedGetExpression;
351
360
  body: Body;
352
361
  endKeyword: Token;
353
- readonly parentSymbolTable?: SymbolTable;
354
- constructor(keyword: Token, nameExpression: NamespacedVariableNameExpression, body: Body, endKeyword: Token, parentSymbolTable?: SymbolTable);
355
- symbolTable: SymbolTable;
356
- getSymbolTable(): SymbolTable;
362
+ constructor(keyword: Token, nameExpression: VariableExpression | DottedGetExpression, body: Body, endKeyword: Token);
363
+ readonly kind = AstNodeKind.NamespaceStatement;
357
364
  /**
358
365
  * The string name for this namespace
359
366
  */
@@ -362,16 +369,20 @@ export declare class NamespaceStatement extends Statement implements TypedefProv
362
369
  private _range;
363
370
  cacheRange(): Range;
364
371
  getName(parseMode: ParseMode): string;
372
+ getLeadingTrivia(): Token[];
373
+ getNameParts(): Identifier[];
365
374
  transpile(state: BrsTranspileState): TranspileResult;
366
375
  getTypedef(state: BrsTranspileState): string[];
367
376
  walk(visitor: WalkVisitor, options: WalkOptions): void;
377
+ getType(options: GetTypeOptions): NamespaceType;
368
378
  }
369
379
  export declare class ImportStatement extends Statement implements TypedefProvider {
370
380
  readonly importToken: Token;
371
381
  readonly filePathToken: Token;
372
382
  constructor(importToken: Token, filePathToken: Token);
383
+ readonly kind = AstNodeKind.ImportStatement;
384
+ range: Range;
373
385
  filePath: string;
374
- readonly range: Range;
375
386
  transpile(state: BrsTranspileState): (string | SourceNode)[];
376
387
  /**
377
388
  * Get the typedef for this statement
@@ -379,61 +390,83 @@ export declare class ImportStatement extends Statement implements TypedefProvide
379
390
  getTypedef(state: BrsTranspileState): string[];
380
391
  walk(visitor: WalkVisitor, options: WalkOptions): void;
381
392
  }
382
- export declare class InterfaceStatement extends Statement implements TypedefProvider, MemberSymbolTableProvider {
383
- name: Identifier;
384
- parentInterfaceName: NamespacedVariableNameExpression;
393
+ export declare class InterfaceStatement extends Statement implements TypedefProvider {
394
+ parentInterfaceName: TypeExpression;
385
395
  body: Statement[];
386
- namespaceName: NamespacedVariableNameExpression;
387
- readonly memberTable: SymbolTable;
388
- constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: NamespacedVariableNameExpression, body: Statement[], endInterfaceToken: Token, namespaceName: NamespacedVariableNameExpression);
396
+ constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: TypeExpression, body: Statement[], endInterfaceToken: Token);
397
+ readonly kind = AstNodeKind.InterfaceStatement;
389
398
  tokens: {
390
399
  interface: Token;
391
400
  name: Identifier;
392
401
  extends: Token;
393
402
  endInterface: Token;
394
403
  };
395
- readonly range: Range;
396
- memberMap: Record<string, InterfaceMemberStatement>;
397
- methods: InterfaceMethodStatement[];
398
- fields: InterfaceFieldStatement[];
399
- buildSymbolTable(parentIface?: InheritableStatement): void;
400
- hasParent(): boolean;
401
- getParentName(): boolean;
404
+ range: Range;
405
+ get fields(): InterfaceFieldStatement[];
406
+ get methods(): InterfaceMethodStatement[];
407
+ hasParentInterface(): boolean;
408
+ getLeadingTrivia(): Token[];
409
+ /**
410
+ * The name of the interface WITH its leading namespace (if applicable)
411
+ */
412
+ get fullName(): string;
402
413
  /**
403
- * Gets an array of possible parent interface names, taking into account the namespace this interface was created under
404
- * @returns array of possible parent interface names
414
+ * The name of the interface (without the namespace prefix)
405
415
  */
406
- getPossibleFullParentNames(): string[];
407
- getThisBscType(): InterfaceType;
416
+ get name(): string;
408
417
  /**
409
- * The name of the interface WITH its leading namespace (if applicable)
418
+ * Get the name of this expression based on the parse mode
410
419
  */
411
420
  getName(parseMode: ParseMode): string;
412
421
  transpile(state: BrsTranspileState): TranspileResult;
413
422
  getTypedef(state: BrsTranspileState): TranspileResult;
414
423
  walk(visitor: WalkVisitor, options: WalkOptions): void;
424
+ getType(options: GetTypeOptions): InterfaceType;
415
425
  }
416
426
  export declare class InterfaceFieldStatement extends Statement implements TypedefProvider {
417
- type?: TypeExpression;
418
- namespaceName?: NamespacedVariableNameExpression;
427
+ typeExpression?: TypeExpression;
419
428
  transpile(state: BrsTranspileState): TranspileResult;
420
- constructor(nameToken: Identifier, asToken: Token, type?: TypeExpression, namespaceName?: NamespacedVariableNameExpression);
421
- readonly range: Range;
429
+ constructor(nameToken: Identifier, asToken: Token, typeExpression?: TypeExpression, optionalToken?: Token);
430
+ readonly kind = AstNodeKind.InterfaceFieldStatement;
431
+ range: Range;
422
432
  tokens: {
423
433
  name: Identifier;
424
434
  as: Token;
435
+ optional?: Token;
425
436
  };
426
- getType(): import("../types/BscType").BscType;
427
- get name(): Identifier;
437
+ getLeadingTrivia(): Token[];
438
+ get name(): string;
439
+ get isOptional(): boolean;
428
440
  walk(visitor: WalkVisitor, options: WalkOptions): void;
429
441
  getTypedef(state: BrsTranspileState): (string | SourceNode)[];
442
+ getType(options: GetTypeOptions): BscType;
430
443
  }
431
- export declare class InterfaceMethodStatement extends FunctionStatement implements TypedefProvider {
444
+ export declare class InterfaceMethodStatement extends Statement implements TypedefProvider {
445
+ params: FunctionParameterExpression[];
446
+ returnTypeExpression?: TypeExpression;
432
447
  transpile(state: BrsTranspileState): TranspileResult;
433
- constructor(name: Identifier, func: FunctionExpression);
448
+ constructor(functionTypeToken: Token, nameToken: Identifier, leftParen: Token, params: FunctionParameterExpression[], rightParen: Token, asToken?: Token, returnTypeExpression?: TypeExpression, optionalToken?: Token);
449
+ readonly kind = AstNodeKind.InterfaceMethodStatement;
450
+ get range(): Range;
451
+ /**
452
+ * Get the name of this method.
453
+ */
454
+ getName(parseMode: ParseMode): string;
455
+ tokens: {
456
+ optional?: Token;
457
+ functionType: Token;
458
+ name: Identifier;
459
+ leftParen: Token;
460
+ rightParen: Token;
461
+ as: Token;
462
+ };
463
+ get isOptional(): boolean;
464
+ getLeadingTrivia(): Token[];
434
465
  walk(visitor: WalkVisitor, options: WalkOptions): void;
466
+ getTypedef(state: BrsTranspileState): TranspileResult;
467
+ getType(options: GetTypeOptions): TypedFunctionType;
435
468
  }
436
- export declare class ClassStatement extends Statement implements TypedefProvider, MemberSymbolTableProvider {
469
+ export declare class ClassStatement extends Statement implements TypedefProvider {
437
470
  readonly classKeyword: Token;
438
471
  /**
439
472
  * The name of the class (without namespace prefix)
@@ -442,24 +475,19 @@ export declare class ClassStatement extends Statement implements TypedefProvider
442
475
  body: Statement[];
443
476
  readonly end: Token;
444
477
  readonly extendsKeyword?: Token;
445
- readonly parentClassName?: NamespacedVariableNameExpression;
446
- readonly namespaceName?: NamespacedVariableNameExpression;
447
- readonly currentSymbolTable?: SymbolTable;
448
- readonly symbolTable: SymbolTable;
449
- readonly memberTable: SymbolTable;
478
+ readonly parentClassName?: TypeExpression;
450
479
  constructor(classKeyword: Token,
451
480
  /**
452
481
  * The name of the class (without namespace prefix)
453
482
  */
454
- name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression, namespaceName?: NamespacedVariableNameExpression, currentSymbolTable?: SymbolTable);
483
+ name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: TypeExpression);
484
+ readonly kind = AstNodeKind.ClassStatement;
455
485
  getName(parseMode: ParseMode): string;
486
+ getLeadingTrivia(): Token[];
456
487
  memberMap: Record<string, MemberStatement>;
457
488
  methods: MethodStatement[];
458
489
  fields: FieldStatement[];
459
490
  readonly range: Range;
460
- getThisBscType(): CustomType;
461
- getConstructorFunctionType(): import("../types/TypedFunctionType").TypedFunctionType;
462
- buildSymbolTable(parentClass?: InheritableStatement): void;
463
491
  transpile(state: BrsTranspileState): any[];
464
492
  getTypedef(state: BrsTranspileState): TranspileResult;
465
493
  /**
@@ -468,18 +496,14 @@ export declare class ClassStatement extends Statement implements TypedefProvider
468
496
  * The base class is index 0, its child is index 1, and so on.
469
497
  */
470
498
  getParentClassIndex(state: BrsTranspileState): number;
471
- hasParent(): boolean;
472
- /**
473
- * Gets an array of possible parent class names, taking into account the namespace this class was created under
474
- * @returns array of possible parent class names
475
- */
476
- getPossibleFullParentNames(): string[];
499
+ hasParentClass(): boolean;
477
500
  /**
478
501
  * Get all ancestor classes, in closest-to-furthest order (i.e. 0 is parent, 1 is grandparent, etc...).
479
502
  * This will return an empty array if no ancestors were found
480
503
  */
481
504
  getAncestors(state: BrsTranspileState): ClassStatement[];
482
505
  private getBuilderName;
506
+ getConstructorType(): TypedFunctionType;
483
507
  /**
484
508
  * Get the constructor function for this class (if exists), or undefined if not exist
485
509
  */
@@ -501,16 +525,22 @@ export declare class ClassStatement extends Statement implements TypedefProvider
501
525
  */
502
526
  private getTranspiledClassFunction;
503
527
  walk(visitor: WalkVisitor, options: WalkOptions): void;
528
+ getType(options: GetTypeOptions): ClassType;
504
529
  }
505
530
  export declare class MethodStatement extends FunctionStatement {
506
531
  override: Token;
507
532
  constructor(modifiers: Token | Token[], name: Identifier, func: FunctionExpression, override: Token);
533
+ readonly kind: AstNodeKind;
508
534
  modifiers: Token[];
509
535
  get accessModifier(): Token;
510
- get range(): Range;
511
- cacheRange(): Range;
536
+ readonly range: Range;
537
+ /**
538
+ * Get the name of this method.
539
+ */
540
+ getName(parseMode: ParseMode): string;
541
+ getLeadingTrivia(): Token[];
512
542
  transpile(state: BrsTranspileState): any[];
513
- getTypedef(state: BrsTranspileState): string[];
543
+ getTypedef(state: BrsTranspileState): (string | SourceNode)[];
514
544
  /**
515
545
  * All child classes must call the parent constructor. The type checker will warn users when they don't call it in their own class,
516
546
  * but we still need to call it even if they have omitted it. This injects the super call if it's missing
@@ -526,25 +556,25 @@ export declare class FieldStatement extends Statement implements TypedefProvider
526
556
  readonly accessModifier?: Token;
527
557
  readonly name?: Identifier;
528
558
  readonly as?: Token;
529
- readonly type?: TypeExpression;
559
+ readonly typeExpression?: TypeExpression;
530
560
  readonly equal?: Token;
531
561
  readonly initialValue?: Expression;
532
- readonly namespaceName?: NamespacedVariableNameExpression;
533
- constructor(accessModifier?: Token, name?: Identifier, as?: Token, type?: TypeExpression, equal?: Token, initialValue?: Expression, namespaceName?: NamespacedVariableNameExpression);
534
- readonly range: Range;
562
+ readonly optional?: Token;
563
+ constructor(accessModifier?: Token, name?: Identifier, as?: Token, typeExpression?: TypeExpression, equal?: Token, initialValue?: Expression, optional?: Token);
564
+ readonly kind = AstNodeKind.FieldStatement;
535
565
  /**
536
566
  * Derive a ValueKind from the type token, or the initial value.
537
567
  * Defaults to `DynamicType`
538
568
  */
539
- getType(parseMode?: ParseMode): DynamicType | import("../types/BscType").BscType;
569
+ getType(options: GetTypeOptions): BscType;
570
+ readonly range: Range;
571
+ getLeadingTrivia(): Token[];
572
+ get isOptional(): boolean;
540
573
  transpile(state: BrsTranspileState): TranspileResult;
541
574
  getTypedef(state: BrsTranspileState): any[];
542
575
  walk(visitor: WalkVisitor, options: WalkOptions): void;
543
576
  }
544
577
  export declare type MemberStatement = FieldStatement | MethodStatement;
545
- export declare type InterfaceMemberStatement = InterfaceFieldStatement | InterfaceMethodStatement;
546
- export declare type MemberFieldStatement = FieldStatement | InterfaceFieldStatement;
547
- export declare type MemberMethodStatement = MethodStatement | InterfaceMethodStatement;
548
578
  export declare class TryCatchStatement extends Statement {
549
579
  tokens: {
550
580
  try: Token;
@@ -556,6 +586,7 @@ export declare class TryCatchStatement extends Statement {
556
586
  try: Token;
557
587
  endTry?: Token;
558
588
  }, tryBranch?: Block, catchStatement?: CatchStatement);
589
+ readonly kind = AstNodeKind.TryCatchStatement;
559
590
  readonly range: Range;
560
591
  transpile(state: BrsTranspileState): TranspileResult;
561
592
  walk(visitor: WalkVisitor, options: WalkOptions): void;
@@ -569,7 +600,8 @@ export declare class CatchStatement extends Statement {
569
600
  constructor(tokens: {
570
601
  catch: Token;
571
602
  }, exceptionVariable?: Identifier, catchBranch?: Block);
572
- get range(): Range;
603
+ readonly kind = AstNodeKind.CatchStatement;
604
+ range: Range;
573
605
  transpile(state: BrsTranspileState): TranspileResult;
574
606
  walk(visitor: WalkVisitor, options: WalkOptions): void;
575
607
  }
@@ -577,7 +609,8 @@ export declare class ThrowStatement extends Statement {
577
609
  throwToken: Token;
578
610
  expression?: Expression;
579
611
  constructor(throwToken: Token, expression?: Expression);
580
- readonly range: Range;
612
+ readonly kind = AstNodeKind.ThrowStatement;
613
+ range: Range;
581
614
  transpile(state: BrsTranspileState): (string | SourceNode)[];
582
615
  walk(visitor: WalkVisitor, options: WalkOptions): void;
583
616
  }
@@ -588,22 +621,22 @@ export declare class EnumStatement extends Statement implements TypedefProvider
588
621
  endEnum: Token;
589
622
  };
590
623
  body: Array<EnumMemberStatement | CommentStatement>;
591
- namespaceName?: NamespacedVariableNameExpression;
592
- readonly symbolTable: SymbolTable;
593
624
  constructor(tokens: {
594
625
  enum: Token;
595
626
  name: Identifier;
596
627
  endEnum: Token;
597
- }, body: Array<EnumMemberStatement | CommentStatement>, namespaceName?: NamespacedVariableNameExpression);
598
- readonly range: Range;
628
+ }, body: Array<EnumMemberStatement | CommentStatement>);
629
+ readonly kind = AstNodeKind.EnumStatement;
630
+ symbolTable: SymbolTable;
631
+ get range(): Range;
599
632
  getMembers(): EnumMemberStatement[];
633
+ getLeadingTrivia(): Token[];
600
634
  /**
601
635
  * Get a map of member names and their values.
602
636
  * All values are stored as their AST LiteralExpression representation (i.e. string enum values include the wrapping quotes)
603
637
  */
604
638
  getMemberValueMap(): Map<string, string>;
605
639
  getMemberValue(name: string): string;
606
- buildSymbolTable(): void;
607
640
  /**
608
641
  * The name of the enum (without the namespace prefix)
609
642
  */
@@ -612,10 +645,10 @@ export declare class EnumStatement extends Statement implements TypedefProvider
612
645
  * The name of the enum WITH its leading namespace (if applicable)
613
646
  */
614
647
  get fullName(): string;
615
- getThisBscType(): EnumType;
616
648
  transpile(state: BrsTranspileState): any[];
617
649
  getTypedef(state: BrsTranspileState): TranspileResult;
618
650
  walk(visitor: WalkVisitor, options: WalkOptions): void;
651
+ getType(options: GetTypeOptions): EnumType;
619
652
  }
620
653
  export declare class EnumMemberStatement extends Statement implements TypedefProvider {
621
654
  tokens: {
@@ -627,14 +660,17 @@ export declare class EnumMemberStatement extends Statement implements TypedefPro
627
660
  name: Identifier;
628
661
  equal?: Token;
629
662
  }, value?: Expression);
630
- readonly range: Range;
663
+ readonly kind = AstNodeKind.EnumMemberStatement;
664
+ get range(): Range;
631
665
  /**
632
666
  * The name of the member
633
667
  */
634
668
  get name(): string;
669
+ getLeadingTrivia(): Token[];
635
670
  transpile(state: BrsTranspileState): TranspileResult;
636
671
  getTypedef(state: BrsTranspileState): (string | SourceNode)[];
637
672
  walk(visitor: WalkVisitor, options: WalkOptions): void;
673
+ getType(options: GetTypeOptions): EnumMemberType;
638
674
  }
639
675
  export declare class ConstStatement extends Statement implements TypedefProvider {
640
676
  tokens: {
@@ -643,14 +679,15 @@ export declare class ConstStatement extends Statement implements TypedefProvider
643
679
  equals: Token;
644
680
  };
645
681
  value: Expression;
646
- readonly namespaceName?: NamespacedVariableNameExpression;
647
682
  constructor(tokens: {
648
683
  const: Token;
649
684
  name: Identifier;
650
685
  equals: Token;
651
- }, value: Expression, namespaceName?: NamespacedVariableNameExpression);
686
+ }, value: Expression);
687
+ readonly kind = AstNodeKind.ConstStatement;
652
688
  range: Range;
653
689
  get name(): string;
690
+ getLeadingTrivia(): Token[];
654
691
  /**
655
692
  * The name of the statement WITH its leading namespace (if applicable)
656
693
  */
@@ -658,4 +695,19 @@ export declare class ConstStatement extends Statement implements TypedefProvider
658
695
  transpile(state: BrsTranspileState): TranspileResult;
659
696
  getTypedef(state: BrsTranspileState): (string | SourceNode)[];
660
697
  walk(visitor: WalkVisitor, options: WalkOptions): void;
698
+ getType(options: GetTypeOptions): BscType;
699
+ }
700
+ export declare class ContinueStatement extends Statement {
701
+ tokens: {
702
+ continue: Token;
703
+ loopType: Token;
704
+ };
705
+ constructor(tokens: {
706
+ continue: Token;
707
+ loopType: Token;
708
+ });
709
+ readonly kind = AstNodeKind.ContinueStatement;
710
+ range: Range;
711
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
712
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
661
713
  }