brighterscript 1.0.0-alpha.26 → 1.0.0-alpha.28

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 (200) hide show
  1. package/CHANGELOG.md +82 -5
  2. package/README.md +1 -1
  3. package/dist/AstValidationSegmenter.d.ts +1 -1
  4. package/dist/AstValidationSegmenter.js +4 -5
  5. package/dist/AstValidationSegmenter.js.map +1 -1
  6. package/dist/DiagnosticFilterer.d.ts +7 -4
  7. package/dist/DiagnosticFilterer.js +67 -37
  8. package/dist/DiagnosticFilterer.js.map +1 -1
  9. package/dist/DiagnosticMessages.d.ts +1 -3
  10. package/dist/DiagnosticMessages.js +5 -8
  11. package/dist/DiagnosticMessages.js.map +1 -1
  12. package/dist/PluginInterface.js +1 -1
  13. package/dist/PluginInterface.js.map +1 -1
  14. package/dist/Program.d.ts +1 -1
  15. package/dist/Program.js +34 -31
  16. package/dist/Program.js.map +1 -1
  17. package/dist/Scope.d.ts +7 -34
  18. package/dist/Scope.js +45 -305
  19. package/dist/Scope.js.map +1 -1
  20. package/dist/SymbolTable.d.ts +1 -8
  21. package/dist/SymbolTable.js +1 -10
  22. package/dist/SymbolTable.js.map +1 -1
  23. package/dist/SymbolTypeFlag.d.ts +8 -0
  24. package/dist/SymbolTypeFlag.js +13 -0
  25. package/dist/SymbolTypeFlag.js.map +1 -0
  26. package/dist/XmlScope.d.ts +0 -8
  27. package/dist/XmlScope.js +6 -84
  28. package/dist/XmlScope.js.map +1 -1
  29. package/dist/astUtils/CachedLookups.d.ts +1 -2
  30. package/dist/astUtils/CachedLookups.js +4 -19
  31. package/dist/astUtils/CachedLookups.js.map +1 -1
  32. package/dist/astUtils/creators.d.ts +1 -0
  33. package/dist/astUtils/creators.js +48 -8
  34. package/dist/astUtils/creators.js.map +1 -1
  35. package/dist/astUtils/creators.spec.js +0 -10
  36. package/dist/astUtils/creators.spec.js.map +1 -1
  37. package/dist/astUtils/reflection.d.ts +3 -2
  38. package/dist/astUtils/reflection.js +11 -7
  39. package/dist/astUtils/reflection.js.map +1 -1
  40. package/dist/astUtils/reflection.spec.js +11 -16
  41. package/dist/astUtils/reflection.spec.js.map +1 -1
  42. package/dist/astUtils/visitors.d.ts +1 -2
  43. package/dist/astUtils/visitors.js.map +1 -1
  44. package/dist/astUtils/visitors.spec.js +1 -5
  45. package/dist/astUtils/visitors.spec.js.map +1 -1
  46. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  47. package/dist/bscPlugin/BscPlugin.js +4 -0
  48. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  49. package/dist/bscPlugin/SignatureHelpUtil.js +4 -3
  50. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -1
  51. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -0
  52. package/dist/bscPlugin/completions/CompletionsProcessor.js +46 -29
  53. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  54. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +39 -0
  55. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  56. package/dist/bscPlugin/hover/HoverProcessor.d.ts +1 -0
  57. package/dist/bscPlugin/hover/HoverProcessor.js +30 -10
  58. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  59. package/dist/bscPlugin/hover/HoverProcessor.spec.js +125 -7
  60. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  61. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  62. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  63. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  64. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  65. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  66. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  67. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +2 -3
  68. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  69. package/dist/bscPlugin/validation/BrsFileValidator.js +25 -31
  70. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  71. package/dist/bscPlugin/validation/ScopeValidator.d.ts +34 -1
  72. package/dist/bscPlugin/validation/ScopeValidator.js +435 -27
  73. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  74. package/dist/bscPlugin/validation/ScopeValidator.spec.js +178 -10
  75. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  76. package/dist/diagnosticUtils.d.ts +1 -1
  77. package/dist/files/BrsFile.Class.spec.js +15 -7
  78. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  79. package/dist/files/BrsFile.d.ts +14 -5
  80. package/dist/files/BrsFile.js +83 -150
  81. package/dist/files/BrsFile.js.map +1 -1
  82. package/dist/files/BrsFile.spec.js +429 -162
  83. package/dist/files/BrsFile.spec.js.map +1 -1
  84. package/dist/files/XmlFile.d.ts +2 -3
  85. package/dist/files/XmlFile.js +1 -3
  86. package/dist/files/XmlFile.js.map +1 -1
  87. package/dist/index.d.ts +1 -0
  88. package/dist/index.js +1 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/interfaces.d.ts +117 -85
  91. package/dist/interfaces.js +9 -9
  92. package/dist/interfaces.js.map +1 -1
  93. package/dist/lexer/Lexer.d.ts +9 -3
  94. package/dist/lexer/Lexer.js +36 -15
  95. package/dist/lexer/Lexer.js.map +1 -1
  96. package/dist/lexer/Lexer.spec.js +76 -38
  97. package/dist/lexer/Lexer.spec.js.map +1 -1
  98. package/dist/lexer/Token.js +1 -1
  99. package/dist/lexer/Token.js.map +1 -1
  100. package/dist/lexer/TokenKind.d.ts +1 -0
  101. package/dist/lexer/TokenKind.js +4 -1
  102. package/dist/lexer/TokenKind.js.map +1 -1
  103. package/dist/parser/AstNode.d.ts +1 -2
  104. package/dist/parser/AstNode.js +0 -1
  105. package/dist/parser/AstNode.js.map +1 -1
  106. package/dist/parser/BrsTranspileState.d.ts +1 -1
  107. package/dist/parser/Expression.d.ts +153 -135
  108. package/dist/parser/Expression.js +204 -114
  109. package/dist/parser/Expression.js.map +1 -1
  110. package/dist/parser/Parser.Class.spec.js +15 -16
  111. package/dist/parser/Parser.Class.spec.js.map +1 -1
  112. package/dist/parser/Parser.d.ts +8 -4
  113. package/dist/parser/Parser.js +108 -149
  114. package/dist/parser/Parser.js.map +1 -1
  115. package/dist/parser/Parser.spec.js +48 -72
  116. package/dist/parser/Parser.spec.js.map +1 -1
  117. package/dist/parser/SGParser.js +49 -35
  118. package/dist/parser/SGParser.js.map +1 -1
  119. package/dist/parser/SGTypes.d.ts +36 -24
  120. package/dist/parser/SGTypes.js +31 -60
  121. package/dist/parser/SGTypes.js.map +1 -1
  122. package/dist/parser/Statement.d.ts +214 -207
  123. package/dist/parser/Statement.js +248 -169
  124. package/dist/parser/Statement.js.map +1 -1
  125. package/dist/parser/Statement.spec.js +0 -13
  126. package/dist/parser/Statement.spec.js.map +1 -1
  127. package/dist/parser/TranspileState.d.ts +17 -8
  128. package/dist/parser/TranspileState.js +64 -6
  129. package/dist/parser/TranspileState.js.map +1 -1
  130. package/dist/parser/tests/Parser.spec.d.ts +1 -1
  131. package/dist/parser/tests/Parser.spec.js +1 -2
  132. package/dist/parser/tests/Parser.spec.js.map +1 -1
  133. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  134. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  135. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +1 -3
  136. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  137. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +44 -0
  138. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  139. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +6 -6
  140. package/dist/parser/tests/expression/TernaryExpression.spec.js +47 -0
  141. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  142. package/dist/parser/tests/expression/TypeExpression.spec.js +8 -9
  143. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -1
  144. package/dist/parser/tests/statement/ConstStatement.spec.js +2 -2
  145. package/dist/parser/tests/statement/InterfaceStatement.spec.js +8 -1
  146. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  147. package/dist/parser/tests/statement/Misc.spec.js +25 -5
  148. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  149. package/dist/parser/tests/statement/TryCatch.spec.js +9 -2
  150. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  151. package/dist/preprocessor/Chunk.js +1 -2
  152. package/dist/preprocessor/Chunk.js.map +1 -1
  153. package/dist/preprocessor/PreprocessorParser.js +2 -1
  154. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  155. package/dist/roku-types/data.json +70 -52
  156. package/dist/roku-types/index.d.ts +43 -21
  157. package/dist/types/ArrayType.js +1 -2
  158. package/dist/types/ArrayType.js.map +1 -1
  159. package/dist/types/ArrayType.spec.js +7 -8
  160. package/dist/types/ArrayType.spec.js.map +1 -1
  161. package/dist/types/AssociativeArrayType.d.ts +3 -0
  162. package/dist/types/AssociativeArrayType.js +10 -2
  163. package/dist/types/AssociativeArrayType.js.map +1 -1
  164. package/dist/types/BscType.d.ts +1 -1
  165. package/dist/types/BscType.js +3 -3
  166. package/dist/types/BscType.js.map +1 -1
  167. package/dist/types/BuiltInInterfaceAdder.js +7 -8
  168. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  169. package/dist/types/BuiltInInterfaceAdder.spec.js +31 -32
  170. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -1
  171. package/dist/types/ClassType.spec.js +10 -11
  172. package/dist/types/ClassType.spec.js.map +1 -1
  173. package/dist/types/ComponentType.d.ts +2 -1
  174. package/dist/types/ComponentType.js.map +1 -1
  175. package/dist/types/EnumType.js +2 -3
  176. package/dist/types/EnumType.js.map +1 -1
  177. package/dist/types/InheritableType.js +3 -4
  178. package/dist/types/InheritableType.js.map +1 -1
  179. package/dist/types/InterfaceType.js +2 -3
  180. package/dist/types/InterfaceType.js.map +1 -1
  181. package/dist/types/InterfaceType.spec.js +3 -4
  182. package/dist/types/InterfaceType.spec.js.map +1 -1
  183. package/dist/types/ObjectType.js +1 -2
  184. package/dist/types/ObjectType.js.map +1 -1
  185. package/dist/types/ReferenceType.d.ts +1 -1
  186. package/dist/types/ReferenceType.spec.js +21 -22
  187. package/dist/types/ReferenceType.spec.js.map +1 -1
  188. package/dist/types/UnionType.js +3 -3
  189. package/dist/types/UnionType.js.map +1 -1
  190. package/dist/types/UnionType.spec.js +37 -38
  191. package/dist/types/UnionType.spec.js.map +1 -1
  192. package/dist/types/helper.spec.js +4 -5
  193. package/dist/types/helper.spec.js.map +1 -1
  194. package/dist/util.d.ts +21 -11
  195. package/dist/util.js +116 -37
  196. package/dist/util.js.map +1 -1
  197. package/dist/validators/ClassValidator.d.ts +0 -9
  198. package/dist/validators/ClassValidator.js +3 -46
  199. package/dist/validators/ClassValidator.js.map +1 -1
  200. package/package.json +6 -3
@@ -780,9 +780,11 @@ describe('BrsFile BrighterScript classes', () => {
780
780
  smokey = Animal("Smokey")
781
781
  smokey.move(1)
782
782
  '> Bear moved 1 meters
783
+
783
784
  donald = Duck("Donald")
784
785
  donald.move(2)
785
786
  '> Waddling...\\nDonald moved 2 meters
787
+
786
788
  dewey = BabyDuck("Dewey")
787
789
  dewey.move(3)
788
790
  '> Waddling...\\nDewey moved 2 meters\\nFell over...I'm new at this
@@ -1148,7 +1150,7 @@ describe('BrsFile BrighterScript classes', () => {
1148
1150
  `);
1149
1151
  program.validate();
1150
1152
  (0, testHelpers_spec_1.expectDiagnostics)(program, [
1151
- DiagnosticMessages_1.DiagnosticMessages.expressionIsNotConstructable('sub')
1153
+ DiagnosticMessages_1.DiagnosticMessages.expressionIsNotConstructable('quack')
1152
1154
  ]);
1153
1155
  });
1154
1156
  it('detects missing call to super', () => {
@@ -1503,8 +1505,9 @@ describe('BrsFile BrighterScript classes', () => {
1503
1505
  end sub
1504
1506
  `);
1505
1507
  program.validate();
1506
- (0, testHelpers_spec_1.expectDiagnostics)(program, [
1507
- DiagnosticMessages_1.DiagnosticMessages.cannotFindName('Duck')
1508
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(program, [
1509
+ DiagnosticMessages_1.DiagnosticMessages.cannotFindName('Duck'),
1510
+ DiagnosticMessages_1.DiagnosticMessages.expressionIsNotConstructable('Duck')
1508
1511
  ]);
1509
1512
  });
1510
1513
  it('supports newable class namespace inference', () => {
@@ -1572,19 +1575,24 @@ describe('BrsFile BrighterScript classes', () => {
1572
1575
  DiagnosticMessages_1.DiagnosticMessages.nameCollision('Class', 'Class', 'Animal').message
1573
1576
  ]);
1574
1577
  });
1575
- it('catches namespaced class name which is the same as a global class', () => {
1578
+ it('allows namespaced class name which is the same as a global class', () => {
1576
1579
  program.setFile('source/main.bs', `
1577
1580
  namespace NameA.NameB
1578
1581
  class Animal
1582
+ name as string
1579
1583
  end class
1584
+
1585
+ sub printThisAnimalName(ani as Animal) ' this refers to NameA.NameB.Animal
1586
+ print ani.name
1587
+ end sub
1580
1588
  end namespace
1589
+
1581
1590
  class Animal
1591
+ doesNotHaveName as string
1582
1592
  end class
1583
1593
  `);
1584
1594
  program.validate();
1585
- (0, testHelpers_spec_1.expectDiagnostics)(program, [
1586
- DiagnosticMessages_1.DiagnosticMessages.nameCollision('Class', 'Class', 'Animal').message
1587
- ]);
1595
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
1588
1596
  });
1589
1597
  it('catches class with same name as function', () => {
1590
1598
  program.setFile('source/main.bs', `
@@ -1 +1 @@
1
- {"version":3,"file":"BrsFile.Class.spec.js","sourceRoot":"","sources":["../../src/files/BrsFile.Class.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrsFile.Class.spec.js","sourceRoot":"","sources":["../../src/files/BrsFile.Class.spec.ts"],"names":[],"mappings":";;AAAA,qCAAqC;AAErC,wCAAqC;AAErC,0DAA6C;AAC7C,8DAA2D;AAC3D,iEAA8C;AAC9C,6CAA6C;AAC7C,0DAAkI;AAClI,kCAA+C;AAC/C,oCAAoC;AACpC,mEAAgE;AAChE,mCAAsC;AAEtC,0DAAmE;AACnE,uDAA0D;AAC1D,mDAAgD;AAEhD,IAAI,KAAK,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;AAExC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC5C,IAAI,OAAgB,CAAC;IACrB,IAAI,aAAa,GAAG,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,0BAAO,CAAC,CAAC,CAAC;IAE/D,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,aAAa,CAAC,0BAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,YAAY,CAAC,0BAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,0BAAO,EAAE,UAAU,EAAE,6BAAU,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,aAAa,CAAC,0BAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,YAAY,CAAC,0BAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,OAAO,CAAC,YAAoB,EAAE,IAAY;QAC/C,OAAO,OAAO,CAAC,OAAO,CAAU,EAAE,GAAG,EAAE,GAAG,0BAAO,IAAI,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;IACrG,CAAC;IAED,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,EAAE,GAAG,EAAE,GAAG,0BAAO,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;;;;;;;SAOnG,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAiB,6BAAgB,CAAC,CAAC;QAChF,IAAA,yBAAM,EAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,OAAO,CAAC,OAAO,CAAU,EAAE,GAAG,EAAE,GAAG,0BAAO,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;;SAEtF,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,8CAA8C;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC7D,OAAO,CAAC,OAAO,CAAU,EAAE,GAAG,EAAE,GAAG,0BAAO,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;;;;;;;;;SAStF,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,gCAAgC,EAAE;SACxD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;SAIjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAChC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;SAOjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,EAAE,GAAG,EAAE,GAAG,0BAAO,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;;;;;;;;;;SAUjG,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAiB,6BAAgB,EAAE,EAAE,QAAQ,EAAE,mBAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QACvK,IAAA,yBAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,IAAA,yBAAM,EAAC,SAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,OAAO,CAAC,OAAO,CAAU,EAAE,GAAG,EAAE,GAAG,0BAAO,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;;;;;;;;;;;;;;;;;;SAkBtF,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACvD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;aAOjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;gBACvB,uCAAkB,CAAC,gCAAgC,EAAE;aACxD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACrE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;aASjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;gBACvB,uCAAkB,CAAC,gCAAgC,EAAE;aACxD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACvE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;aAajC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACvE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;aAajC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE,iCACpB,uCAAkB,CAAC,4CAA4C,EAAE,KACpE,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,qCAE9B,uCAAkB,CAAC,4CAA4C,EAAE,KACpE,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IACnC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,mBAAmB,EAAE;;;;;;;;;aAS1D,CAAC,CAAC;YACH,IAAA,yBAAM,EACD,IAAI,CAAC,GAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACrG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,MAAM,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,IAAA,yBAAM,EACD,IAAI,CAAC,GAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACrG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;aAcnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,aAAa,CAAC;;;;;;;;;aASnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,aAAa,CAAC;;;;;;;;;aASnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,aAAa,CAAC;;;;;;;;;;aAUnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAyCF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACnC,MAAM,aAAa,CAAC;;;;;;;aAOnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;aAyBF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,aAAa,CAAC;;;aAGnB,EAAE;;;;;;;;;;;;aAYF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,aAAa,CAAC;;;;;aAKnB,EAAE;;;;;;;;;;;;aAYF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;aAenB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA4BF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;aAiBnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAmCF,EAAE,MAAM,EAAE,gBAAgB,CAC1B,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,OAAO,CAAC,mBAAmB,EAAE;;;;;;;aAO5B,CAAC,CAAC;YACH,MAAM,aAAa,CAAC;;;;;;;;aAQnB,EAAE;;;;;;aAMF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,aAAa,CAAC;;;;aAInB,EAAE;;;;aAIF,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,OAAO,CAAC,kBAAkB,EAAE;;;;;aAK3B,CAAC,CAAC;YACH,MAAM,aAAa,CAAC;;;;aAInB,EAAE;;;;aAIF,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;YAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC;;;;;;;;;aASpC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;aAyBF,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAChC,4CAA4C;YAC5C,MAAM,WAAW,GAAI,IAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAoB,CAAC;YAC/E,IAAA,yBAAM,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC;;;;;;aAMpC,EAAE;;;;;;;;;;;;;aAaF,CAAC,CAAC;YACH,4CAA4C;YAC5C,MAAM,WAAW,GAAI,IAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAoB,CAAC;YAC/E,IAAA,yBAAM,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAwCnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAmEF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,aAAa,CAAC;;;;;;;;;;;;;aAanB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAGH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,aAAa,CAAC;;;;;;;;;aASnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;aAwBF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,aAAa,CAAC;;;;;;;;;;aAUnB,EAAE;;;;;;;;;;;;;aAaF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;aAmBnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,aAAa,CAAC;;;;;;;;;;;;;;aAcnB,EAAE;;;;;;;;;;;;;;;;;;aAkBF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,aAAa,CAAC;;;;;;;;;;;;;;aAcnB,EAAE;;;;;;;;;;;;;;;;;;aAkBF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;aAcnB,EAAE;;;;;;;;;;;;aAYF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,aAAa,CAAC;;;;;;;;;;;;;aAanB,EAAE;;;;;;;;;;;;;;;;;;;;aAoBF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;aAkBnB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCF,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;SAMjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,4BAA4B,CAAC,OAAO,CAAC;SAC3D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;SASjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,gCAAgC,EAAE;SACxD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC/C,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;SAMjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,wBAAwB,CAAC,wBAAwB,EAAE,QAAQ,CAAC;SAClF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,QAAQ;QACR,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;;;;;;SAMnC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,yBAAM,EACF,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CACtD,CAAC,EAAE,CAAC,GAAG,CAAC;YACL,uCAAkB,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO;YAC5F,uCAAkB,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO;SAChG,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,QAAQ;QACR,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE;;;;;;;;;SASrC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,yBAAM,EACF,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CACtD,CAAC,EAAE,CAAC,GAAG,CAAC;YACL,uCAAkB,CAAC,yBAAyB,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO;YAC1G,uCAAkB,CAAC,yBAAyB,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO;YAC/G,uCAAkB,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO;SAC9G,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACjD,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE;;;;;;;;;;;;SAYhC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,6BAAU,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,YAAY,CAAC,6BAAU,CAAC,CAAC;QACjC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,6BAAU,EAAE,CAAC,CAAC;QAChD,IAAA,yBAAM,EACF,OAAO,CAAC,YAAY,CAAC,IAAA,sBAAC,EAAA,GAAG,6BAAU,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAC7E,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,uBAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA+BZ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;SAYjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE,iCACpB,uCAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,KACjD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,qCAE9B,uCAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,KACjD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,qCAE9B,uCAAkB,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAChD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,qCAE9B,uCAAkB,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAChD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IACrC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;SASjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,+CAA+C,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;SAClG,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;SAOjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;SAOjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;SAWjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3C,uCAAkB,CAAC,yCAAyC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;YACzG,uCAAkB,CAAC,yCAAyC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAC5G,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;SASjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,sBAAsB,CAAC,QAAQ,CAAC;SACtD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;SAiBjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,oCAAoC,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAC/G,uCAAkB,CAAC,oCAAoC,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;YACpH,uCAAkB,CAAC,oCAAoC,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;SACpH,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;;;;SAiBjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;aAUjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE,iCACpB,uCAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,KAC9C,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IACnC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACnD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;aAOjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;gBACvB,uCAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC;aAC9C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YAC/E,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;aAUjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;gBACvB,uCAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC;aAC9C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE;;;;;aAKxC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;aAKjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE,iCACpB,uCAAkB,CAAC,cAAc,CAAC,cAAc,EAAE,0BAA0B,CAAC,KAChF,kBAAkB,EAAE,CAAC;4BACjB,OAAO,EAAE,mBAAmB;yBAC/B,CAAC,IACJ,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACrD,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE;;;;;aAKxC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;aAOjC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;gBACvB,uCAAkB,CAAC,cAAc,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,OAAO;aACxF,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;SASjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,4CAAyB,EAAC,OAAO,EAAE;YAC/B,uCAAkB,CAAC,cAAc,CAAC,MAAM,CAAC;YACzC,uCAAkB,CAAC,4BAA4B,CAAC,MAAM,CAAC;SAC1D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;SAQjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;SAOjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,cAAc,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;SACxF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;SAOjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;SAKjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,4CAAyB,EAAC,OAAO,EAAE;YAC/B,uCAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;SAC/D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;SAOjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,4CAAyB,EAAC,OAAO,EAAE;YAC/B,uCAAkB,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO;SACvE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QACxE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;SAcjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;SAKjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,4CAAyB,EAAC,OAAO,EAAE;YAC/B,uCAAkB,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC,OAAO;SACzE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACrE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;SAKjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,4CAAyB,EAAC,OAAO,EAAE;YAC/B,uCAAkB,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC,OAAO;SACzE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;SAMjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,OAAO;SAC/D,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACvE,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;;;;;;;;;SAStC,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,gCAAgC,EAAE;;;;;;SAMjD,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE;;;;;;SAM1C,CAAC,CAAC;QAEH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,wCAAqB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAC/D,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;SAYjC,CAAC,CAAC;QAEH,MAAM,aAAa,CAAC;;;;;;;;SAQnB,EAAE;;;;;;;;;;;;;;SAcF,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC7F,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE;;;SAGnC,CAAC,CAAC;QAEH,MAAM,aAAa,CAAC;;;;;SAKnB,EAAE;;;;;;;;;;;;;;SAcF,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,kBAAkB,EAAE;;;SAGzD,CAAC,CAAC;QACH,IAAA,qBAAY,EAAC,GAAG,EAAE;YACd,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAiB,6BAAgB,CAAC,CAAC;YAChF,eAAe,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,qCAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;SAQjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAC9E,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;SAQjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACnE,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;;;;;;;;;;;;;;SAgBjC,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAA,oCAAiB,EAAC,OAAO,EAAE;YACvB,uCAAkB,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,uCAAkB,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,uCAAkB,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;SACjD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -2,8 +2,8 @@ import type { CodeWithSourceMap } from 'source-map';
2
2
  import type { CompletionItem, Position, Location, Diagnostic } from 'vscode-languageserver';
3
3
  import { DocumentSymbol, SymbolInformation } from 'vscode-languageserver';
4
4
  import { FunctionScope } from '../FunctionScope';
5
- import type { Callable, CommentFlag, FunctionCall, BsDiagnostic, FileReference, FileLink, SerializedCodeFile, NamespaceContainer } from '../interfaces';
6
- import { type Token } from '../lexer/Token';
5
+ import type { Callable, CommentFlag, BsDiagnostic, FileReference, FileLink, SerializedCodeFile, NamespaceContainer } from '../interfaces';
6
+ import type { Token } from '../lexer/Token';
7
7
  import { TokenKind } from '../lexer/TokenKind';
8
8
  import { Parser, ParseMode } from '../parser/Parser';
9
9
  import type { FunctionExpression } from '../parser/Expression';
@@ -14,7 +14,7 @@ import type { AstNode, Expression } from '../parser/AstNode';
14
14
  import type { UnresolvedSymbol } from '../AstValidationSegmenter';
15
15
  import { AstValidationSegmenter } from '../AstValidationSegmenter';
16
16
  import type { BscSymbol } from '../SymbolTable';
17
- import { SymbolTypeFlag } from '../SymbolTable';
17
+ import { SymbolTypeFlag } from '../SymbolTypeFlag';
18
18
  import { Editor } from '../astUtils/Editor';
19
19
  import type { BscFile } from './BscFile';
20
20
  export declare type ProvidedSymbolMap = Map<SymbolTypeFlag, Map<string, BscSymbol>>;
@@ -110,6 +110,10 @@ export declare class BrsFile implements BscFile {
110
110
  * Get the token at the specified position
111
111
  */
112
112
  getTokenAt(position: Position): Token;
113
+ /**
114
+ * Get the token at the specified position, or the next token
115
+ */
116
+ getCurrentOrNextTokenAt(position: Position): Token;
113
117
  /**
114
118
  * Walk the AST and find the expression that this token is most specifically contained within
115
119
  */
@@ -177,7 +181,6 @@ export declare class BrsFile implements BscFile {
177
181
  private createFunctionScopes;
178
182
  staticCallables: Callable[];
179
183
  get callables(): Callable[];
180
- get functionCalls(): FunctionCall[];
181
184
  /**
182
185
  * Find the function scope at the given position.
183
186
  * @param position the position used to find the deepest scope that contains it
@@ -197,6 +200,7 @@ export declare class BrsFile implements BscFile {
197
200
  getTokenBefore(currentToken: Token, tokenKind?: TokenKind): Token;
198
201
  tokenFollows(currentToken: Token, tokenKind: TokenKind): boolean;
199
202
  getTokensUntil(currentToken: Token, tokenKind: TokenKind, direction?: -1 | 1): any[];
203
+ getNextTokenByPredicate(currentToken: Token, test: (Token: any) => boolean, direction?: -1 | 1): Token;
200
204
  getPreviousToken(token: Token): Token;
201
205
  /**
202
206
  * Find the first scope that has a namespace with this name.
@@ -206,7 +210,7 @@ export declare class BrsFile implements BscFile {
206
210
  /**
207
211
  * Determine if the callee (i.e. function name) is a known function declared on the given namespace.
208
212
  */
209
- calleeIsKnownNamespaceFunction(callee: Expression, namespaceName: string): boolean;
213
+ calleeIsKnownNamespaceFunction(callee: Expression, namespaceName: string | undefined): boolean;
210
214
  /**
211
215
  * Determine if the callee (i.e. function name) is a known function
212
216
  */
@@ -233,6 +237,11 @@ export declare class BrsFile implements BscFile {
233
237
  private generateWorkspaceSymbols;
234
238
  getClassMemberDefinitions(textToSearchFor: string, file: BrsFile): Location[];
235
239
  getClassMethod(classStatement: ClassStatement, name: string, walkParents?: boolean): MethodStatement | undefined;
240
+ /**
241
+ * Given a position in a file, if the position is sitting on some type of identifier,
242
+ * look up all references of that identifier (every place that identifier is used across the whole app)
243
+ * @deprecated use `ReferencesProvider.process()` instead
244
+ */
236
245
  getReferences(position: Position): Location[];
237
246
  /**
238
247
  * Generate the code, map, and typedef for this file
@@ -24,6 +24,7 @@ const AstValidationSegmenter_1 = require("../AstValidationSegmenter");
24
24
  const SymbolTable_1 = require("../SymbolTable");
25
25
  const CachedLookups_1 = require("../astUtils/CachedLookups");
26
26
  const Editor_1 = require("../astUtils/Editor");
27
+ const ReferencesProvider_1 = require("../bscPlugin/references/ReferencesProvider");
27
28
  /**
28
29
  * Holds all details about this file within the scope of the whole program
29
30
  */
@@ -131,12 +132,12 @@ class BrsFile {
131
132
  const result = [];
132
133
  for (const statement of (_b = (_a = this._cachedLookups) === null || _a === void 0 ? void 0 : _a.importStatements) !== null && _b !== void 0 ? _b : []) {
133
134
  //register import statements
134
- if ((0, reflection_1.isImportStatement)(statement) && statement.tokens.filePath) {
135
+ if ((0, reflection_1.isImportStatement)(statement) && statement.tokens.path) {
135
136
  result.push({
136
- filePathRange: statement.tokens.filePath.range,
137
+ filePathRange: statement.tokens.path.range,
137
138
  destPath: util_1.util.getPkgPathFromTarget(this.destPath, statement.filePath),
138
139
  sourceFile: this,
139
- text: statement.tokens.filePath.text
140
+ text: statement.tokens.path.text
140
141
  });
141
142
  }
142
143
  }
@@ -175,6 +176,16 @@ class BrsFile {
175
176
  }
176
177
  }
177
178
  }
179
+ /**
180
+ * Get the token at the specified position, or the next token
181
+ */
182
+ getCurrentOrNextTokenAt(position) {
183
+ for (let token of this.parser.tokens) {
184
+ if (util_1.util.comparePositionToRange(position, token.range) < 0) {
185
+ return token;
186
+ }
187
+ }
188
+ }
178
189
  /**
179
190
  * Walk the AST and find the expression that this token is most specifically contained within
180
191
  */
@@ -335,11 +346,14 @@ class BrsFile {
335
346
  * @param tokens - an array of tokens of which to find `TokenKind.Comment` from
336
347
  */
337
348
  getCommentFlags(tokens) {
349
+ var _a;
338
350
  const processor = new CommentFlagProcessor_1.CommentFlagProcessor(this, ['rem', `'`], DiagnosticMessages_1.diagnosticCodes, [DiagnosticMessages_1.DiagnosticCodeMap.unknownDiagnosticCode]);
339
351
  this.commentFlags = [];
340
- for (let token of tokens) {
341
- if (token.kind === TokenKind_1.TokenKind.Comment) {
342
- processor.tryAdd(token.text, token.range);
352
+ for (let lexerToken of tokens) {
353
+ for (let triviaToken of (_a = lexerToken.leadingTrivia) !== null && _a !== void 0 ? _a : []) {
354
+ if (triviaToken.kind === TokenKind_1.TokenKind.Comment) {
355
+ processor.tryAdd(triviaToken.text, triviaToken.range);
356
+ }
343
357
  }
344
358
  }
345
359
  this.commentFlags.push(...processor.commentFlags);
@@ -349,7 +363,7 @@ class BrsFile {
349
363
  * Create a scope for every function in this file
350
364
  */
351
365
  createFunctionScopes() {
352
- var _a;
366
+ var _a, _b, _c;
353
367
  //find every function
354
368
  let functions = this._cachedLookups.functionExpressions;
355
369
  //create a functionScope for every function
@@ -370,28 +384,30 @@ class BrsFile {
370
384
  for (let param of func.parameters) {
371
385
  scope.variableDeclarations.push({
372
386
  nameRange: param.tokens.name.range,
373
- lineIndex: param.tokens.name.range.start.line,
387
+ lineIndex: (_a = param.tokens.name.range) === null || _a === void 0 ? void 0 : _a.start.line,
374
388
  name: param.tokens.name.text,
375
389
  getType: () => {
376
- return param.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime });
390
+ return param.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
377
391
  }
378
392
  });
379
393
  }
380
394
  //add all of ForEachStatement loop varibales
381
- (_a = func.body) === null || _a === void 0 ? void 0 : _a.walk((0, visitors_1.createVisitor)({
395
+ (_b = func.body) === null || _b === void 0 ? void 0 : _b.walk((0, visitors_1.createVisitor)({
382
396
  ForEachStatement: (stmt) => {
397
+ var _a;
383
398
  scope.variableDeclarations.push({
384
399
  nameRange: stmt.tokens.item.range,
385
- lineIndex: stmt.tokens.item.range.start.line,
400
+ lineIndex: (_a = stmt.tokens.item.range) === null || _a === void 0 ? void 0 : _a.start.line,
386
401
  name: stmt.tokens.item.text,
387
402
  getType: () => DynamicType_1.DynamicType.instance //TODO: Infer types from array
388
403
  });
389
404
  },
390
405
  LabelStatement: (stmt) => {
406
+ var _a;
391
407
  const { name: identifier } = stmt.tokens;
392
408
  scope.labelStatements.push({
393
409
  nameRange: identifier.range,
394
- lineIndex: identifier.range.start.line,
410
+ lineIndex: (_a = identifier.range) === null || _a === void 0 ? void 0 : _a.start.line,
395
411
  name: identifier.text
396
412
  });
397
413
  }
@@ -412,10 +428,10 @@ class BrsFile {
412
428
  const variableName = statement.tokens.name;
413
429
  scope.variableDeclarations.push({
414
430
  nameRange: variableName.range,
415
- lineIndex: variableName.range.start.line,
431
+ lineIndex: (_c = variableName.range) === null || _c === void 0 ? void 0 : _c.start.line,
416
432
  name: variableName.text,
417
433
  getType: () => {
418
- return statement.getType({ flags: SymbolTable_1.SymbolTypeFlag.runtime });
434
+ return statement.getType({ flags: 1 /* SymbolTypeFlag.runtime */ });
419
435
  }
420
436
  });
421
437
  }
@@ -433,7 +449,7 @@ class BrsFile {
433
449
  //extract the parameters
434
450
  let params = [];
435
451
  for (let param of statement.func.parameters) {
436
- const paramType = param.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime });
452
+ const paramType = param.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
437
453
  let callableParam = {
438
454
  name: (_b = param.tokens.name) === null || _b === void 0 ? void 0 : _b.text,
439
455
  type: paramType,
@@ -442,7 +458,7 @@ class BrsFile {
442
458
  };
443
459
  params.push(callableParam);
444
460
  }
445
- const funcType = statement.getType({ flags: SymbolTable_1.SymbolTypeFlag.typetime });
461
+ const funcType = statement.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
446
462
  callables.push({
447
463
  isSub: ((_c = statement.func.tokens.functionType) === null || _c === void 0 ? void 0 : _c.text.toLowerCase()) === 'sub',
448
464
  name: (_d = statement.tokens.name) === null || _d === void 0 ? void 0 : _d.text,
@@ -459,99 +475,6 @@ class BrsFile {
459
475
  return callables;
460
476
  });
461
477
  }
462
- get functionCalls() {
463
- return this.cache.getOrAdd(`BrsFile_functionCalls`, () => {
464
- var _a, _b;
465
- const functionCalls = [];
466
- //for every function in the file
467
- for (let func of this._cachedLookups.functionExpressions) {
468
- //for all function calls in this function
469
- for (let expression of func.callExpressions) {
470
- if (
471
- //filter out dotted function invocations (i.e. object.doSomething()) (not currently supported. TODO support it)
472
- expression.callee.obj ||
473
- //filter out method calls on method calls for now (i.e. getSomething().getSomethingElse())
474
- expression.callee.callee ||
475
- //filter out callees without a name (immediately-invoked function expressions)
476
- !((_a = expression.callee.tokens) === null || _a === void 0 ? void 0 : _a.name)) {
477
- continue;
478
- }
479
- //callee is the name of the function being called
480
- let callee = expression.callee;
481
- let functionName = callee.tokens.name.text;
482
- let columnIndexBegin = callee.range.start.character;
483
- let columnIndexEnd = callee.range.end.character;
484
- let args = [];
485
- //TODO convert if stmts to use instanceof instead
486
- for (let arg of expression.args) {
487
- //is a literal parameter value
488
- if ((0, reflection_1.isLiteralExpression)(arg)) {
489
- args.push({
490
- range: arg.range,
491
- type: arg.getType(),
492
- text: arg.tokens.value.text,
493
- expression: arg,
494
- typeToken: undefined
495
- });
496
- //is variable being passed into argument
497
- }
498
- else if ((_b = arg.tokens) === null || _b === void 0 ? void 0 : _b.name) {
499
- args.push({
500
- range: arg.range,
501
- //TODO - look up the data type of the actual variable
502
- type: new DynamicType_1.DynamicType(),
503
- text: arg.tokens.name.text,
504
- expression: arg,
505
- typeToken: undefined
506
- });
507
- }
508
- else if (arg.value) {
509
- let text = '';
510
- /* istanbul ignore next: TODO figure out why value is undefined sometimes */
511
- if (arg.value.value) {
512
- text = arg.value.value.toString();
513
- }
514
- let callableArg = {
515
- range: arg.range,
516
- //TODO not sure what to do here
517
- type: new DynamicType_1.DynamicType(),
518
- text: text,
519
- expression: arg,
520
- typeToken: undefined
521
- };
522
- //wrap the value in quotes because that's how it appears in the code
523
- if ((0, reflection_1.isStringType)(callableArg.type)) {
524
- callableArg.text = '"' + callableArg.text + '"';
525
- }
526
- args.push(callableArg);
527
- }
528
- else {
529
- args.push({
530
- range: arg.range,
531
- type: new DynamicType_1.DynamicType(),
532
- //TODO get text from other types of args
533
- text: '',
534
- expression: arg,
535
- typeToken: undefined
536
- });
537
- }
538
- }
539
- let functionCall = {
540
- range: expression.range,
541
- functionScope: this.getFunctionScopeAtPosition(callee.range.start),
542
- file: this,
543
- name: functionName,
544
- nameRange: util_1.util.createRange(callee.range.start.line, columnIndexBegin, callee.range.start.line, columnIndexEnd),
545
- //TODO keep track of parameters
546
- args: args,
547
- expression: expression
548
- };
549
- functionCalls.push(functionCall);
550
- }
551
- }
552
- return functionCalls;
553
- });
554
- }
555
478
  /**
556
479
  * Find the function scope at the given position.
557
480
  * @param position the position used to find the deepest scope that contains it
@@ -665,9 +588,9 @@ class BrsFile {
665
588
  }
666
589
  return false;
667
590
  }
668
- getTokensUntil(currentToken, tokenKind, direction = -1) {
591
+ getTokensUntil(currentToken, tokenKind, direction = 1) {
669
592
  let tokens = [];
670
- for (let i = this.parser.tokens.indexOf(currentToken); direction === -1 ? i >= 0 : i === this.parser.tokens.length; i += direction) {
593
+ for (let i = this.parser.tokens.indexOf(currentToken); direction === -1 ? i >= 0 : i < this.parser.tokens.length; i += direction) {
671
594
  currentToken = this.parser.tokens[i];
672
595
  if (currentToken.kind === TokenKind_1.TokenKind.Newline || currentToken.kind === tokenKind) {
673
596
  break;
@@ -676,6 +599,15 @@ class BrsFile {
676
599
  }
677
600
  return tokens;
678
601
  }
602
+ getNextTokenByPredicate(currentToken, test, direction = 1) {
603
+ for (let i = this.parser.tokens.indexOf(currentToken); direction === -1 ? i >= 0 : i < this.parser.tokens.length; i += direction) {
604
+ currentToken = this.parser.tokens[i];
605
+ if (test(currentToken)) {
606
+ return currentToken;
607
+ }
608
+ }
609
+ return undefined;
610
+ }
679
611
  getPreviousToken(token) {
680
612
  const parser = this.parser;
681
613
  let idx = parser.tokens.indexOf(token);
@@ -926,29 +858,18 @@ class BrsFile {
926
858
  }
927
859
  return statement;
928
860
  }
861
+ /**
862
+ * Given a position in a file, if the position is sitting on some type of identifier,
863
+ * look up all references of that identifier (every place that identifier is used across the whole app)
864
+ * @deprecated use `ReferencesProvider.process()` instead
865
+ */
929
866
  getReferences(position) {
930
- const callSiteToken = this.getTokenAt(position);
931
- let locations = [];
932
- const searchFor = callSiteToken.text.toLowerCase();
933
- const scopes = this.program.getScopesForFile(this);
934
- for (const scope of scopes) {
935
- const processedFiles = new Set();
936
- for (const file of scope.getAllFiles()) {
937
- if ((0, reflection_1.isBrsFile)(file) && !processedFiles.has(file)) {
938
- processedFiles.add(file);
939
- file.ast.walk((0, visitors_1.createVisitor)({
940
- VariableExpression: (e) => {
941
- if (e.tokens.name.text.toLowerCase() === searchFor) {
942
- locations.push(util_1.util.createLocation(util_1.util.pathToUri(file.srcPath), e.range));
943
- }
944
- }
945
- }), {
946
- walkMode: visitors_1.WalkMode.visitExpressionsRecursive
947
- });
948
- }
949
- }
950
- }
951
- return locations;
867
+ return new ReferencesProvider_1.ReferencesProvider({
868
+ program: this.program,
869
+ file: this,
870
+ position: position,
871
+ references: []
872
+ }).process();
952
873
  }
953
874
  /**
954
875
  * Generate the code, map, and typedef for this file
@@ -977,7 +898,18 @@ class BrsFile {
977
898
  state.editor = (_a = this.editor) !== null && _a !== void 0 ? _a : new Editor_1.Editor();
978
899
  let transpileResult;
979
900
  if (this.needsTranspiled) {
980
- transpileResult = new source_map_1.SourceNode(null, null, state.srcPath, this.ast.transpile(state));
901
+ const astTranspile = this.ast.transpile(state);
902
+ const trailingComments = [];
903
+ if (util_1.util.hasLeadingComments(this.parser.eofToken)) {
904
+ if (util_1.util.isLeadingCommentOnSameLine(this.ast.statements[this.ast.statements.length - 1], this.parser.eofToken)) {
905
+ trailingComments.push(' ');
906
+ }
907
+ else {
908
+ trailingComments.push('\n');
909
+ }
910
+ trailingComments.push(...state.transpileLeadingComments(this.parser.eofToken));
911
+ }
912
+ transpileResult = util_1.util.sourceNodeFromTranspileResult(null, null, state.srcPath, [...astTranspile, ...trailingComments]);
981
913
  }
982
914
  else if (this.program.options.sourceMap) {
983
915
  //emit code as-is with a simple map to the original file location
@@ -993,11 +925,12 @@ class BrsFile {
993
925
  state.editor.undoAll();
994
926
  }
995
927
  if (this.program.options.sourceMap) {
996
- return new source_map_1.SourceNode(null, null, null, [
928
+ const stagingFileName = path.basename(state.srcPath).replace(/\.bs$/, '.brs');
929
+ return new source_map_1.SourceNode(null, null, stagingFileName, [
997
930
  transpileResult,
998
931
  //add the sourcemap reference comment
999
- `'//# sourceMappingURL=./${path.basename(state.srcPath)}.map`
1000
- ]).toStringWithSourceMap();
932
+ state.newline + `'//# sourceMappingURL=./${stagingFileName}.map`
933
+ ]).toStringWithSourceMap({ file: stagingFileName });
1001
934
  }
1002
935
  else {
1003
936
  return {
@@ -1020,12 +953,12 @@ class BrsFile {
1020
953
  const allNeededSymbolSets = this.validationSegmenter.unresolvedSegmentsSymbols.values();
1021
954
  const requiredSymbols = [];
1022
955
  const addedSymbols = new Map();
1023
- addedSymbols.set(SymbolTable_1.SymbolTypeFlag.runtime, new Set());
1024
- addedSymbols.set(SymbolTable_1.SymbolTypeFlag.typetime, new Set());
956
+ addedSymbols.set(1 /* SymbolTypeFlag.runtime */, new Set());
957
+ addedSymbols.set(2 /* SymbolTypeFlag.typetime */, new Set());
1025
958
  for (const setOfSymbols of allNeededSymbolSets) {
1026
959
  for (const symbol of setOfSymbols) {
1027
960
  const fullSymbolKey = symbol.typeChain.map(tce => tce.name).join('.').toLowerCase();
1028
- for (const flag of [SymbolTable_1.SymbolTypeFlag.runtime, SymbolTable_1.SymbolTypeFlag.typetime]) {
961
+ for (const flag of [1 /* SymbolTypeFlag.runtime */, 2 /* SymbolTypeFlag.typetime */]) {
1029
962
  // eslint-disable-next-line no-bitwise
1030
963
  if (symbol.flags & flag) {
1031
964
  if ((_a = this.providedSymbols.symbolMap.get(flag)) === null || _a === void 0 ? void 0 : _a.has(fullSymbolKey)) {
@@ -1064,8 +997,8 @@ class BrsFile {
1064
997
  });
1065
998
  }
1066
999
  for (const symbolTable of tablesToGetSymbolsFrom) {
1067
- const runTimeSymbols = symbolTable.table.getOwnSymbols(SymbolTable_1.SymbolTypeFlag.runtime);
1068
- const typeTimeSymbols = symbolTable.table.getOwnSymbols(SymbolTable_1.SymbolTypeFlag.typetime);
1000
+ const runTimeSymbols = symbolTable.table.getOwnSymbols(1 /* SymbolTypeFlag.runtime */);
1001
+ const typeTimeSymbols = symbolTable.table.getOwnSymbols(2 /* SymbolTypeFlag.typetime */);
1069
1002
  for (const symbol of runTimeSymbols) {
1070
1003
  if (!(0, reflection_1.isAnyReferenceType)(symbol.type)) {
1071
1004
  const symbolNameLower = symbolTable.namePrefixLower
@@ -1083,16 +1016,16 @@ class BrsFile {
1083
1016
  }
1084
1017
  }
1085
1018
  }
1086
- symbolMap.set(SymbolTable_1.SymbolTypeFlag.runtime, runTimeSymbolMap);
1087
- symbolMap.set(SymbolTable_1.SymbolTypeFlag.typetime, typeTimeSymbolMap);
1019
+ symbolMap.set(1 /* SymbolTypeFlag.runtime */, runTimeSymbolMap);
1020
+ symbolMap.set(2 /* SymbolTypeFlag.typetime */, typeTimeSymbolMap);
1088
1021
  const changes = new Map();
1089
- changes.set(SymbolTable_1.SymbolTypeFlag.runtime, new Set());
1090
- changes.set(SymbolTable_1.SymbolTypeFlag.typetime, new Set());
1022
+ changes.set(1 /* SymbolTypeFlag.runtime */, new Set());
1023
+ changes.set(2 /* SymbolTypeFlag.typetime */, new Set());
1091
1024
  const previouslyProvidedSymbols = (_a = this.program.getFileSymbolInfo(this)) === null || _a === void 0 ? void 0 : _a.provides.symbolMap;
1092
1025
  const previousSymbolsChecked = new Map();
1093
- previousSymbolsChecked.set(SymbolTable_1.SymbolTypeFlag.runtime, new Set());
1094
- previousSymbolsChecked.set(SymbolTable_1.SymbolTypeFlag.typetime, new Set());
1095
- for (const flag of [SymbolTable_1.SymbolTypeFlag.runtime, SymbolTable_1.SymbolTypeFlag.typetime]) {
1026
+ previousSymbolsChecked.set(1 /* SymbolTypeFlag.runtime */, new Set());
1027
+ previousSymbolsChecked.set(2 /* SymbolTypeFlag.typetime */, new Set());
1028
+ for (const flag of [1 /* SymbolTypeFlag.runtime */, 2 /* SymbolTypeFlag.typetime */]) {
1096
1029
  const newSymbolMapForFlag = symbolMap.get(flag);
1097
1030
  const oldSymbolMapForFlag = previouslyProvidedSymbols === null || previouslyProvidedSymbols === void 0 ? void 0 : previouslyProvidedSymbols.get(flag);
1098
1031
  const previousSymbolsCheckedForFlag = previousSymbolsChecked.get(flag);
@@ -1209,7 +1142,7 @@ class BrsFile {
1209
1142
  getTypedef() {
1210
1143
  const state = new BrsTranspileState_1.BrsTranspileState(this);
1211
1144
  const typedef = this.ast.getTypedef(state);
1212
- const programNode = new source_map_1.SourceNode(null, null, this.srcPath, typedef);
1145
+ const programNode = util_1.util.sourceNodeFromTranspileResult(null, null, this.srcPath, typedef);
1213
1146
  return programNode.toString();
1214
1147
  }
1215
1148
  dispose() {