brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.51

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 (652) hide show
  1. package/README.md +79 -138
  2. package/bsconfig.schema.json +196 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +161 -43
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +29 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +20 -15
  23. package/dist/CommentFlagProcessor.js +143 -58
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +650 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +83 -0
  38. package/dist/DiagnosticManager.js +422 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +602 -196
  41. package/dist/DiagnosticMessages.js +926 -342
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +136 -104
  53. package/dist/LanguageServer.js +577 -741
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +302 -98
  62. package/dist/Program.js +1613 -726
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +39 -22
  65. package/dist/ProgramBuilder.js +245 -179
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +227 -106
  68. package/dist/Scope.js +609 -557
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  71. package/dist/ScopeNamespaceLookup.js +242 -0
  72. package/dist/ScopeNamespaceLookup.js.map +1 -0
  73. package/dist/SemanticTokenUtils.js +5 -1
  74. package/dist/SemanticTokenUtils.js.map +1 -1
  75. package/dist/Stopwatch.d.ts +4 -0
  76. package/dist/Stopwatch.js +8 -1
  77. package/dist/Stopwatch.js.map +1 -1
  78. package/dist/SymbolTable.d.ts +145 -26
  79. package/dist/SymbolTable.js +575 -64
  80. package/dist/SymbolTable.js.map +1 -1
  81. package/dist/SymbolTypeFlag.d.ts +9 -0
  82. package/dist/SymbolTypeFlag.js +14 -0
  83. package/dist/SymbolTypeFlag.js.map +1 -0
  84. package/dist/Throttler.d.ts +12 -0
  85. package/dist/Throttler.js +39 -0
  86. package/dist/Throttler.js.map +1 -1
  87. package/dist/Watcher.d.ts +0 -3
  88. package/dist/Watcher.js +0 -3
  89. package/dist/Watcher.js.map +1 -1
  90. package/dist/XmlScope.d.ts +5 -15
  91. package/dist/XmlScope.js +34 -90
  92. package/dist/XmlScope.js.map +1 -1
  93. package/dist/astUtils/CachedLookups.d.ts +50 -0
  94. package/dist/astUtils/CachedLookups.js +337 -0
  95. package/dist/astUtils/CachedLookups.js.map +1 -0
  96. package/dist/astUtils/Editor.d.ts +69 -0
  97. package/dist/astUtils/Editor.js +245 -0
  98. package/dist/astUtils/Editor.js.map +1 -0
  99. package/dist/astUtils/creators.d.ts +54 -19
  100. package/dist/astUtils/creators.js +242 -42
  101. package/dist/astUtils/creators.js.map +1 -1
  102. package/dist/astUtils/reflection.d.ts +199 -85
  103. package/dist/astUtils/reflection.js +518 -145
  104. package/dist/astUtils/reflection.js.map +1 -1
  105. package/dist/astUtils/stackedVisitor.js.map +1 -1
  106. package/dist/astUtils/visitors.d.ts +117 -53
  107. package/dist/astUtils/visitors.js +95 -15
  108. package/dist/astUtils/visitors.js.map +1 -1
  109. package/dist/astUtils/xml.d.ts +9 -8
  110. package/dist/astUtils/xml.js +12 -7
  111. package/dist/astUtils/xml.js.map +1 -1
  112. package/dist/bscPlugin/BscPlugin.d.ts +26 -4
  113. package/dist/bscPlugin/BscPlugin.js +96 -4
  114. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  115. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  116. package/dist/bscPlugin/CallExpressionInfo.js +142 -0
  117. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  118. package/dist/bscPlugin/FileWriter.d.ts +19 -0
  119. package/dist/bscPlugin/FileWriter.js +79 -0
  120. package/dist/bscPlugin/FileWriter.js.map +1 -0
  121. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  122. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  123. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  124. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
  125. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
  126. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  127. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  128. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  129. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  130. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  131. package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
  132. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  133. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  134. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  135. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  136. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  137. package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
  138. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  139. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  140. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  141. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  142. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  143. package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
  144. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  145. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  146. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  147. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  148. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  149. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
  150. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  151. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  152. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  153. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  154. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  155. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  156. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  157. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  158. package/dist/bscPlugin/serialize/FileSerializer.js +80 -0
  159. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  160. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  161. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  162. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  163. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  164. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  165. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  166. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  167. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  168. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  169. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
  170. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
  171. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  172. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  173. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  174. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  175. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  176. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  177. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  178. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
  179. package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
  180. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  181. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  182. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  183. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  184. package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
  185. package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
  186. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  187. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  188. package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
  189. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  190. package/dist/cli.js +140 -28
  191. package/dist/cli.js.map +1 -1
  192. package/dist/common/Sequencer.d.ts +53 -0
  193. package/dist/common/Sequencer.js +233 -0
  194. package/dist/common/Sequencer.js.map +1 -0
  195. package/dist/deferred.d.ts +5 -3
  196. package/dist/deferred.js +10 -0
  197. package/dist/deferred.js.map +1 -1
  198. package/dist/diagnosticUtils.d.ts +61 -4
  199. package/dist/diagnosticUtils.js +285 -25
  200. package/dist/diagnosticUtils.js.map +1 -1
  201. package/dist/examples/plugins/removePrint.d.ts +2 -2
  202. package/dist/examples/plugins/removePrint.js +8 -12
  203. package/dist/examples/plugins/removePrint.js.map +1 -1
  204. package/dist/files/AssetFile.d.ts +24 -0
  205. package/dist/files/AssetFile.js +25 -0
  206. package/dist/files/AssetFile.js.map +1 -0
  207. package/dist/files/BrsFile.d.ts +161 -87
  208. package/dist/files/BrsFile.js +919 -936
  209. package/dist/files/BrsFile.js.map +1 -1
  210. package/dist/files/BscFile.d.ts +102 -0
  211. package/dist/files/BscFile.js +15 -0
  212. package/dist/files/BscFile.js.map +1 -0
  213. package/dist/files/Factory.d.ts +25 -0
  214. package/dist/files/Factory.js +22 -0
  215. package/dist/files/Factory.js.map +1 -0
  216. package/dist/files/LazyFileData.d.ts +21 -0
  217. package/dist/files/LazyFileData.js +54 -0
  218. package/dist/files/LazyFileData.js.map +1 -0
  219. package/dist/files/XmlFile.d.ts +80 -41
  220. package/dist/files/XmlFile.js +162 -137
  221. package/dist/files/XmlFile.js.map +1 -1
  222. package/dist/globalCallables.d.ts +3 -1
  223. package/dist/globalCallables.js +424 -184
  224. package/dist/globalCallables.js.map +1 -1
  225. package/dist/index.d.ts +32 -4
  226. package/dist/index.js +54 -7
  227. package/dist/index.js.map +1 -1
  228. package/dist/interfaces.d.ts +987 -125
  229. package/dist/interfaces.js +21 -0
  230. package/dist/interfaces.js.map +1 -1
  231. package/dist/lexer/Lexer.d.ts +51 -12
  232. package/dist/lexer/Lexer.js +214 -65
  233. package/dist/lexer/Lexer.js.map +1 -1
  234. package/dist/lexer/Token.d.ts +27 -11
  235. package/dist/lexer/Token.js +10 -2
  236. package/dist/lexer/Token.js.map +1 -1
  237. package/dist/lexer/TokenKind.d.ts +48 -2
  238. package/dist/lexer/TokenKind.js +167 -10
  239. package/dist/lexer/TokenKind.js.map +1 -1
  240. package/dist/logging.d.ts +14 -0
  241. package/dist/logging.js +29 -0
  242. package/dist/logging.js.map +1 -0
  243. package/dist/lsp/ActionQueue.d.ts +35 -0
  244. package/dist/lsp/ActionQueue.js +115 -0
  245. package/dist/lsp/ActionQueue.js.map +1 -0
  246. package/dist/lsp/DocumentManager.d.ts +63 -0
  247. package/dist/lsp/DocumentManager.js +122 -0
  248. package/dist/lsp/DocumentManager.js.map +1 -0
  249. package/dist/lsp/LspProject.d.ts +287 -0
  250. package/dist/lsp/LspProject.js +3 -0
  251. package/dist/lsp/LspProject.js.map +1 -0
  252. package/dist/lsp/PathFilterer.d.ts +75 -0
  253. package/dist/lsp/PathFilterer.js +196 -0
  254. package/dist/lsp/PathFilterer.js.map +1 -0
  255. package/dist/lsp/Project.d.ts +200 -0
  256. package/dist/lsp/Project.js +562 -0
  257. package/dist/lsp/Project.js.map +1 -0
  258. package/dist/lsp/ProjectManager.d.ts +288 -0
  259. package/dist/lsp/ProjectManager.js +967 -0
  260. package/dist/lsp/ProjectManager.js.map +1 -0
  261. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  262. package/dist/lsp/ReaderWriterManager.js +60 -0
  263. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  264. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  265. package/dist/lsp/worker/MessageHandler.js +138 -0
  266. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  267. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  268. package/dist/lsp/worker/WorkerPool.js +78 -0
  269. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  270. package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
  271. package/dist/lsp/worker/WorkerThreadProject.js +205 -0
  272. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  273. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  274. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  275. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  276. package/dist/lsp/worker/run.js +14 -0
  277. package/dist/lsp/worker/run.js.map +1 -0
  278. package/dist/parser/AstNode.d.ts +205 -0
  279. package/dist/parser/AstNode.js +305 -0
  280. package/dist/parser/AstNode.js.map +1 -0
  281. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  282. package/dist/parser/BrightScriptDocParser.js +294 -0
  283. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  284. package/dist/parser/BrsTranspileState.d.ts +22 -3
  285. package/dist/parser/BrsTranspileState.js +19 -0
  286. package/dist/parser/BrsTranspileState.js.map +1 -1
  287. package/dist/parser/Expression.d.ts +601 -220
  288. package/dist/parser/Expression.js +1516 -502
  289. package/dist/parser/Expression.js.map +1 -1
  290. package/dist/parser/Parser.d.ts +137 -121
  291. package/dist/parser/Parser.js +1808 -982
  292. package/dist/parser/Parser.js.map +1 -1
  293. package/dist/parser/SGParser.d.ts +30 -13
  294. package/dist/parser/SGParser.js +94 -56
  295. package/dist/parser/SGParser.js.map +1 -1
  296. package/dist/parser/SGTypes.d.ts +134 -46
  297. package/dist/parser/SGTypes.js +206 -115
  298. package/dist/parser/SGTypes.js.map +1 -1
  299. package/dist/parser/Statement.d.ts +854 -267
  300. package/dist/parser/Statement.js +2416 -621
  301. package/dist/parser/Statement.js.map +1 -1
  302. package/dist/parser/TranspileState.d.ts +30 -14
  303. package/dist/parser/TranspileState.js +124 -27
  304. package/dist/parser/TranspileState.js.map +1 -1
  305. package/dist/preprocessor/Manifest.d.ts +6 -6
  306. package/dist/preprocessor/Manifest.js +17 -38
  307. package/dist/preprocessor/Manifest.js.map +1 -1
  308. package/dist/roku-types/data.json +20554 -0
  309. package/dist/roku-types/index.d.ts +5726 -0
  310. package/dist/roku-types/index.js +11 -0
  311. package/dist/roku-types/index.js.map +1 -0
  312. package/dist/types/ArrayType.d.ts +12 -5
  313. package/dist/types/ArrayType.js +95 -25
  314. package/dist/types/ArrayType.js.map +1 -1
  315. package/dist/types/AssociativeArrayType.d.ts +15 -0
  316. package/dist/types/AssociativeArrayType.js +64 -0
  317. package/dist/types/AssociativeArrayType.js.map +1 -0
  318. package/dist/types/BaseFunctionType.d.ts +10 -0
  319. package/dist/types/BaseFunctionType.js +26 -0
  320. package/dist/types/BaseFunctionType.js.map +1 -0
  321. package/dist/types/BooleanType.d.ts +9 -5
  322. package/dist/types/BooleanType.js +19 -8
  323. package/dist/types/BooleanType.js.map +1 -1
  324. package/dist/types/BscType.d.ts +41 -3
  325. package/dist/types/BscType.js +152 -0
  326. package/dist/types/BscType.js.map +1 -1
  327. package/dist/types/BscTypeKind.d.ts +28 -0
  328. package/dist/types/BscTypeKind.js +33 -0
  329. package/dist/types/BscTypeKind.js.map +1 -0
  330. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  331. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  332. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  333. package/dist/types/CallFuncableType.d.ts +24 -0
  334. package/dist/types/CallFuncableType.js +91 -0
  335. package/dist/types/CallFuncableType.js.map +1 -0
  336. package/dist/types/ClassType.d.ts +17 -0
  337. package/dist/types/ClassType.js +63 -0
  338. package/dist/types/ClassType.js.map +1 -0
  339. package/dist/types/ComponentType.d.ts +22 -0
  340. package/dist/types/ComponentType.js +110 -0
  341. package/dist/types/ComponentType.js.map +1 -0
  342. package/dist/types/DoubleType.d.ts +10 -5
  343. package/dist/types/DoubleType.js +21 -17
  344. package/dist/types/DoubleType.js.map +1 -1
  345. package/dist/types/DynamicType.d.ts +13 -5
  346. package/dist/types/DynamicType.js +26 -5
  347. package/dist/types/DynamicType.js.map +1 -1
  348. package/dist/types/EnumType.d.ts +42 -0
  349. package/dist/types/EnumType.js +101 -0
  350. package/dist/types/EnumType.js.map +1 -0
  351. package/dist/types/FloatType.d.ts +10 -5
  352. package/dist/types/FloatType.js +21 -17
  353. package/dist/types/FloatType.js.map +1 -1
  354. package/dist/types/FunctionType.d.ts +8 -22
  355. package/dist/types/FunctionType.js +25 -63
  356. package/dist/types/FunctionType.js.map +1 -1
  357. package/dist/types/InheritableType.d.ts +29 -0
  358. package/dist/types/InheritableType.js +173 -0
  359. package/dist/types/InheritableType.js.map +1 -0
  360. package/dist/types/InlineInterfaceType.d.ts +5 -0
  361. package/dist/types/InlineInterfaceType.js +17 -0
  362. package/dist/types/InlineInterfaceType.js.map +1 -0
  363. package/dist/types/IntegerType.d.ts +10 -5
  364. package/dist/types/IntegerType.js +21 -17
  365. package/dist/types/IntegerType.js.map +1 -1
  366. package/dist/types/InterfaceType.d.ts +14 -6
  367. package/dist/types/InterfaceType.js +30 -15
  368. package/dist/types/InterfaceType.js.map +1 -1
  369. package/dist/types/IntersectionType.d.ts +29 -0
  370. package/dist/types/IntersectionType.js +256 -0
  371. package/dist/types/IntersectionType.js.map +1 -0
  372. package/dist/types/InvalidType.d.ts +10 -5
  373. package/dist/types/InvalidType.js +21 -9
  374. package/dist/types/InvalidType.js.map +1 -1
  375. package/dist/types/LongIntegerType.d.ts +10 -5
  376. package/dist/types/LongIntegerType.js +21 -17
  377. package/dist/types/LongIntegerType.js.map +1 -1
  378. package/dist/types/NamespaceType.d.ts +12 -0
  379. package/dist/types/NamespaceType.js +28 -0
  380. package/dist/types/NamespaceType.js.map +1 -0
  381. package/dist/types/ObjectType.d.ts +12 -5
  382. package/dist/types/ObjectType.js +25 -8
  383. package/dist/types/ObjectType.js.map +1 -1
  384. package/dist/types/ReferenceType.d.ts +123 -0
  385. package/dist/types/ReferenceType.js +726 -0
  386. package/dist/types/ReferenceType.js.map +1 -0
  387. package/dist/types/StringType.d.ts +12 -5
  388. package/dist/types/StringType.js +23 -8
  389. package/dist/types/StringType.js.map +1 -1
  390. package/dist/types/TypeStatementType.d.ts +19 -0
  391. package/dist/types/TypeStatementType.js +56 -0
  392. package/dist/types/TypeStatementType.js.map +1 -0
  393. package/dist/types/TypedFunctionType.d.ts +34 -0
  394. package/dist/types/TypedFunctionType.js +157 -0
  395. package/dist/types/TypedFunctionType.js.map +1 -0
  396. package/dist/types/UninitializedType.d.ts +11 -6
  397. package/dist/types/UninitializedType.js +20 -11
  398. package/dist/types/UninitializedType.js.map +1 -1
  399. package/dist/types/UnionType.d.ts +27 -0
  400. package/dist/types/UnionType.js +196 -0
  401. package/dist/types/UnionType.js.map +1 -0
  402. package/dist/types/VoidType.d.ts +11 -5
  403. package/dist/types/VoidType.js +22 -8
  404. package/dist/types/VoidType.js.map +1 -1
  405. package/dist/types/helpers.d.ts +51 -0
  406. package/dist/types/helpers.js +329 -0
  407. package/dist/types/helpers.js.map +1 -0
  408. package/dist/types/index.d.ts +22 -0
  409. package/dist/types/index.js +39 -0
  410. package/dist/types/index.js.map +1 -0
  411. package/dist/types/roFunctionType.d.ts +11 -0
  412. package/dist/types/roFunctionType.js +37 -0
  413. package/dist/types/roFunctionType.js.map +1 -0
  414. package/dist/util.d.ts +325 -185
  415. package/dist/util.js +2135 -568
  416. package/dist/util.js.map +1 -1
  417. package/dist/validators/ClassValidator.d.ts +9 -15
  418. package/dist/validators/ClassValidator.js +93 -138
  419. package/dist/validators/ClassValidator.js.map +1 -1
  420. package/package.json +183 -138
  421. package/CHANGELOG.md +0 -1188
  422. package/dist/astUtils/creators.spec.js +0 -21
  423. package/dist/astUtils/creators.spec.js.map +0 -1
  424. package/dist/astUtils/index.d.ts +0 -7
  425. package/dist/astUtils/index.js +0 -26
  426. package/dist/astUtils/index.js.map +0 -1
  427. package/dist/astUtils/reflection.spec.d.ts +0 -1
  428. package/dist/astUtils/reflection.spec.js +0 -292
  429. package/dist/astUtils/reflection.spec.js.map +0 -1
  430. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  431. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  432. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  433. package/dist/astUtils/visitors.spec.d.ts +0 -1
  434. package/dist/astUtils/visitors.spec.js +0 -854
  435. package/dist/astUtils/visitors.spec.js.map +0 -1
  436. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  437. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -194
  438. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  439. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  440. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  441. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  442. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
  443. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  444. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  445. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  446. package/dist/files/BrsFile.Class.spec.js +0 -1081
  447. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  448. package/dist/files/BrsFile.spec.d.ts +0 -1
  449. package/dist/files/BrsFile.spec.js +0 -2524
  450. package/dist/files/BrsFile.spec.js.map +0 -1
  451. package/dist/files/XmlFile.spec.d.ts +0 -1
  452. package/dist/files/XmlFile.spec.js +0 -1065
  453. package/dist/files/XmlFile.spec.js.map +0 -1
  454. package/dist/files/tests/imports.spec.d.ts +0 -1
  455. package/dist/files/tests/imports.spec.js +0 -241
  456. package/dist/files/tests/imports.spec.js.map +0 -1
  457. package/dist/lexer/Character.spec.d.ts +0 -1
  458. package/dist/lexer/Character.spec.js +0 -27
  459. package/dist/lexer/Character.spec.js.map +0 -1
  460. package/dist/lexer/Lexer.spec.d.ts +0 -1
  461. package/dist/lexer/Lexer.spec.js +0 -1101
  462. package/dist/lexer/Lexer.spec.js.map +0 -1
  463. package/dist/lexer/index.d.ts +0 -3
  464. package/dist/lexer/index.js +0 -17
  465. package/dist/lexer/index.js.map +0 -1
  466. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  467. package/dist/parser/Parser.Class.spec.js +0 -390
  468. package/dist/parser/Parser.Class.spec.js.map +0 -1
  469. package/dist/parser/Parser.spec.d.ts +0 -4
  470. package/dist/parser/Parser.spec.js +0 -1216
  471. package/dist/parser/Parser.spec.js.map +0 -1
  472. package/dist/parser/SGParser.spec.d.ts +0 -1
  473. package/dist/parser/SGParser.spec.js +0 -145
  474. package/dist/parser/SGParser.spec.js.map +0 -1
  475. package/dist/parser/SGTypes.spec.d.ts +0 -1
  476. package/dist/parser/SGTypes.spec.js +0 -351
  477. package/dist/parser/SGTypes.spec.js.map +0 -1
  478. package/dist/parser/Statement.spec.d.ts +0 -1
  479. package/dist/parser/Statement.spec.js +0 -94
  480. package/dist/parser/Statement.spec.js.map +0 -1
  481. package/dist/parser/index.d.ts +0 -3
  482. package/dist/parser/index.js +0 -16
  483. package/dist/parser/index.js.map +0 -1
  484. package/dist/parser/tests/Parser.spec.d.ts +0 -18
  485. package/dist/parser/tests/Parser.spec.js +0 -35
  486. package/dist/parser/tests/Parser.spec.js.map +0 -1
  487. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  488. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  489. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  490. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  491. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  492. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  493. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  494. package/dist/parser/tests/controlFlow/If.spec.js +0 -551
  495. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  496. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  497. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  498. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  499. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  500. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  501. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  502. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  503. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -254
  504. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  505. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  506. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -266
  507. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  508. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  509. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  510. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  511. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  512. package/dist/parser/tests/expression/Call.spec.js +0 -134
  513. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  514. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  515. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  516. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  517. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  518. package/dist/parser/tests/expression/Function.spec.js +0 -403
  519. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  520. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  521. package/dist/parser/tests/expression/Indexing.spec.js +0 -219
  522. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  523. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  524. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  525. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  526. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  527. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -201
  528. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  529. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  530. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  531. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  532. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  533. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  534. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  535. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  536. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  537. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  538. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  539. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  540. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  541. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  542. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -202
  543. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  544. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  545. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -323
  546. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  547. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  548. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  549. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  550. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  551. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  552. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  553. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  554. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  555. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  556. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  557. package/dist/parser/tests/statement/Function.spec.js +0 -332
  558. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  559. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  560. package/dist/parser/tests/statement/Goto.spec.js +0 -50
  561. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  562. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  563. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  564. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  565. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  566. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  567. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  568. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  569. package/dist/parser/tests/statement/Misc.spec.js +0 -333
  570. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  571. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  572. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -181
  573. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  574. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  575. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  576. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  577. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  578. package/dist/parser/tests/statement/Set.spec.js +0 -218
  579. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  580. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  581. package/dist/parser/tests/statement/Stop.spec.js +0 -37
  582. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  583. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  584. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  585. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  586. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  587. package/dist/parser/tests/statement/TryCatch.spec.js +0 -140
  588. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  589. package/dist/preprocessor/Chunk.d.ts +0 -82
  590. package/dist/preprocessor/Chunk.js +0 -77
  591. package/dist/preprocessor/Chunk.js.map +0 -1
  592. package/dist/preprocessor/Manifest.spec.d.ts +0 -0
  593. package/dist/preprocessor/Manifest.spec.js +0 -105
  594. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  595. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  596. package/dist/preprocessor/Preprocessor.js +0 -156
  597. package/dist/preprocessor/Preprocessor.js.map +0 -1
  598. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  599. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  600. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  601. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  602. package/dist/preprocessor/PreprocessorParser.js +0 -194
  603. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  604. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  605. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  606. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  607. package/dist/preprocessor/index.d.ts +0 -3
  608. package/dist/preprocessor/index.js +0 -16
  609. package/dist/preprocessor/index.js.map +0 -1
  610. package/dist/types/ArrayType.spec.d.ts +0 -1
  611. package/dist/types/ArrayType.spec.js +0 -30
  612. package/dist/types/ArrayType.spec.js.map +0 -1
  613. package/dist/types/BooleanType.spec.d.ts +0 -1
  614. package/dist/types/BooleanType.spec.js +0 -12
  615. package/dist/types/BooleanType.spec.js.map +0 -1
  616. package/dist/types/CustomType.d.ts +0 -10
  617. package/dist/types/CustomType.js +0 -35
  618. package/dist/types/CustomType.js.map +0 -1
  619. package/dist/types/DoubleType.spec.d.ts +0 -1
  620. package/dist/types/DoubleType.spec.js +0 -12
  621. package/dist/types/DoubleType.spec.js.map +0 -1
  622. package/dist/types/DynamicType.spec.d.ts +0 -1
  623. package/dist/types/DynamicType.spec.js +0 -12
  624. package/dist/types/DynamicType.spec.js.map +0 -1
  625. package/dist/types/FloatType.spec.d.ts +0 -1
  626. package/dist/types/FloatType.spec.js +0 -12
  627. package/dist/types/FloatType.spec.js.map +0 -1
  628. package/dist/types/FunctionType.spec.d.ts +0 -1
  629. package/dist/types/FunctionType.spec.js +0 -29
  630. package/dist/types/FunctionType.spec.js.map +0 -1
  631. package/dist/types/IntegerType.spec.d.ts +0 -1
  632. package/dist/types/IntegerType.spec.js +0 -12
  633. package/dist/types/IntegerType.spec.js.map +0 -1
  634. package/dist/types/InvalidType.spec.d.ts +0 -1
  635. package/dist/types/InvalidType.spec.js +0 -12
  636. package/dist/types/InvalidType.spec.js.map +0 -1
  637. package/dist/types/LazyType.d.ts +0 -15
  638. package/dist/types/LazyType.js +0 -32
  639. package/dist/types/LazyType.js.map +0 -1
  640. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  641. package/dist/types/LongIntegerType.spec.js +0 -12
  642. package/dist/types/LongIntegerType.spec.js.map +0 -1
  643. package/dist/types/ObjectType.spec.d.ts +0 -1
  644. package/dist/types/ObjectType.spec.js +0 -12
  645. package/dist/types/ObjectType.spec.js.map +0 -1
  646. package/dist/types/StringType.spec.d.ts +0 -1
  647. package/dist/types/StringType.spec.js +0 -12
  648. package/dist/types/StringType.spec.js.map +0 -1
  649. package/dist/types/VoidType.spec.d.ts +0 -1
  650. package/dist/types/VoidType.spec.js +0 -12
  651. package/dist/types/VoidType.spec.js.map +0 -1
  652. /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
@@ -0,0 +1,205 @@
1
+ import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
2
+ import type { Location, Position } from 'vscode-languageserver';
3
+ import { CancellationTokenSource } from 'vscode-languageserver';
4
+ import { InternalWalkMode } from '../astUtils/visitors';
5
+ import type { SymbolTable } from '../SymbolTable';
6
+ import type { BrsTranspileState } from './BrsTranspileState';
7
+ import type { GetTypeOptions, TranspileResult } from '../interfaces';
8
+ import type { AnnotationExpression } from './Expression';
9
+ import type { BscType } from '../types/BscType';
10
+ import type { Token } from '../lexer/Token';
11
+ /**
12
+ * A BrightScript AST node
13
+ */
14
+ export declare abstract class AstNode {
15
+ abstract kind: AstNodeKind;
16
+ /**
17
+ * The starting and ending location of the node.
18
+ */
19
+ abstract location?: Location | undefined;
20
+ abstract transpile(state: BrsTranspileState): TranspileResult;
21
+ /**
22
+ * Optional property, set at the top level with a map of conditional compile consts and their values
23
+ */
24
+ bsConsts?: Map<string, boolean>;
25
+ /**
26
+ * Get the typedef for this node. (defaults to transpiling the node, should be overridden by subclasses if there's a more specific typedef requirement)
27
+ */
28
+ getTypedef(state: BrsTranspileState): TranspileResult;
29
+ /**
30
+ * When being considered by the walk visitor, this describes what type of element the current class is.
31
+ */
32
+ visitMode: InternalWalkMode;
33
+ abstract walk(visitor: WalkVisitor, options: WalkOptions): any;
34
+ /**
35
+ * The parent node for this statement. This is set dynamically during `validateFile`, and should not be set directly.
36
+ */
37
+ parent?: AstNode;
38
+ /**
39
+ * Certain expressions or statements can have a symbol table (such as blocks, functions, namespace bodies, etc).
40
+ * If you're interested in getting the closest SymbolTable, use `getSymbolTable` instead.
41
+ */
42
+ symbolTable?: SymbolTable;
43
+ /**
44
+ * Get the closest symbol table for this node
45
+ */
46
+ getSymbolTable(): SymbolTable;
47
+ /**
48
+ * Walk upward and return the first node that results in `true` from the matcher.
49
+ * @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
50
+ * The function's second parameter is a cancellation token. If you'd like to short-circuit the walk, call `cancellationToken.cancel()`, then this function will return `undefined`
51
+ */
52
+ findAncestor<TNode extends AstNode = AstNode>(matcher: (node: AstNode, cancellationToken: CancellationTokenSource) => boolean | AstNode | undefined | void): TNode | undefined;
53
+ /**
54
+ * Find the first child where the matcher evaluates to true.
55
+ * @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
56
+ */
57
+ findChild<TNode = AstNode>(matcher: (node: AstNode, cancellationSource: any) => boolean | AstNode | undefined | void, options?: WalkOptions): TNode | undefined;
58
+ /**
59
+ * Find a list of all children first child where the matcher evaluates to true.
60
+ * @param matcher a function called for each node. If you return true, the specified node is included in the results. If you return a node,
61
+ * that node is returned. all other return values exclude that value and continue the loop
62
+ */
63
+ findChildren<TNode extends AstNode = AstNode>(matcher: (node: AstNode, cancellationSource: CancellationTokenSource) => boolean | AstNode | undefined | void, options?: WalkOptions): Array<TNode>;
64
+ /**
65
+ * FInd the deepest child that includes the given position
66
+ */
67
+ findChildAtPosition<TNodeType extends AstNode = AstNode>(position: Position, options?: WalkOptions): TNodeType | undefined;
68
+ /**
69
+ * Get the BscType of this node.
70
+ */
71
+ getType(options: GetTypeOptions): BscType;
72
+ /**
73
+ * Links all child nodes to their parent AstNode, and the same with symbol tables. This performs a full AST walk, so you should use this sparingly
74
+ */
75
+ link(): void;
76
+ /**
77
+ * Walk upward and return the root node
78
+ */
79
+ getRoot(): AstNode;
80
+ /**
81
+ * Gets all the trivia (comments, whitespace) that is directly before the start of this node
82
+ * Note: this includes all trivia that might start on the line of the previous node
83
+ */
84
+ get leadingTrivia(): Token[];
85
+ /**
86
+ * Gets any trivia that is directly before the end of the node
87
+ * For example, this would return all trivia before a `end function` token of a FunctionExpression
88
+ */
89
+ get endTrivia(): Token[];
90
+ getBsConsts(): any;
91
+ /**
92
+ * Clone this node and all of its children. This creates a completely detached and identical copy of the AST.
93
+ * All tokens, statements, expressions, range, and location are cloned.
94
+ */
95
+ abstract clone(): any;
96
+ /**
97
+ * Helper function for creating a clone. This will clone any attached annotations, as well as reparent the cloned node's children to the clone
98
+ */
99
+ protected finalizeClone<T extends AstNode>(clone: T, propsToReparent?: Array<{
100
+ [K in keyof T]: T[K] extends AstNode | AstNode[] ? K : never;
101
+ }[keyof T]>): T;
102
+ /**
103
+ * The index of the statement containing this node (or in the case of a statement, itself) within the containing block.
104
+ */
105
+ get statementIndex(): number;
106
+ }
107
+ export declare abstract class Statement extends AstNode {
108
+ /**
109
+ * When being considered by the walk visitor, this describes what type of element the current class is.
110
+ */
111
+ visitMode: InternalWalkMode;
112
+ /**
113
+ * Annotations for this statement
114
+ */
115
+ annotations?: AnnotationExpression[] | undefined;
116
+ }
117
+ /** A BrightScript expression */
118
+ export declare abstract class Expression extends AstNode {
119
+ /**
120
+ * When being considered by the walk visitor, this describes what type of element the current class is.
121
+ */
122
+ visitMode: InternalWalkMode;
123
+ }
124
+ export declare enum AstNodeKind {
125
+ Body = "Body",
126
+ BinaryExpression = "BinaryExpression",
127
+ CallExpression = "CallExpression",
128
+ FunctionExpression = "FunctionExpression",
129
+ FunctionParameterExpression = "FunctionParameterExpression",
130
+ NamespacedVariableNameExpression = "NamespacedVariableNameExpression",
131
+ DottedGetExpression = "DottedGetExpression",
132
+ XmlAttributeGetExpression = "XmlAttributeGetExpression",
133
+ IndexedGetExpression = "IndexedGetExpression",
134
+ GroupingExpression = "GroupingExpression",
135
+ LiteralExpression = "LiteralExpression",
136
+ EscapedCharCodeLiteralExpression = "EscapedCharCodeLiteralExpression",
137
+ ArrayLiteralExpression = "ArrayLiteralExpression",
138
+ AAMemberExpression = "AAMemberExpression",
139
+ AALiteralExpression = "AALiteralExpression",
140
+ AAIndexedMemberExpression = "AAIndexedMemberExpression",
141
+ UnaryExpression = "UnaryExpression",
142
+ VariableExpression = "VariableExpression",
143
+ SourceLiteralExpression = "SourceLiteralExpression",
144
+ NewExpression = "NewExpression",
145
+ CallfuncExpression = "CallfuncExpression",
146
+ TemplateStringQuasiExpression = "TemplateStringQuasiExpression",
147
+ TemplateStringExpression = "TemplateStringExpression",
148
+ TaggedTemplateStringExpression = "TaggedTemplateStringExpression",
149
+ AnnotationExpression = "AnnotationExpression",
150
+ TernaryExpression = "TernaryExpression",
151
+ NullCoalescingExpression = "NullCoalescingExpression",
152
+ RegexLiteralExpression = "RegexLiteralExpression",
153
+ EmptyStatement = "EmptyStatement",
154
+ AssignmentStatement = "AssignmentStatement",
155
+ ExpressionStatement = "ExpressionStatement",
156
+ ExitStatement = "ExitStatement",
157
+ FunctionStatement = "FunctionStatement",
158
+ IfStatement = "IfStatement",
159
+ IncrementStatement = "IncrementStatement",
160
+ PrintStatement = "PrintStatement",
161
+ DimStatement = "DimStatement",
162
+ GotoStatement = "GotoStatement",
163
+ LabelStatement = "LabelStatement",
164
+ ReturnStatement = "ReturnStatement",
165
+ EndStatement = "EndStatement",
166
+ StopStatement = "StopStatement",
167
+ ForStatement = "ForStatement",
168
+ ForEachStatement = "ForEachStatement",
169
+ WhileStatement = "WhileStatement",
170
+ DottedSetStatement = "DottedSetStatement",
171
+ IndexedSetStatement = "IndexedSetStatement",
172
+ LibraryStatement = "LibraryStatement",
173
+ NamespaceStatement = "NamespaceStatement",
174
+ ImportStatement = "ImportStatement",
175
+ InterfaceStatement = "InterfaceStatement",
176
+ InterfaceFieldStatement = "InterfaceFieldStatement",
177
+ InterfaceMethodStatement = "InterfaceMethodStatement",
178
+ ClassStatement = "ClassStatement",
179
+ MethodStatement = "MethodStatement",
180
+ ClassMethodStatement = "ClassMethodStatement",
181
+ FieldStatement = "FieldStatement",
182
+ ClassFieldStatement = "ClassFieldStatement",
183
+ TryCatchStatement = "TryCatchStatement",
184
+ CatchStatement = "CatchStatement",
185
+ ThrowStatement = "ThrowStatement",
186
+ EnumStatement = "EnumStatement",
187
+ EnumMemberStatement = "EnumMemberStatement",
188
+ ConstStatement = "ConstStatement",
189
+ ContinueStatement = "ContinueStatement",
190
+ Block = "Block",
191
+ TypeExpression = "TypeExpression",
192
+ TypecastExpression = "TypecastExpression",
193
+ TypedArrayExpression = "TypedArrayExpression",
194
+ TypecastStatement = "TypecastStatement",
195
+ AliasStatement = "AliasStatement",
196
+ ConditionalCompileStatement = "ConditionalCompileStatement",
197
+ ConditionalCompileConstStatement = "ConditionalCompileConstStatement",
198
+ ConditionalCompileErrorStatement = "ConditionalCompileErrorStatement",
199
+ AugmentedAssignmentStatement = "AugmentedAssignmentStatement",
200
+ PrintSeparatorExpression = "PrintSeparatorExpression",
201
+ InlineInterfaceExpression = "InlineInterfaceExpression",
202
+ InlineInterfaceMemberExpression = "InlineInterfaceMemberExpression",
203
+ TypeStatement = "TypeStatement",
204
+ TypedFunctionTypeExpression = "TypedFunctionTypeExpression"
205
+ }
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AstNodeKind = exports.Expression = exports.Statement = exports.AstNode = void 0;
4
+ const visitors_1 = require("../astUtils/visitors");
5
+ const vscode_languageserver_1 = require("vscode-languageserver");
6
+ const visitors_2 = require("../astUtils/visitors");
7
+ const util_1 = require("../util");
8
+ const DynamicType_1 = require("../types/DynamicType");
9
+ const reflection_1 = require("../astUtils/reflection");
10
+ /**
11
+ * A BrightScript AST node
12
+ */
13
+ class AstNode {
14
+ constructor() {
15
+ /**
16
+ * When being considered by the walk visitor, this describes what type of element the current class is.
17
+ */
18
+ this.visitMode = visitors_2.InternalWalkMode.visitStatements;
19
+ }
20
+ /**
21
+ * Get the typedef for this node. (defaults to transpiling the node, should be overridden by subclasses if there's a more specific typedef requirement)
22
+ */
23
+ getTypedef(state) {
24
+ return this.transpile(state);
25
+ }
26
+ /**
27
+ * Get the closest symbol table for this node
28
+ */
29
+ getSymbolTable() {
30
+ let node = this;
31
+ while (node) {
32
+ if (node.symbolTable) {
33
+ return node.symbolTable;
34
+ }
35
+ node = node.parent;
36
+ }
37
+ //justification: we are following a chain of nodes until we get to one with a SymbolTable,
38
+ //and the top-level node will always have a SymbolTable. So we'll never hit this undefined,
39
+ //but it is not so easy to convince the typechecker of this.
40
+ return undefined;
41
+ }
42
+ /**
43
+ * Walk upward and return the first node that results in `true` from the matcher.
44
+ * @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
45
+ * The function's second parameter is a cancellation token. If you'd like to short-circuit the walk, call `cancellationToken.cancel()`, then this function will return `undefined`
46
+ */
47
+ findAncestor(matcher) {
48
+ let node = this.parent;
49
+ const cancel = new vscode_languageserver_1.CancellationTokenSource();
50
+ while (node) {
51
+ let matcherValue = matcher(node, cancel);
52
+ if (cancel.token.isCancellationRequested) {
53
+ return;
54
+ }
55
+ if (matcherValue) {
56
+ cancel.cancel();
57
+ return (matcherValue === true ? node : matcherValue);
58
+ }
59
+ node = node.parent;
60
+ }
61
+ }
62
+ /**
63
+ * Find the first child where the matcher evaluates to true.
64
+ * @param matcher a function called for each node. If you return true, this function returns the specified node. If you return a node, that node is returned. all other return values continue the loop
65
+ */
66
+ findChild(matcher, options) {
67
+ const cancel = new vscode_languageserver_1.CancellationTokenSource();
68
+ let result;
69
+ this.walk((node) => {
70
+ const matcherValue = matcher(node, cancel);
71
+ if (matcherValue) {
72
+ cancel.cancel();
73
+ result = matcherValue === true ? node : matcherValue;
74
+ }
75
+ }, Object.assign(Object.assign({ walkMode: visitors_1.WalkMode.visitAllRecursive }, options !== null && options !== void 0 ? options : {}), { cancel: cancel.token }));
76
+ return result;
77
+ }
78
+ /**
79
+ * Find a list of all children first child where the matcher evaluates to true.
80
+ * @param matcher a function called for each node. If you return true, the specified node is included in the results. If you return a node,
81
+ * that node is returned. all other return values exclude that value and continue the loop
82
+ */
83
+ findChildren(matcher, options) {
84
+ const cancel = new vscode_languageserver_1.CancellationTokenSource();
85
+ let result = [];
86
+ this.walk((node) => {
87
+ const matcherValue = matcher(node, cancel);
88
+ if (matcherValue) {
89
+ result.push(matcherValue === true ? node : matcherValue);
90
+ }
91
+ }, Object.assign(Object.assign({ walkMode: visitors_1.WalkMode.visitAllRecursive }, options !== null && options !== void 0 ? options : {}), { cancel: cancel.token }));
92
+ return result;
93
+ }
94
+ /**
95
+ * FInd the deepest child that includes the given position
96
+ */
97
+ findChildAtPosition(position, options) {
98
+ return this.findChild((node) => {
99
+ var _a;
100
+ //if the current node includes this range, keep that node
101
+ if (util_1.default.rangeContains(node === null || node === void 0 ? void 0 : node.location.range, position)) {
102
+ return (_a = node.findChildAtPosition(position, options)) !== null && _a !== void 0 ? _a : node;
103
+ }
104
+ }, options);
105
+ }
106
+ /**
107
+ * Get the BscType of this node.
108
+ */
109
+ getType(options) {
110
+ return DynamicType_1.DynamicType.instance;
111
+ }
112
+ /**
113
+ * Links all child nodes to their parent AstNode, and the same with symbol tables. This performs a full AST walk, so you should use this sparingly
114
+ */
115
+ link() {
116
+ //the act of walking causes the nodes to be linked
117
+ this.walk(() => { }, {
118
+ // eslint-disable-next-line no-bitwise
119
+ walkMode: visitors_1.WalkMode.visitAllRecursive | visitors_2.InternalWalkMode.visitFalseConditionalCompilationBlocks
120
+ });
121
+ }
122
+ /**
123
+ * Walk upward and return the root node
124
+ */
125
+ getRoot() {
126
+ let node = this;
127
+ while (node) {
128
+ if (!node.parent) {
129
+ return node;
130
+ }
131
+ node = node.parent;
132
+ }
133
+ }
134
+ /**
135
+ * Gets all the trivia (comments, whitespace) that is directly before the start of this node
136
+ * Note: this includes all trivia that might start on the line of the previous node
137
+ */
138
+ get leadingTrivia() {
139
+ return [];
140
+ }
141
+ /**
142
+ * Gets any trivia that is directly before the end of the node
143
+ * For example, this would return all trivia before a `end function` token of a FunctionExpression
144
+ */
145
+ get endTrivia() {
146
+ return [];
147
+ }
148
+ getBsConsts() {
149
+ var _a, _b, _c;
150
+ return (_a = this.bsConsts) !== null && _a !== void 0 ? _a : (_c = (_b = this.parent) === null || _b === void 0 ? void 0 : _b.getBsConsts) === null || _c === void 0 ? void 0 : _c.call(_b);
151
+ }
152
+ /**
153
+ * Helper function for creating a clone. This will clone any attached annotations, as well as reparent the cloned node's children to the clone
154
+ */
155
+ finalizeClone(clone, propsToReparent) {
156
+ var _a;
157
+ //clone the annotations if they exist
158
+ if (Array.isArray(this.annotations)) {
159
+ clone.annotations = (_a = this.annotations) === null || _a === void 0 ? void 0 : _a.map(x => x.clone());
160
+ }
161
+ //reparent all of the supplied props
162
+ for (let key of propsToReparent !== null && propsToReparent !== void 0 ? propsToReparent : []) {
163
+ const children = (Array.isArray(clone === null || clone === void 0 ? void 0 : clone[key]) ? clone[key] : [clone === null || clone === void 0 ? void 0 : clone[key]]);
164
+ for (let child of children !== null && children !== void 0 ? children : []) {
165
+ if (child) {
166
+ clone[key].parent = clone;
167
+ }
168
+ }
169
+ }
170
+ //reapply the location if we have one but the clone doesn't
171
+ if (!clone.location && this.location) {
172
+ clone.location = util_1.default.cloneLocation(this.location);
173
+ }
174
+ return clone;
175
+ }
176
+ /**
177
+ * The index of the statement containing this node (or in the case of a statement, itself) within the containing block.
178
+ */
179
+ get statementIndex() {
180
+ if ((0, reflection_1.isBody)(this)) {
181
+ return 0;
182
+ }
183
+ if (!this.parent) {
184
+ return -1;
185
+ }
186
+ let currentNode = this;
187
+ if ((0, reflection_1.isFunctionParameterExpression)(currentNode)) {
188
+ // function parameters are not part of statement lists
189
+ return -1;
190
+ }
191
+ while (currentNode && !((0, reflection_1.isBlock)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent) || (0, reflection_1.isBody)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent))) {
192
+ currentNode = currentNode.parent;
193
+ }
194
+ if ((0, reflection_1.isBlock)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent) || (0, reflection_1.isBody)(currentNode === null || currentNode === void 0 ? void 0 : currentNode.parent)) {
195
+ return currentNode.parent.statements.indexOf(currentNode);
196
+ }
197
+ return -1;
198
+ }
199
+ }
200
+ exports.AstNode = AstNode;
201
+ class Statement extends AstNode {
202
+ constructor() {
203
+ super(...arguments);
204
+ /**
205
+ * When being considered by the walk visitor, this describes what type of element the current class is.
206
+ */
207
+ this.visitMode = visitors_2.InternalWalkMode.visitStatements;
208
+ }
209
+ }
210
+ exports.Statement = Statement;
211
+ /** A BrightScript expression */
212
+ class Expression extends AstNode {
213
+ constructor() {
214
+ super(...arguments);
215
+ /**
216
+ * When being considered by the walk visitor, this describes what type of element the current class is.
217
+ */
218
+ this.visitMode = visitors_2.InternalWalkMode.visitExpressions;
219
+ }
220
+ }
221
+ exports.Expression = Expression;
222
+ var AstNodeKind;
223
+ (function (AstNodeKind) {
224
+ AstNodeKind["Body"] = "Body";
225
+ AstNodeKind["BinaryExpression"] = "BinaryExpression";
226
+ AstNodeKind["CallExpression"] = "CallExpression";
227
+ AstNodeKind["FunctionExpression"] = "FunctionExpression";
228
+ AstNodeKind["FunctionParameterExpression"] = "FunctionParameterExpression";
229
+ AstNodeKind["NamespacedVariableNameExpression"] = "NamespacedVariableNameExpression";
230
+ AstNodeKind["DottedGetExpression"] = "DottedGetExpression";
231
+ AstNodeKind["XmlAttributeGetExpression"] = "XmlAttributeGetExpression";
232
+ AstNodeKind["IndexedGetExpression"] = "IndexedGetExpression";
233
+ AstNodeKind["GroupingExpression"] = "GroupingExpression";
234
+ AstNodeKind["LiteralExpression"] = "LiteralExpression";
235
+ AstNodeKind["EscapedCharCodeLiteralExpression"] = "EscapedCharCodeLiteralExpression";
236
+ AstNodeKind["ArrayLiteralExpression"] = "ArrayLiteralExpression";
237
+ AstNodeKind["AAMemberExpression"] = "AAMemberExpression";
238
+ AstNodeKind["AALiteralExpression"] = "AALiteralExpression";
239
+ AstNodeKind["AAIndexedMemberExpression"] = "AAIndexedMemberExpression";
240
+ AstNodeKind["UnaryExpression"] = "UnaryExpression";
241
+ AstNodeKind["VariableExpression"] = "VariableExpression";
242
+ AstNodeKind["SourceLiteralExpression"] = "SourceLiteralExpression";
243
+ AstNodeKind["NewExpression"] = "NewExpression";
244
+ AstNodeKind["CallfuncExpression"] = "CallfuncExpression";
245
+ AstNodeKind["TemplateStringQuasiExpression"] = "TemplateStringQuasiExpression";
246
+ AstNodeKind["TemplateStringExpression"] = "TemplateStringExpression";
247
+ AstNodeKind["TaggedTemplateStringExpression"] = "TaggedTemplateStringExpression";
248
+ AstNodeKind["AnnotationExpression"] = "AnnotationExpression";
249
+ AstNodeKind["TernaryExpression"] = "TernaryExpression";
250
+ AstNodeKind["NullCoalescingExpression"] = "NullCoalescingExpression";
251
+ AstNodeKind["RegexLiteralExpression"] = "RegexLiteralExpression";
252
+ AstNodeKind["EmptyStatement"] = "EmptyStatement";
253
+ AstNodeKind["AssignmentStatement"] = "AssignmentStatement";
254
+ AstNodeKind["ExpressionStatement"] = "ExpressionStatement";
255
+ AstNodeKind["ExitStatement"] = "ExitStatement";
256
+ AstNodeKind["FunctionStatement"] = "FunctionStatement";
257
+ AstNodeKind["IfStatement"] = "IfStatement";
258
+ AstNodeKind["IncrementStatement"] = "IncrementStatement";
259
+ AstNodeKind["PrintStatement"] = "PrintStatement";
260
+ AstNodeKind["DimStatement"] = "DimStatement";
261
+ AstNodeKind["GotoStatement"] = "GotoStatement";
262
+ AstNodeKind["LabelStatement"] = "LabelStatement";
263
+ AstNodeKind["ReturnStatement"] = "ReturnStatement";
264
+ AstNodeKind["EndStatement"] = "EndStatement";
265
+ AstNodeKind["StopStatement"] = "StopStatement";
266
+ AstNodeKind["ForStatement"] = "ForStatement";
267
+ AstNodeKind["ForEachStatement"] = "ForEachStatement";
268
+ AstNodeKind["WhileStatement"] = "WhileStatement";
269
+ AstNodeKind["DottedSetStatement"] = "DottedSetStatement";
270
+ AstNodeKind["IndexedSetStatement"] = "IndexedSetStatement";
271
+ AstNodeKind["LibraryStatement"] = "LibraryStatement";
272
+ AstNodeKind["NamespaceStatement"] = "NamespaceStatement";
273
+ AstNodeKind["ImportStatement"] = "ImportStatement";
274
+ AstNodeKind["InterfaceStatement"] = "InterfaceStatement";
275
+ AstNodeKind["InterfaceFieldStatement"] = "InterfaceFieldStatement";
276
+ AstNodeKind["InterfaceMethodStatement"] = "InterfaceMethodStatement";
277
+ AstNodeKind["ClassStatement"] = "ClassStatement";
278
+ AstNodeKind["MethodStatement"] = "MethodStatement";
279
+ AstNodeKind["ClassMethodStatement"] = "ClassMethodStatement";
280
+ AstNodeKind["FieldStatement"] = "FieldStatement";
281
+ AstNodeKind["ClassFieldStatement"] = "ClassFieldStatement";
282
+ AstNodeKind["TryCatchStatement"] = "TryCatchStatement";
283
+ AstNodeKind["CatchStatement"] = "CatchStatement";
284
+ AstNodeKind["ThrowStatement"] = "ThrowStatement";
285
+ AstNodeKind["EnumStatement"] = "EnumStatement";
286
+ AstNodeKind["EnumMemberStatement"] = "EnumMemberStatement";
287
+ AstNodeKind["ConstStatement"] = "ConstStatement";
288
+ AstNodeKind["ContinueStatement"] = "ContinueStatement";
289
+ AstNodeKind["Block"] = "Block";
290
+ AstNodeKind["TypeExpression"] = "TypeExpression";
291
+ AstNodeKind["TypecastExpression"] = "TypecastExpression";
292
+ AstNodeKind["TypedArrayExpression"] = "TypedArrayExpression";
293
+ AstNodeKind["TypecastStatement"] = "TypecastStatement";
294
+ AstNodeKind["AliasStatement"] = "AliasStatement";
295
+ AstNodeKind["ConditionalCompileStatement"] = "ConditionalCompileStatement";
296
+ AstNodeKind["ConditionalCompileConstStatement"] = "ConditionalCompileConstStatement";
297
+ AstNodeKind["ConditionalCompileErrorStatement"] = "ConditionalCompileErrorStatement";
298
+ AstNodeKind["AugmentedAssignmentStatement"] = "AugmentedAssignmentStatement";
299
+ AstNodeKind["PrintSeparatorExpression"] = "PrintSeparatorExpression";
300
+ AstNodeKind["InlineInterfaceExpression"] = "InlineInterfaceExpression";
301
+ AstNodeKind["InlineInterfaceMemberExpression"] = "InlineInterfaceMemberExpression";
302
+ AstNodeKind["TypeStatement"] = "TypeStatement";
303
+ AstNodeKind["TypedFunctionTypeExpression"] = "TypedFunctionTypeExpression";
304
+ })(AstNodeKind = exports.AstNodeKind || (exports.AstNodeKind = {}));
305
+ //# sourceMappingURL=AstNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AstNode.js","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { GetSymbolTypeOptions } from '../SymbolTable';
2
+ import type { AstNode, Expression } from './AstNode';
3
+ import type { Location } from 'vscode-languageserver';
4
+ import type { Token } from '../lexer/Token';
5
+ export declare enum BrsDocTagKind {
6
+ Description = "description",
7
+ Param = "param",
8
+ Return = "return",
9
+ Type = "type"
10
+ }
11
+ export declare class BrightScriptDocParser {
12
+ parseNode(node: AstNode): BrightScriptDoc;
13
+ parse(documentation: string, matchingTokens?: Token[]): BrightScriptDoc;
14
+ getTypeLocationFromToken(token: Token): Location;
15
+ private parseLine;
16
+ private parseParam;
17
+ private parseReturn;
18
+ private parseType;
19
+ private getTypeExpressionFromTypeString;
20
+ }
21
+ export declare class BrightScriptDoc {
22
+ readonly documentation: string;
23
+ protected _description: string;
24
+ tags: BrsDocTag[];
25
+ constructor(documentation: string);
26
+ set description(value: string);
27
+ get description(): string;
28
+ getParam(name: string): BrsDocParamTag;
29
+ getReturn(): BrsDocWithDescription;
30
+ getTypeTag(): BrsDocWithType;
31
+ getTypeTagByName(name: string): BrsDocWithType;
32
+ getTag(tagName: string): BrsDocTag;
33
+ getAllTags(tagName: string): BrsDocTag[];
34
+ getParamBscType(name: string, options?: GetSymbolTypeOptions): import("..").BscType;
35
+ getReturnBscType(options?: GetSymbolTypeOptions): import("..").BscType;
36
+ getTypeTagBscType(options?: GetSymbolTypeOptions): import("..").BscType;
37
+ }
38
+ export interface BrsDocTag {
39
+ tagName: string;
40
+ detail?: string;
41
+ location?: Location;
42
+ token?: Token;
43
+ }
44
+ export interface BrsDocWithType extends BrsDocTag {
45
+ typeString?: string;
46
+ typeExpression?: Expression;
47
+ }
48
+ export interface BrsDocWithDescription extends BrsDocWithType {
49
+ description?: string;
50
+ }
51
+ export interface BrsDocParamTag extends BrsDocWithDescription {
52
+ name: string;
53
+ optional?: boolean;
54
+ }
55
+ export declare let brsDocParser: BrightScriptDocParser;
56
+ export default brsDocParser;