brighterscript 1.0.0-alpha.1 → 1.0.0-alpha.13

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 (316) hide show
  1. package/CHANGELOG.md +362 -248
  2. package/README.md +2 -2
  3. package/bsconfig.schema.json +1 -1
  4. package/dist/CodeActionUtil.d.ts +11 -2
  5. package/dist/CodeActionUtil.js +17 -3
  6. package/dist/CodeActionUtil.js.map +1 -1
  7. package/dist/CommentFlagProcessor.d.ts +4 -4
  8. package/dist/CommentFlagProcessor.js +5 -3
  9. package/dist/CommentFlagProcessor.js.map +1 -1
  10. package/dist/DependencyGraph.js.map +1 -1
  11. package/dist/DiagnosticCollection.js +2 -2
  12. package/dist/DiagnosticCollection.js.map +1 -1
  13. package/dist/DiagnosticFilterer.js +3 -3
  14. package/dist/DiagnosticFilterer.js.map +1 -1
  15. package/dist/DiagnosticMessages.d.ts +15 -5
  16. package/dist/DiagnosticMessages.js +19 -9
  17. package/dist/DiagnosticMessages.js.map +1 -1
  18. package/dist/LanguageServer.d.ts +11 -10
  19. package/dist/LanguageServer.js +87 -58
  20. package/dist/LanguageServer.js.map +1 -1
  21. package/dist/Logger.d.ts +2 -0
  22. package/dist/Logger.js +5 -3
  23. package/dist/Logger.js.map +1 -1
  24. package/dist/Program.d.ts +76 -46
  25. package/dist/Program.js +254 -180
  26. package/dist/Program.js.map +1 -1
  27. package/dist/ProgramBuilder.d.ts +7 -7
  28. package/dist/ProgramBuilder.js +37 -43
  29. package/dist/ProgramBuilder.js.map +1 -1
  30. package/dist/Scope.d.ts +33 -23
  31. package/dist/Scope.js +222 -147
  32. package/dist/Scope.js.map +1 -1
  33. package/dist/SemanticTokenUtils.d.ts +14 -0
  34. package/dist/SemanticTokenUtils.js +81 -0
  35. package/dist/SemanticTokenUtils.js.map +1 -0
  36. package/dist/SymbolTable.d.ts +9 -3
  37. package/dist/SymbolTable.js +40 -13
  38. package/dist/SymbolTable.js.map +1 -1
  39. package/dist/XmlScope.d.ts +7 -2
  40. package/dist/XmlScope.js +67 -29
  41. package/dist/XmlScope.js.map +1 -1
  42. package/dist/astUtils/AstEditor.d.ts +27 -0
  43. package/dist/astUtils/AstEditor.js +97 -0
  44. package/dist/astUtils/AstEditor.js.map +1 -0
  45. package/dist/astUtils/AstEditor.spec.d.ts +1 -0
  46. package/dist/astUtils/AstEditor.spec.js +133 -0
  47. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  48. package/dist/astUtils/creators.d.ts +15 -1
  49. package/dist/astUtils/creators.js +39 -9
  50. package/dist/astUtils/creators.js.map +1 -1
  51. package/dist/astUtils/creators.spec.js +4 -4
  52. package/dist/astUtils/creators.spec.js.map +1 -1
  53. package/dist/astUtils/index.js +1 -1
  54. package/dist/astUtils/reflection.d.ts +20 -8
  55. package/dist/astUtils/reflection.js +42 -1
  56. package/dist/astUtils/reflection.js.map +1 -1
  57. package/dist/astUtils/reflection.spec.js +115 -115
  58. package/dist/astUtils/reflection.spec.js.map +1 -1
  59. package/dist/astUtils/stackedVisitor.js.map +1 -1
  60. package/dist/astUtils/stackedVisitor.spec.js +13 -13
  61. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  62. package/dist/astUtils/visitors.js +1 -1
  63. package/dist/astUtils/visitors.js.map +1 -1
  64. package/dist/astUtils/visitors.spec.js +28 -28
  65. package/dist/astUtils/visitors.spec.js.map +1 -1
  66. package/dist/astUtils/xml.d.ts +4 -3
  67. package/dist/astUtils/xml.js +8 -3
  68. package/dist/astUtils/xml.js.map +1 -1
  69. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  70. package/dist/bscPlugin/BscPlugin.js +4 -0
  71. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  72. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +5 -6
  73. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  74. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +30 -30
  75. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  76. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +7 -0
  77. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +63 -0
  78. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +1 -0
  79. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +1 -0
  80. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +45 -0
  81. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +1 -0
  82. package/dist/diagnosticUtils.d.ts +1 -0
  83. package/dist/diagnosticUtils.js +14 -7
  84. package/dist/diagnosticUtils.js.map +1 -1
  85. package/dist/examples/plugins/removePrint.js +2 -2
  86. package/dist/examples/plugins/removePrint.js.map +1 -1
  87. package/dist/files/BrsFile.Class.spec.js +486 -71
  88. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  89. package/dist/files/BrsFile.d.ts +48 -23
  90. package/dist/files/BrsFile.js +403 -233
  91. package/dist/files/BrsFile.js.map +1 -1
  92. package/dist/files/BrsFile.spec.js +367 -316
  93. package/dist/files/BrsFile.spec.js.map +1 -1
  94. package/dist/files/XmlFile.d.ts +13 -6
  95. package/dist/files/XmlFile.js +27 -21
  96. package/dist/files/XmlFile.js.map +1 -1
  97. package/dist/files/XmlFile.spec.js +274 -228
  98. package/dist/files/XmlFile.spec.js.map +1 -1
  99. package/dist/files/tests/imports.spec.js +49 -49
  100. package/dist/files/tests/imports.spec.js.map +1 -1
  101. package/dist/globalCallables.d.ts +3 -1
  102. package/dist/globalCallables.js +359 -87
  103. package/dist/globalCallables.js.map +1 -1
  104. package/dist/index.js +2 -1
  105. package/dist/index.js.map +1 -1
  106. package/dist/interfaces.d.ts +51 -14
  107. package/dist/lexer/Lexer.d.ts +14 -1
  108. package/dist/lexer/Lexer.js +91 -21
  109. package/dist/lexer/Lexer.js.map +1 -1
  110. package/dist/lexer/Lexer.spec.js +187 -132
  111. package/dist/lexer/Lexer.spec.js.map +1 -1
  112. package/dist/lexer/Token.d.ts +2 -2
  113. package/dist/lexer/TokenKind.d.ts +7 -1
  114. package/dist/lexer/TokenKind.js +51 -3
  115. package/dist/lexer/TokenKind.js.map +1 -1
  116. package/dist/lexer/index.js +2 -1
  117. package/dist/lexer/index.js.map +1 -1
  118. package/dist/parser/BrsTranspileState.d.ts +7 -0
  119. package/dist/parser/BrsTranspileState.js +10 -1
  120. package/dist/parser/BrsTranspileState.js.map +1 -1
  121. package/dist/parser/Expression.d.ts +23 -5
  122. package/dist/parser/Expression.js +124 -75
  123. package/dist/parser/Expression.js.map +1 -1
  124. package/dist/parser/Parser.Class.spec.js +159 -60
  125. package/dist/parser/Parser.Class.spec.js.map +1 -1
  126. package/dist/parser/Parser.d.ts +114 -26
  127. package/dist/parser/Parser.js +471 -126
  128. package/dist/parser/Parser.js.map +1 -1
  129. package/dist/parser/Parser.spec.js +396 -235
  130. package/dist/parser/Parser.spec.js.map +1 -1
  131. package/dist/parser/SGParser.d.ts +41 -4
  132. package/dist/parser/SGParser.js +186 -175
  133. package/dist/parser/SGParser.js.map +1 -1
  134. package/dist/parser/SGParser.spec.js +35 -22
  135. package/dist/parser/SGParser.spec.js.map +1 -1
  136. package/dist/parser/SGTypes.d.ts +206 -38
  137. package/dist/parser/SGTypes.js +470 -161
  138. package/dist/parser/SGTypes.js.map +1 -1
  139. package/dist/parser/SGTypes.spec.d.ts +1 -0
  140. package/dist/parser/SGTypes.spec.js +351 -0
  141. package/dist/parser/SGTypes.spec.js.map +1 -0
  142. package/dist/parser/Statement.d.ts +92 -18
  143. package/dist/parser/Statement.js +287 -58
  144. package/dist/parser/Statement.js.map +1 -1
  145. package/dist/parser/Statement.spec.js +11 -11
  146. package/dist/parser/Statement.spec.js.map +1 -1
  147. package/dist/parser/TranspileState.d.ts +1 -1
  148. package/dist/parser/TranspileState.js +15 -7
  149. package/dist/parser/TranspileState.js.map +1 -1
  150. package/dist/parser/index.js +1 -1
  151. package/dist/parser/tests/Parser.spec.d.ts +8 -7
  152. package/dist/parser/tests/Parser.spec.js +12 -8
  153. package/dist/parser/tests/Parser.spec.js.map +1 -1
  154. package/dist/parser/tests/controlFlow/For.spec.js +50 -50
  155. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  156. package/dist/parser/tests/controlFlow/ForEach.spec.js +31 -31
  157. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  158. package/dist/parser/tests/controlFlow/If.spec.js +174 -156
  159. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  160. package/dist/parser/tests/controlFlow/While.spec.js +32 -32
  161. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  162. package/dist/parser/tests/expression/Additive.spec.js +21 -21
  163. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  164. package/dist/parser/tests/expression/ArrayLiterals.spec.js +105 -105
  165. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  166. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +148 -124
  167. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  168. package/dist/parser/tests/expression/Boolean.spec.js +17 -17
  169. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  170. package/dist/parser/tests/expression/Call.spec.js +30 -30
  171. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  172. package/dist/parser/tests/expression/Exponential.spec.js +16 -16
  173. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  174. package/dist/parser/tests/expression/Function.spec.js +247 -247
  175. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  176. package/dist/parser/tests/expression/Indexing.spec.js +73 -73
  177. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  178. package/dist/parser/tests/expression/Multiplicative.spec.js +36 -36
  179. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  180. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +59 -47
  181. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  182. package/dist/parser/tests/expression/PrefixUnary.spec.js +35 -35
  183. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  184. package/dist/parser/tests/expression/Primary.spec.js +26 -26
  185. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  186. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  187. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +170 -0
  188. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  189. package/dist/parser/tests/expression/Relational.spec.js +42 -42
  190. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  191. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +8 -8
  192. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  193. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +12 -12
  194. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  195. package/dist/parser/tests/expression/TernaryExpression.spec.js +100 -100
  196. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  197. package/dist/parser/tests/statement/AssignmentOperators.spec.js +35 -35
  198. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  199. package/dist/parser/tests/statement/Declaration.spec.js +39 -39
  200. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  201. package/dist/parser/tests/statement/Dim.spec.js +21 -21
  202. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  203. package/dist/parser/tests/statement/Function.spec.js +192 -192
  204. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  205. package/dist/parser/tests/statement/Goto.spec.js +11 -11
  206. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  207. package/dist/parser/tests/statement/Increment.spec.js +46 -46
  208. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  209. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  210. package/dist/parser/tests/statement/InterfaceStatement.spec.js +61 -0
  211. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  212. package/dist/parser/tests/statement/LibraryStatement.spec.js +10 -10
  213. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  214. package/dist/parser/tests/statement/Misc.spec.js +37 -36
  215. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  216. package/dist/parser/tests/statement/PrintStatement.spec.js +30 -30
  217. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  218. package/dist/parser/tests/statement/ReturnStatement.spec.js +43 -43
  219. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  220. package/dist/parser/tests/statement/Set.spec.js +69 -69
  221. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  222. package/dist/parser/tests/statement/Stop.spec.js +9 -9
  223. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  224. package/dist/parser/tests/statement/Throw.spec.js +5 -5
  225. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  226. package/dist/parser/tests/statement/TryCatch.spec.js +13 -13
  227. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  228. package/dist/preprocessor/Chunk.js.map +1 -1
  229. package/dist/preprocessor/Manifest.d.ts +1 -1
  230. package/dist/preprocessor/Preprocessor.js +1 -1
  231. package/dist/preprocessor/Preprocessor.js.map +1 -1
  232. package/dist/preprocessor/Preprocessor.spec.js +49 -49
  233. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  234. package/dist/preprocessor/PreprocessorParser.spec.js +72 -72
  235. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  236. package/dist/preprocessor/index.js +1 -1
  237. package/dist/types/ArrayType.js +5 -4
  238. package/dist/types/ArrayType.js.map +1 -1
  239. package/dist/types/ArrayType.spec.js +8 -8
  240. package/dist/types/ArrayType.spec.js.map +1 -1
  241. package/dist/types/BooleanType.js +3 -3
  242. package/dist/types/BooleanType.js.map +1 -1
  243. package/dist/types/BooleanType.spec.js +2 -2
  244. package/dist/types/BooleanType.spec.js.map +1 -1
  245. package/dist/types/BscType.d.ts +19 -5
  246. package/dist/types/BscType.js +9 -0
  247. package/dist/types/BscType.js.map +1 -1
  248. package/dist/types/CustomType.d.ts +8 -5
  249. package/dist/types/CustomType.js +17 -6
  250. package/dist/types/CustomType.js.map +1 -1
  251. package/dist/types/DoubleType.js +8 -8
  252. package/dist/types/DoubleType.js.map +1 -1
  253. package/dist/types/DoubleType.spec.js +2 -2
  254. package/dist/types/DoubleType.spec.js.map +1 -1
  255. package/dist/types/DynamicType.js +1 -1
  256. package/dist/types/DynamicType.js.map +1 -1
  257. package/dist/types/DynamicType.spec.js +2 -2
  258. package/dist/types/DynamicType.spec.js.map +1 -1
  259. package/dist/types/FloatType.d.ts +1 -1
  260. package/dist/types/FloatType.js +8 -8
  261. package/dist/types/FloatType.js.map +1 -1
  262. package/dist/types/FloatType.spec.js +2 -2
  263. package/dist/types/FloatType.spec.js.map +1 -1
  264. package/dist/types/FunctionType.d.ts +5 -11
  265. package/dist/types/FunctionType.js +24 -13
  266. package/dist/types/FunctionType.js.map +1 -1
  267. package/dist/types/FunctionType.spec.js +11 -5
  268. package/dist/types/FunctionType.spec.js.map +1 -1
  269. package/dist/types/IntegerType.d.ts +1 -1
  270. package/dist/types/IntegerType.js +8 -8
  271. package/dist/types/IntegerType.js.map +1 -1
  272. package/dist/types/IntegerType.spec.js +2 -2
  273. package/dist/types/IntegerType.spec.js.map +1 -1
  274. package/dist/types/InterfaceType.d.ts +8 -2
  275. package/dist/types/InterfaceType.js +42 -6
  276. package/dist/types/InterfaceType.js.map +1 -1
  277. package/dist/types/InterfaceType.spec.d.ts +1 -0
  278. package/dist/types/InterfaceType.spec.js +174 -0
  279. package/dist/types/InterfaceType.spec.js.map +1 -0
  280. package/dist/types/InvalidType.js +4 -4
  281. package/dist/types/InvalidType.js.map +1 -1
  282. package/dist/types/InvalidType.spec.js +2 -2
  283. package/dist/types/InvalidType.spec.js.map +1 -1
  284. package/dist/types/LazyType.d.ts +9 -7
  285. package/dist/types/LazyType.js +22 -10
  286. package/dist/types/LazyType.js.map +1 -1
  287. package/dist/types/LongIntegerType.d.ts +1 -1
  288. package/dist/types/LongIntegerType.js +8 -8
  289. package/dist/types/LongIntegerType.js.map +1 -1
  290. package/dist/types/LongIntegerType.spec.js +2 -2
  291. package/dist/types/LongIntegerType.spec.js.map +1 -1
  292. package/dist/types/ObjectType.d.ts +7 -4
  293. package/dist/types/ObjectType.js +6 -3
  294. package/dist/types/ObjectType.js.map +1 -1
  295. package/dist/types/ObjectType.spec.js +2 -2
  296. package/dist/types/ObjectType.spec.js.map +1 -1
  297. package/dist/types/StringType.js +3 -3
  298. package/dist/types/StringType.js.map +1 -1
  299. package/dist/types/StringType.spec.js +2 -2
  300. package/dist/types/StringType.spec.js.map +1 -1
  301. package/dist/types/UninitializedType.js +3 -3
  302. package/dist/types/UninitializedType.js.map +1 -1
  303. package/dist/types/VoidType.js +3 -3
  304. package/dist/types/VoidType.js.map +1 -1
  305. package/dist/types/VoidType.spec.js +2 -2
  306. package/dist/types/VoidType.spec.js.map +1 -1
  307. package/dist/types/helpers.d.ts +42 -0
  308. package/dist/types/helpers.js +113 -0
  309. package/dist/types/helpers.js.map +1 -0
  310. package/dist/util.d.ts +77 -17
  311. package/dist/util.js +247 -59
  312. package/dist/util.js.map +1 -1
  313. package/dist/validators/ClassValidator.d.ts +5 -1
  314. package/dist/validators/ClassValidator.js +59 -24
  315. package/dist/validators/ClassValidator.js.map +1 -1
  316. package/package.json +13 -13
@@ -1,13 +1,18 @@
1
1
  import type { Token, Identifier } from '../lexer';
2
2
  import { TokenKind } from '../lexer';
3
- import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression } from './Expression';
3
+ import type { Expression, NamespacedVariableNameExpression, FunctionExpression, AnnotationExpression, FunctionParameterExpression } from './Expression';
4
4
  import type { Range } from 'vscode-languageserver';
5
5
  import type { BrsTranspileState } from './BrsTranspileState';
6
6
  import { ParseMode } from './Parser';
7
7
  import type { WalkVisitor, WalkOptions } from '../astUtils/visitors';
8
8
  import { InternalWalkMode } from '../astUtils/visitors';
9
9
  import type { TranspileResult, TypedefProvider } from '../interfaces';
10
+ import { DynamicType } from '../types/DynamicType';
11
+ import type { BscType, SymbolContainer } from '../types/BscType';
12
+ import type { SourceNode } from 'source-map';
13
+ import type { TranspileState } from './TranspileState';
10
14
  import { SymbolTable } from '../SymbolTable';
15
+ import { CustomType } from '../types/CustomType';
11
16
  /**
12
17
  * A BrightScript statement
13
18
  */
@@ -82,7 +87,7 @@ export declare class CommentStatement extends Statement implements Expression, T
82
87
  range: Range;
83
88
  get text(): string;
84
89
  transpile(state: BrsTranspileState): any[];
85
- getTypedef(state: BrsTranspileState): any[];
90
+ getTypedef(state: TranspileState): any[];
86
91
  walk(visitor: WalkVisitor, options: WalkOptions): void;
87
92
  }
88
93
  export declare class ExitForStatement extends Statement {
@@ -93,7 +98,7 @@ export declare class ExitForStatement extends Statement {
93
98
  exitFor: Token;
94
99
  });
95
100
  readonly range: Range;
96
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
101
+ transpile(state: BrsTranspileState): SourceNode[];
97
102
  walk(visitor: WalkVisitor, options: WalkOptions): void;
98
103
  }
99
104
  export declare class ExitWhileStatement extends Statement {
@@ -104,7 +109,7 @@ export declare class ExitWhileStatement extends Statement {
104
109
  exitWhile: Token;
105
110
  });
106
111
  readonly range: Range;
107
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
112
+ transpile(state: BrsTranspileState): SourceNode[];
108
113
  walk(visitor: WalkVisitor, options: WalkOptions): void;
109
114
  }
110
115
  export declare class FunctionStatement extends Statement implements TypedefProvider {
@@ -147,7 +152,7 @@ export declare class IncrementStatement extends Statement {
147
152
  readonly operator: Token;
148
153
  constructor(value: Expression, operator: Token);
149
154
  readonly range: Range;
150
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
155
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
151
156
  walk(visitor: WalkVisitor, options: WalkOptions): void;
152
157
  }
153
158
  /** Used to indent the current `print` position to the next 16-character-width output zone. */
@@ -175,7 +180,7 @@ export declare class PrintStatement extends Statement {
175
180
  print: Token;
176
181
  }, expressions: Array<Expression | PrintSeparatorTab | PrintSeparatorSpace>);
177
182
  readonly range: Range;
178
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
183
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
179
184
  walk(visitor: WalkVisitor, options: WalkOptions): void;
180
185
  }
181
186
  export declare class DimStatement extends Statement {
@@ -186,7 +191,7 @@ export declare class DimStatement extends Statement {
186
191
  closingSquare?: Token;
187
192
  constructor(dimToken: Token, identifier?: Identifier, openingSquare?: Token, dimensions?: Expression[], closingSquare?: Token);
188
193
  range: Range;
189
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
194
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
190
195
  walk(visitor: WalkVisitor, options: WalkOptions): void;
191
196
  }
192
197
  export declare class GotoStatement extends Statement {
@@ -199,7 +204,7 @@ export declare class GotoStatement extends Statement {
199
204
  label: Token;
200
205
  });
201
206
  readonly range: Range;
202
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
207
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
203
208
  walk(visitor: WalkVisitor, options: WalkOptions): void;
204
209
  }
205
210
  export declare class LabelStatement extends Statement {
@@ -212,7 +217,7 @@ export declare class LabelStatement extends Statement {
212
217
  colon: Token;
213
218
  });
214
219
  readonly range: Range;
215
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
220
+ transpile(state: BrsTranspileState): SourceNode[];
216
221
  walk(visitor: WalkVisitor, options: WalkOptions): void;
217
222
  }
218
223
  export declare class ReturnStatement extends Statement {
@@ -235,7 +240,7 @@ export declare class EndStatement extends Statement {
235
240
  end: Token;
236
241
  });
237
242
  readonly range: Range;
238
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
243
+ transpile(state: BrsTranspileState): SourceNode[];
239
244
  walk(visitor: WalkVisitor, options: WalkOptions): void;
240
245
  }
241
246
  export declare class StopStatement extends Statement {
@@ -246,7 +251,7 @@ export declare class StopStatement extends Statement {
246
251
  stop: Token;
247
252
  });
248
253
  readonly range: Range;
249
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
254
+ transpile(state: BrsTranspileState): SourceNode[];
250
255
  walk(visitor: WalkVisitor, options: WalkOptions): void;
251
256
  }
252
257
  export declare class ForStatement extends Statement {
@@ -348,14 +353,71 @@ export declare class ImportStatement extends Statement implements TypedefProvide
348
353
  constructor(importToken: Token, filePathToken: Token);
349
354
  filePath: string;
350
355
  range: Range;
351
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
356
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
352
357
  /**
353
358
  * Get the typedef for this statement
354
359
  */
355
360
  getTypedef(state: BrsTranspileState): string[];
356
361
  walk(visitor: WalkVisitor, options: WalkOptions): void;
357
362
  }
358
- export declare class ClassStatement extends Statement implements TypedefProvider {
363
+ export declare class InterfaceStatement extends Statement implements TypedefProvider {
364
+ parentInterfaceName: NamespacedVariableNameExpression;
365
+ body: Statement[];
366
+ namespaceName: NamespacedVariableNameExpression;
367
+ constructor(interfaceToken: Token, name: Identifier, extendsToken: Token, parentInterfaceName: NamespacedVariableNameExpression, body: Statement[], endInterfaceToken: Token, namespaceName: NamespacedVariableNameExpression);
368
+ tokens: {
369
+ interface: Token;
370
+ name: Identifier;
371
+ extends: Token;
372
+ endInterface: Token;
373
+ };
374
+ range: Range;
375
+ get fields(): Statement[];
376
+ get methods(): Statement[];
377
+ /**
378
+ * The name of the interface WITH its leading namespace (if applicable)
379
+ */
380
+ get fullName(): string;
381
+ /**
382
+ * The name of the interface (without the namespace prefix)
383
+ */
384
+ get name(): string;
385
+ transpile(state: BrsTranspileState): TranspileResult;
386
+ getTypedef(state: BrsTranspileState): TranspileResult;
387
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
388
+ }
389
+ export declare class InterfaceFieldStatement extends Statement implements TypedefProvider {
390
+ type: BscType;
391
+ transpile(state: BrsTranspileState): TranspileResult;
392
+ constructor(nameToken: Identifier, asToken: Token, typeToken: Token, type: BscType);
393
+ get range(): Range;
394
+ tokens: {
395
+ name: Identifier;
396
+ as: Token;
397
+ type: Token;
398
+ };
399
+ get name(): string;
400
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
401
+ getTypedef(state: BrsTranspileState): (string | SourceNode)[];
402
+ }
403
+ export declare class InterfaceMethodStatement extends Statement implements TypedefProvider {
404
+ params: FunctionParameterExpression[];
405
+ returnType?: BscType;
406
+ transpile(state: BrsTranspileState): TranspileResult;
407
+ constructor(functionTypeToken: Token, nameToken: Identifier, leftParen: Token, params: FunctionParameterExpression[], rightParen: Token, asToken?: Token, returnTypeToken?: Token, returnType?: BscType);
408
+ get range(): Range;
409
+ tokens: {
410
+ functionType: Token;
411
+ name: Identifier;
412
+ leftParen: Token;
413
+ rightParen: Token;
414
+ as: Token;
415
+ returnType: Token;
416
+ };
417
+ walk(visitor: WalkVisitor, options: WalkOptions): void;
418
+ getTypedef(state: BrsTranspileState): TranspileResult;
419
+ }
420
+ export declare class ClassStatement extends Statement implements TypedefProvider, SymbolContainer {
359
421
  readonly classKeyword: Token;
360
422
  /**
361
423
  * The name of the class (without namespace prefix)
@@ -366,16 +428,22 @@ export declare class ClassStatement extends Statement implements TypedefProvider
366
428
  readonly extendsKeyword?: Token;
367
429
  readonly parentClassName?: NamespacedVariableNameExpression;
368
430
  readonly namespaceName?: NamespacedVariableNameExpression;
431
+ readonly currentSymbolTable?: SymbolTable;
432
+ readonly symbolTable: SymbolTable;
433
+ readonly memberTable: SymbolTable;
369
434
  constructor(classKeyword: Token,
370
435
  /**
371
436
  * The name of the class (without namespace prefix)
372
437
  */
373
- name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression, namespaceName?: NamespacedVariableNameExpression);
438
+ name: Identifier, body: Statement[], end: Token, extendsKeyword?: Token, parentClassName?: NamespacedVariableNameExpression, namespaceName?: NamespacedVariableNameExpression, currentSymbolTable?: SymbolTable);
374
439
  getName(parseMode: ParseMode): string;
375
440
  memberMap: Record<string, ClassMemberStatement>;
376
441
  methods: ClassMethodStatement[];
377
442
  fields: ClassFieldStatement[];
378
443
  readonly range: Range;
444
+ getCustomType(): CustomType;
445
+ getConstructorFunctionType(): import("../types/FunctionType").FunctionType;
446
+ buildSymbolTable(parentClass?: ClassStatement): void;
379
447
  transpile(state: BrsTranspileState): any[];
380
448
  getTypedef(state: BrsTranspileState): TranspileResult;
381
449
  /**
@@ -385,6 +453,11 @@ export declare class ClassStatement extends Statement implements TypedefProvider
385
453
  */
386
454
  getParentClassIndex(state: BrsTranspileState): number;
387
455
  hasParentClass(): boolean;
456
+ /**
457
+ * Gets an array of possible parent class names, taking into account the namespace this class was created under
458
+ * @returns array of possible parent class names
459
+ */
460
+ getPossibleFullParentNames(): string[];
388
461
  /**
389
462
  * Get all ancestor classes, in closest-to-furthest order (i.e. 0 is parent, 1 is grandparent, etc...).
390
463
  * This will return an empty array if no ancestors were found
@@ -439,12 +512,13 @@ export declare class ClassFieldStatement extends Statement implements TypedefPro
439
512
  readonly type?: Token;
440
513
  readonly equal?: Token;
441
514
  readonly initialValue?: Expression;
442
- constructor(accessModifier?: Token, name?: Identifier, as?: Token, type?: Token, equal?: Token, initialValue?: Expression);
515
+ readonly namespaceName?: NamespacedVariableNameExpression;
516
+ constructor(accessModifier?: Token, name?: Identifier, as?: Token, type?: Token, equal?: Token, initialValue?: Expression, namespaceName?: NamespacedVariableNameExpression);
443
517
  /**
444
518
  * Derive a ValueKind from the type token, or the initial value.
445
- * Defaults to `ValueKind.Dynamic`
519
+ * Defaults to `DynamicType`
446
520
  */
447
- getType(): import("../types/ObjectType").ObjectType | import("../types/BooleanType").BooleanType | import("../types/InvalidType").InvalidType | import("../types/StringType").StringType | import("../types/VoidType").VoidType;
521
+ getType(parseMode?: ParseMode): DynamicType | BscType | import("../types/FloatType").FloatType | import("../types/FunctionType").FunctionType | import("../types/IntegerType").IntegerType | import("../types/LongIntegerType").LongIntegerType | import("../types/StringType").StringType | import("../types/BooleanType").BooleanType | import("../types/LazyType").LazyType | import("../types/DoubleType").DoubleType | import("../types/InvalidType").InvalidType | import("../types/VoidType").VoidType;
448
522
  readonly range: Range;
449
523
  transpile(state: BrsTranspileState): TranspileResult;
450
524
  getTypedef(state: BrsTranspileState): any[];
@@ -468,6 +542,6 @@ export declare class ThrowStatement extends Statement {
468
542
  expression?: Expression;
469
543
  constructor(throwToken: Token, expression?: Expression);
470
544
  range: Range;
471
- transpile(state: BrsTranspileState): (string | import("source-map").SourceNode)[];
545
+ transpile(state: BrsTranspileState): (string | SourceNode)[];
472
546
  walk(visitor: WalkVisitor, options: WalkOptions): void;
473
547
  }