brighterscript 0.65.1 → 0.66.0-alpha.1

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 (254) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +8 -0
  3. package/dist/BsConfig.d.ts +5 -11
  4. package/dist/CacheVerifier.d.ts +8 -0
  5. package/dist/CacheVerifier.js +20 -0
  6. package/dist/CacheVerifier.js.map +1 -0
  7. package/dist/DiagnosticMessages.d.ts +9 -4
  8. package/dist/DiagnosticMessages.js +8 -3
  9. package/dist/DiagnosticMessages.js.map +1 -1
  10. package/dist/FunctionScope.d.ts +1 -0
  11. package/dist/FunctionScope.js +3 -0
  12. package/dist/FunctionScope.js.map +1 -1
  13. package/dist/PluginInterface.d.ts +0 -4
  14. package/dist/PluginInterface.js.map +1 -1
  15. package/dist/Program.d.ts +6 -39
  16. package/dist/Program.js +94 -68
  17. package/dist/Program.js.map +1 -1
  18. package/dist/ProgramBuilder.d.ts +4 -0
  19. package/dist/ProgramBuilder.js +33 -13
  20. package/dist/ProgramBuilder.js.map +1 -1
  21. package/dist/Scope.d.ts +1 -5
  22. package/dist/Scope.js +53 -37
  23. package/dist/Scope.js.map +1 -1
  24. package/dist/SymbolTable.d.ts +44 -6
  25. package/dist/SymbolTable.js +154 -26
  26. package/dist/SymbolTable.js.map +1 -1
  27. package/dist/XmlScope.js +11 -12
  28. package/dist/XmlScope.js.map +1 -1
  29. package/dist/astUtils/creators.d.ts +16 -6
  30. package/dist/astUtils/creators.js +39 -16
  31. package/dist/astUtils/creators.js.map +1 -1
  32. package/dist/astUtils/reflection.d.ts +46 -37
  33. package/dist/astUtils/reflection.js +145 -147
  34. package/dist/astUtils/reflection.js.map +1 -1
  35. package/dist/astUtils/reflection.spec.js +1 -6
  36. package/dist/astUtils/reflection.spec.js.map +1 -1
  37. package/dist/astUtils/visitors.d.ts +4 -11
  38. package/dist/astUtils/visitors.js +0 -7
  39. package/dist/astUtils/visitors.js.map +1 -1
  40. package/dist/astUtils/visitors.spec.js +8 -6
  41. package/dist/astUtils/visitors.spec.js.map +1 -1
  42. package/dist/astUtils/xml.d.ts +9 -9
  43. package/dist/astUtils/xml.js +6 -6
  44. package/dist/astUtils/xml.js.map +1 -1
  45. package/dist/bscPlugin/BscPlugin.d.ts +2 -3
  46. package/dist/bscPlugin/BscPlugin.js +6 -2
  47. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  48. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  49. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +2 -2
  50. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  51. package/dist/bscPlugin/hover/HoverProcessor.js +71 -59
  52. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  53. package/dist/bscPlugin/hover/HoverProcessor.spec.js +110 -10
  54. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  55. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +6 -5
  56. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  57. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  58. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +1 -1
  59. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
  60. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +11 -0
  61. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +53 -0
  62. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  63. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +4 -0
  64. package/dist/bscPlugin/validation/BrsFileValidator.js +37 -16
  65. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  66. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1 -1
  67. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  68. package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
  69. package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
  70. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
  71. package/dist/bscPlugin/validation/ScopeValidator.d.ts +1 -0
  72. package/dist/bscPlugin/validation/ScopeValidator.js +72 -18
  73. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  74. package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
  75. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  76. package/dist/files/BrsFile.Class.spec.js +9 -10
  77. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  78. package/dist/files/BrsFile.d.ts +8 -10
  79. package/dist/files/BrsFile.js +72 -52
  80. package/dist/files/BrsFile.js.map +1 -1
  81. package/dist/files/BrsFile.spec.js +57 -15
  82. package/dist/files/BrsFile.spec.js.map +1 -1
  83. package/dist/files/XmlFile.d.ts +19 -19
  84. package/dist/files/XmlFile.js +24 -42
  85. package/dist/files/XmlFile.js.map +1 -1
  86. package/dist/files/XmlFile.spec.js +70 -17
  87. package/dist/files/XmlFile.spec.js.map +1 -1
  88. package/dist/files/tests/imports.spec.js +8 -11
  89. package/dist/files/tests/imports.spec.js.map +1 -1
  90. package/dist/globalCallables.js +2 -1
  91. package/dist/globalCallables.js.map +1 -1
  92. package/dist/index.d.ts +2 -0
  93. package/dist/index.js +2 -0
  94. package/dist/index.js.map +1 -1
  95. package/dist/interfaces.d.ts +107 -28
  96. package/dist/interfaces.js +13 -0
  97. package/dist/interfaces.js.map +1 -1
  98. package/dist/lexer/TokenKind.d.ts +2 -0
  99. package/dist/lexer/TokenKind.js +5 -1
  100. package/dist/lexer/TokenKind.js.map +1 -1
  101. package/dist/parser/AstNode.d.ts +78 -1
  102. package/dist/parser/AstNode.js +80 -1
  103. package/dist/parser/AstNode.js.map +1 -1
  104. package/dist/parser/Expression.d.ts +87 -53
  105. package/dist/parser/Expression.js +243 -139
  106. package/dist/parser/Expression.js.map +1 -1
  107. package/dist/parser/Parser.Class.spec.js +10 -7
  108. package/dist/parser/Parser.Class.spec.js.map +1 -1
  109. package/dist/parser/Parser.d.ts +9 -5
  110. package/dist/parser/Parser.js +125 -78
  111. package/dist/parser/Parser.js.map +1 -1
  112. package/dist/parser/Parser.spec.d.ts +2 -0
  113. package/dist/parser/Parser.spec.js +117 -5
  114. package/dist/parser/Parser.spec.js.map +1 -1
  115. package/dist/parser/SGParser.d.ts +42 -4
  116. package/dist/parser/SGParser.js +191 -195
  117. package/dist/parser/SGParser.js.map +1 -1
  118. package/dist/parser/SGParser.spec.js +13 -10
  119. package/dist/parser/SGParser.spec.js.map +1 -1
  120. package/dist/parser/SGTypes.d.ts +279 -51
  121. package/dist/parser/SGTypes.js +562 -185
  122. package/dist/parser/SGTypes.js.map +1 -1
  123. package/dist/parser/Statement.d.ts +88 -70
  124. package/dist/parser/Statement.js +212 -136
  125. package/dist/parser/Statement.js.map +1 -1
  126. package/dist/parser/TranspileState.d.ts +1 -1
  127. package/dist/parser/TranspileState.js +5 -2
  128. package/dist/parser/TranspileState.js.map +1 -1
  129. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  130. package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
  131. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  132. package/dist/types/ArrayType.d.ts +6 -4
  133. package/dist/types/ArrayType.js +30 -22
  134. package/dist/types/ArrayType.js.map +1 -1
  135. package/dist/types/ArrayType.spec.js +8 -8
  136. package/dist/types/ArrayType.spec.js.map +1 -1
  137. package/dist/types/BooleanType.d.ts +7 -4
  138. package/dist/types/BooleanType.js +13 -8
  139. package/dist/types/BooleanType.js.map +1 -1
  140. package/dist/types/BooleanType.spec.js +9 -3
  141. package/dist/types/BooleanType.spec.js.map +1 -1
  142. package/dist/types/BscType.d.ts +25 -2
  143. package/dist/types/BscType.js +64 -0
  144. package/dist/types/BscType.js.map +1 -1
  145. package/dist/types/BscTypeKind.d.ts +22 -0
  146. package/dist/types/BscTypeKind.js +27 -0
  147. package/dist/types/BscTypeKind.js.map +1 -0
  148. package/dist/types/ClassType.d.ts +11 -0
  149. package/dist/types/ClassType.js +31 -0
  150. package/dist/types/ClassType.js.map +1 -0
  151. package/dist/types/ClassType.spec.d.ts +1 -0
  152. package/dist/types/ClassType.spec.js +75 -0
  153. package/dist/types/ClassType.spec.js.map +1 -0
  154. package/dist/types/DoubleType.d.ts +7 -4
  155. package/dist/types/DoubleType.js +16 -20
  156. package/dist/types/DoubleType.js.map +1 -1
  157. package/dist/types/DoubleType.spec.js +11 -3
  158. package/dist/types/DoubleType.spec.js.map +1 -1
  159. package/dist/types/DynamicType.d.ts +9 -3
  160. package/dist/types/DynamicType.js +16 -2
  161. package/dist/types/DynamicType.js.map +1 -1
  162. package/dist/types/DynamicType.spec.js +15 -4
  163. package/dist/types/DynamicType.spec.js.map +1 -1
  164. package/dist/types/EnumType.d.ts +22 -0
  165. package/dist/types/EnumType.js +59 -0
  166. package/dist/types/EnumType.js.map +1 -0
  167. package/dist/types/EnumType.spec.d.ts +1 -0
  168. package/dist/types/EnumType.spec.js +33 -0
  169. package/dist/types/EnumType.spec.js.map +1 -0
  170. package/dist/types/FloatType.d.ts +7 -4
  171. package/dist/types/FloatType.js +16 -20
  172. package/dist/types/FloatType.js.map +1 -1
  173. package/dist/types/FloatType.spec.js +3 -3
  174. package/dist/types/FloatType.spec.js.map +1 -1
  175. package/dist/types/FunctionType.d.ts +6 -4
  176. package/dist/types/FunctionType.js +22 -19
  177. package/dist/types/FunctionType.js.map +1 -1
  178. package/dist/types/FunctionType.spec.js +5 -5
  179. package/dist/types/FunctionType.spec.js.map +1 -1
  180. package/dist/types/InheritableType.d.ts +25 -0
  181. package/dist/types/InheritableType.js +88 -0
  182. package/dist/types/InheritableType.js.map +1 -0
  183. package/dist/types/IntegerType.d.ts +7 -4
  184. package/dist/types/IntegerType.js +16 -20
  185. package/dist/types/IntegerType.js.map +1 -1
  186. package/dist/types/IntegerType.spec.js +7 -3
  187. package/dist/types/IntegerType.spec.js.map +1 -1
  188. package/dist/types/InterfaceType.d.ts +10 -10
  189. package/dist/types/InterfaceType.js +24 -45
  190. package/dist/types/InterfaceType.js.map +1 -1
  191. package/dist/types/InterfaceType.spec.js +59 -45
  192. package/dist/types/InterfaceType.spec.js.map +1 -1
  193. package/dist/types/InvalidType.d.ts +6 -4
  194. package/dist/types/InvalidType.js +12 -8
  195. package/dist/types/InvalidType.js.map +1 -1
  196. package/dist/types/InvalidType.spec.js +7 -3
  197. package/dist/types/InvalidType.spec.js.map +1 -1
  198. package/dist/types/LongIntegerType.d.ts +7 -4
  199. package/dist/types/LongIntegerType.js +16 -20
  200. package/dist/types/LongIntegerType.js.map +1 -1
  201. package/dist/types/LongIntegerType.spec.js +9 -3
  202. package/dist/types/LongIntegerType.spec.js.map +1 -1
  203. package/dist/types/NamespaceType.d.ts +11 -0
  204. package/dist/types/NamespaceType.js +25 -0
  205. package/dist/types/NamespaceType.js.map +1 -0
  206. package/dist/types/ObjectType.d.ts +8 -4
  207. package/dist/types/ObjectType.js +26 -7
  208. package/dist/types/ObjectType.js.map +1 -1
  209. package/dist/types/ObjectType.spec.js +2 -2
  210. package/dist/types/ObjectType.spec.js.map +1 -1
  211. package/dist/types/ReferenceType.d.ts +51 -0
  212. package/dist/types/ReferenceType.js +274 -0
  213. package/dist/types/ReferenceType.js.map +1 -0
  214. package/dist/types/ReferenceType.spec.d.ts +1 -0
  215. package/dist/types/ReferenceType.spec.js +122 -0
  216. package/dist/types/ReferenceType.spec.js.map +1 -0
  217. package/dist/types/StringType.d.ts +10 -4
  218. package/dist/types/StringType.js +16 -8
  219. package/dist/types/StringType.js.map +1 -1
  220. package/dist/types/StringType.spec.js +2 -2
  221. package/dist/types/StringType.spec.js.map +1 -1
  222. package/dist/types/UninitializedType.d.ts +6 -3
  223. package/dist/types/UninitializedType.js +14 -3
  224. package/dist/types/UninitializedType.js.map +1 -1
  225. package/dist/types/UnionType.d.ts +18 -0
  226. package/dist/types/UnionType.js +91 -0
  227. package/dist/types/UnionType.js.map +1 -0
  228. package/dist/types/UnionType.spec.d.ts +1 -0
  229. package/dist/types/UnionType.spec.js +103 -0
  230. package/dist/types/UnionType.spec.js.map +1 -0
  231. package/dist/types/VoidType.d.ts +7 -4
  232. package/dist/types/VoidType.js +13 -8
  233. package/dist/types/VoidType.js.map +1 -1
  234. package/dist/types/VoidType.spec.js +2 -2
  235. package/dist/types/VoidType.spec.js.map +1 -1
  236. package/dist/types/helper.spec.d.ts +1 -0
  237. package/dist/types/helper.spec.js +130 -0
  238. package/dist/types/helper.spec.js.map +1 -0
  239. package/dist/types/helpers.d.ts +19 -0
  240. package/dist/types/helpers.js +131 -0
  241. package/dist/types/helpers.js.map +1 -0
  242. package/dist/types/index.d.ts +22 -0
  243. package/dist/types/index.js +39 -0
  244. package/dist/types/index.js.map +1 -0
  245. package/dist/util.d.ts +9 -8
  246. package/dist/util.js +78 -32
  247. package/dist/util.js.map +1 -1
  248. package/dist/validators/ClassValidator.d.ts +0 -4
  249. package/dist/validators/ClassValidator.js +6 -30
  250. package/dist/validators/ClassValidator.js.map +1 -1
  251. package/package.json +2 -1
  252. package/dist/types/CustomType.d.ts +0 -9
  253. package/dist/types/CustomType.js +0 -32
  254. package/dist/types/CustomType.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rangeFromTokenValue = void 0;
4
3
  const parser = require("@xml-tools/parser");
5
4
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
6
5
  const util_1 = require("../util");
@@ -38,25 +37,23 @@ class SGParser {
38
37
  * Walk the AST to extract references to useful bits of information
39
38
  */
40
39
  findReferences() {
41
- this._references = emptySGReferences();
42
- const { component } = this.ast;
43
- if (!component) {
40
+ this._references = this.emptySGReferences();
41
+ const { componentElement } = this.ast;
42
+ if (!componentElement) {
44
43
  return;
45
44
  }
46
- const nameAttr = component.getAttribute('name');
47
- if (nameAttr === null || nameAttr === void 0 ? void 0 : nameAttr.value) {
48
- this._references.name = nameAttr.value;
45
+ const nameAttr = componentElement.getAttribute('name');
46
+ this._references.name = nameAttr === null || nameAttr === void 0 ? void 0 : nameAttr.tokens.value;
47
+ const extendsAttr = componentElement.getAttribute('extends');
48
+ if (extendsAttr === null || extendsAttr === void 0 ? void 0 : extendsAttr.tokens.value) {
49
+ this._references.extends = extendsAttr.tokens.value;
49
50
  }
50
- const extendsAttr = component.getAttribute('extends');
51
- if (extendsAttr === null || extendsAttr === void 0 ? void 0 : extendsAttr.value) {
52
- this._references.extends = extendsAttr.value;
53
- }
54
- for (const script of component.scripts) {
51
+ for (const script of componentElement.scriptElements) {
55
52
  const uriAttr = script.getAttribute('uri');
56
- if (uriAttr) {
57
- const uri = uriAttr.value.text;
53
+ if (uriAttr === null || uriAttr === void 0 ? void 0 : uriAttr.tokens.value) {
54
+ const uri = uriAttr.tokens.value.text;
58
55
  this._references.scriptTagImports.push({
59
- filePathRange: uriAttr.value.range,
56
+ filePathRange: uriAttr.tokens.value.range,
60
57
  text: uri,
61
58
  pkgPath: util_1.default.getPkgPathFromTarget(this.pkgPath, uri)
62
59
  });
@@ -76,16 +73,16 @@ class SGParser {
76
73
  if (parseErrors.length) {
77
74
  const err = parseErrors[0];
78
75
  const token = err.token;
79
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError(`Syntax error: ${err.message}`)), { range: !isNaN(token.startLine) ? rangeFromTokens(token) : util_1.default.createRange(0, 0, 0, Number.MAX_VALUE) }));
76
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError(`Syntax error: ${err.message}`)), { range: !isNaN(token.startLine) ? this.rangeFromToken(token) : util_1.default.createRange(0, 0, 0, Number.MAX_VALUE) }));
80
77
  }
81
- const { prolog, root } = buildAST(cst, this.diagnostics);
78
+ const { prolog, root } = this.buildAST(cst);
82
79
  if (!root) {
83
80
  const token1 = tokenVector[0];
84
81
  const token2 = tokenVector[1];
85
82
  //whitespace before the prolog isn't allowed by the parser
86
83
  if ((token1 === null || token1 === void 0 ? void 0 : token1.image.trim().length) === 0 &&
87
84
  (token2 === null || token2 === void 0 ? void 0 : token2.image.trim()) === '<?xml') {
88
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: rangeFromTokens(token1) }));
85
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: this.rangeFromToken(token1) }));
89
86
  }
90
87
  }
91
88
  if ((0, xml_1.isSGComponent)(root)) {
@@ -94,205 +91,204 @@ class SGParser {
94
91
  else {
95
92
  if (root) {
96
93
  //error: not a component
97
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(root.tag.text)), { range: root.tag.range }));
94
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(root.tokens.startTagName.text)), { range: root.tokens.startTagName.range }));
98
95
  }
99
96
  this.ast = new SGTypes_1.SGAst(prolog, root);
100
97
  }
101
98
  }
102
- }
103
- exports.default = SGParser;
104
- function buildAST(cst, diagnostics) {
105
- var _a, _b;
106
- const { prolog: cstProlog, element } = cst.children;
107
- let prolog;
108
- if (cstProlog === null || cstProlog === void 0 ? void 0 : cstProlog[0]) {
109
- const ctx = cstProlog[0].children;
110
- prolog = new SGTypes_1.SGProlog(mapToken(ctx.XMLDeclOpen[0]), mapAttributes(ctx.attribute), rangeFromTokens(ctx.XMLDeclOpen[0], ctx.SPECIAL_CLOSE[0]));
111
- }
112
- let root;
113
- if (element.length > 0 && ((_b = (_a = element[0]) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.Name)) {
114
- root = mapElement(element[0], diagnostics);
115
- }
116
- return {
117
- prolog: prolog,
118
- root: root
119
- };
120
- }
121
- function mapElement({ children }, diagnostics) {
122
- var _a, _b;
123
- const nameToken = children.Name[0];
124
- let range;
125
- const selfClosing = !!children.SLASH_CLOSE;
126
- if (selfClosing) {
127
- const scToken = children.SLASH_CLOSE[0];
128
- range = rangeFromTokens(nameToken, scToken);
129
- }
130
- else {
131
- const endToken = (_a = children.END) === null || _a === void 0 ? void 0 : _a[0];
132
- range = rangeFromTokens(nameToken, endToken);
133
- }
134
- const name = mapToken(nameToken);
135
- const attributes = mapAttributes(children.attribute);
136
- const content = (_b = children.content) === null || _b === void 0 ? void 0 : _b[0];
137
- switch (name.text) {
138
- case 'component':
139
- const componentContent = mapElements(content, ['interface', 'script', 'children', 'customization'], diagnostics);
140
- return new SGTypes_1.SGComponent(name, attributes, componentContent, range);
141
- case 'interface':
142
- const interfaceContent = mapElements(content, ['field', 'function'], diagnostics);
143
- return new SGTypes_1.SGInterface(name, interfaceContent, range);
144
- case 'field':
145
- if (hasElements(content)) {
146
- reportUnexpectedChildren(name, diagnostics);
147
- }
148
- return new SGTypes_1.SGField(name, attributes, range);
149
- case 'function':
150
- if (hasElements(content)) {
151
- reportUnexpectedChildren(name, diagnostics);
152
- }
153
- return new SGTypes_1.SGFunction(name, attributes, range);
154
- case 'script':
155
- if (hasElements(content)) {
156
- reportUnexpectedChildren(name, diagnostics);
157
- }
158
- const cdata = getCdata(content);
159
- return new SGTypes_1.SGScript(name, attributes, cdata, range);
160
- case 'children':
161
- const childrenContent = mapNodes(content);
162
- return new SGTypes_1.SGChildren(name, childrenContent, range);
163
- default:
164
- const nodeContent = mapNodes(content);
165
- return new SGTypes_1.SGNode(name, attributes, nodeContent, range);
166
- }
167
- }
168
- function reportUnexpectedChildren(name, diagnostics) {
169
- diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(name.text)), { range: name.range }));
170
- }
171
- function mapNode({ children }) {
172
- var _a, _b;
173
- const nameToken = children.Name[0];
174
- let range;
175
- const selfClosing = !!children.SLASH_CLOSE;
176
- if (selfClosing) {
177
- const scToken = children.SLASH_CLOSE[0];
178
- range = rangeFromTokens(nameToken, scToken);
99
+ buildAST(cst) {
100
+ var _a, _b;
101
+ const { prolog: cstProlog, element } = cst.children;
102
+ let prolog;
103
+ if (cstProlog === null || cstProlog === void 0 ? void 0 : cstProlog[0]) {
104
+ const ctx = cstProlog[0].children;
105
+ prolog = new SGTypes_1.SGProlog(
106
+ // <?
107
+ this.createPartialToken(ctx.XMLDeclOpen[0], 0, 2),
108
+ // xml
109
+ this.createPartialToken(ctx.XMLDeclOpen[0], 2, 3), this.mapAttributes(ctx.attribute),
110
+ // ?>
111
+ this.mapToken(ctx.SPECIAL_CLOSE[0]));
112
+ }
113
+ let root;
114
+ if (element.length > 0 && ((_b = (_a = element[0]) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.Name)) {
115
+ root = this.mapElement(element[0]);
116
+ }
117
+ return {
118
+ prolog: prolog,
119
+ root: root
120
+ };
179
121
  }
180
- else {
181
- const endToken = (_a = children.END) === null || _a === void 0 ? void 0 : _a[0];
182
- range = rangeFromTokens(nameToken, endToken);
122
+ mapElement({ children }) {
123
+ var _a, _b, _c, _d, _e, _f;
124
+ const startTagOpen = this.mapToken(children.OPEN[0]);
125
+ const startTagName = this.mapToken(children.Name[0]);
126
+ const attributes = this.mapAttributes(children.attribute);
127
+ const startTagClose = this.mapToken((_b = ((_a = children.SLASH_CLOSE) !== null && _a !== void 0 ? _a : children.START_CLOSE)) === null || _b === void 0 ? void 0 : _b[0]);
128
+ const endTagOpen = this.mapToken((_c = children.SLASH_OPEN) === null || _c === void 0 ? void 0 : _c[0]);
129
+ const endTagName = this.mapToken((_d = children.END_NAME) === null || _d === void 0 ? void 0 : _d[0]);
130
+ const endTagClose = this.mapToken((_e = children.END) === null || _e === void 0 ? void 0 : _e[0]);
131
+ const content = (_f = children.content) === null || _f === void 0 ? void 0 : _f[0];
132
+ let childrenContent;
133
+ switch (startTagName.text) {
134
+ case 'component':
135
+ childrenContent = this.mapElements(content, ['interface', 'script', 'children', 'customization']);
136
+ return new SGTypes_1.SGComponent(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
137
+ case 'interface':
138
+ childrenContent = this.mapElements(content, ['field', 'function']);
139
+ return new SGTypes_1.SGInterface(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
140
+ case 'field':
141
+ if (this.hasElements(content)) {
142
+ this.diagnostics.push(Object.assign({ range: startTagName.range }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
143
+ }
144
+ return new SGTypes_1.SGInterfaceField(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
145
+ case 'function':
146
+ if (this.hasElements(content)) {
147
+ this.diagnostics.push(Object.assign({ range: startTagName.range }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
148
+ }
149
+ return new SGTypes_1.SGInterfaceFunction(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
150
+ case 'script':
151
+ if (this.hasElements(content)) {
152
+ this.diagnostics.push(Object.assign({ range: startTagName.range }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
153
+ }
154
+ const script = new SGTypes_1.SGScript(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
155
+ script.cdata = this.getCdata(content);
156
+ return script;
157
+ case 'children':
158
+ childrenContent = this.mapNodes(content);
159
+ return new SGTypes_1.SGChildren(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
160
+ default:
161
+ childrenContent = this.mapNodes(content);
162
+ return new SGTypes_1.SGNode(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
163
+ }
183
164
  }
184
- const name = mapToken(nameToken);
185
- const attributes = mapAttributes(children.attribute);
186
- const content = (_b = children.content) === null || _b === void 0 ? void 0 : _b[0];
187
- const nodeContent = mapNodes(content);
188
- return new SGTypes_1.SGNode(name, attributes, nodeContent, range);
189
- }
190
- function mapElements(content, allow, diagnostics) {
191
- var _a;
192
- if (!content) {
193
- return [];
165
+ mapNode({ children }) {
166
+ var _a, _b, _c, _d, _e;
167
+ return new SGTypes_1.SGNode(
168
+ //<
169
+ this.mapToken(children.OPEN[0]),
170
+ // TagName
171
+ this.mapToken(children.Name[0]), this.mapAttributes(children.attribute),
172
+ // > or />
173
+ this.mapToken(((_a = children.SLASH_CLOSE) !== null && _a !== void 0 ? _a : children.START_CLOSE)[0]), this.mapNodes((_b = children.content) === null || _b === void 0 ? void 0 : _b[0]),
174
+ // </
175
+ this.mapToken((_c = children.SLASH_OPEN) === null || _c === void 0 ? void 0 : _c[0]),
176
+ // TagName
177
+ this.mapToken((_d = children.END_NAME) === null || _d === void 0 ? void 0 : _d[0]),
178
+ // >
179
+ this.mapToken((_e = children.END) === null || _e === void 0 ? void 0 : _e[0]));
194
180
  }
195
- const { element } = content.children;
196
- const tags = [];
197
- if (element) {
198
- for (const entry of element) {
199
- const name = (_a = entry.children.Name) === null || _a === void 0 ? void 0 : _a[0];
200
- if (name === null || name === void 0 ? void 0 : name.image) {
201
- if (allow.includes(name.image)) {
202
- tags.push(mapElement(entry, diagnostics));
181
+ mapElements(content, allow) {
182
+ var _a;
183
+ if (!content) {
184
+ return [];
185
+ }
186
+ const { element } = content.children;
187
+ const tags = [];
188
+ if (element) {
189
+ for (const entry of element) {
190
+ const name = (_a = entry.children.Name) === null || _a === void 0 ? void 0 : _a[0];
191
+ if (name === null || name === void 0 ? void 0 : name.image) {
192
+ if (!allow.includes(name.image)) {
193
+ //unexpected tag
194
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(name.image)), { range: this.rangeFromToken(name) }));
195
+ }
196
+ tags.push(this.mapElement(entry));
203
197
  }
204
198
  else {
205
- //unexpected tag
206
- diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(name.image)), { range: rangeFromTokens(name) }));
199
+ //bad xml syntax...
207
200
  }
208
201
  }
209
- else {
210
- //bad xml syntax...
211
- }
212
202
  }
203
+ return tags;
213
204
  }
214
- return tags;
215
- }
216
- function mapNodes(content) {
217
- if (!content) {
218
- return [];
205
+ mapNodes(content) {
206
+ if (!content) {
207
+ return [];
208
+ }
209
+ const { element } = content.children;
210
+ return element === null || element === void 0 ? void 0 : element.map(element => this.mapNode(element));
219
211
  }
220
- const { element } = content.children;
221
- return element === null || element === void 0 ? void 0 : element.map(element => mapNode(element));
222
- }
223
- function hasElements(content) {
224
- var _a;
225
- return !!((_a = content === null || content === void 0 ? void 0 : content.children.element) === null || _a === void 0 ? void 0 : _a.length);
226
- }
227
- function getCdata(content) {
228
- if (!content) {
229
- return undefined;
212
+ hasElements(content) {
213
+ var _a;
214
+ return !!((_a = content === null || content === void 0 ? void 0 : content.children.element) === null || _a === void 0 ? void 0 : _a.length);
230
215
  }
231
- const { CData } = content.children;
232
- return mapToken(CData === null || CData === void 0 ? void 0 : CData[0]);
233
- }
234
- function mapToken(token, unquote = false) {
235
- if (!token) {
236
- return undefined;
216
+ getCdata(content) {
217
+ if (!content) {
218
+ return undefined;
219
+ }
220
+ const { CData } = content.children;
221
+ return this.mapToken(CData === null || CData === void 0 ? void 0 : CData[0]);
237
222
  }
238
- return {
239
- text: unquote ? stripQuotes(token.image) : token.image,
240
- range: unquote ? rangeFromTokenValue(token) : rangeFromTokens(token)
241
- };
242
- }
243
- function mapAttributes(attributes) {
244
- return (attributes === null || attributes === void 0 ? void 0 : attributes.map(({ children }) => {
245
- var _a;
246
- const key = children.Name[0];
247
- const value = (_a = children.STRING) === null || _a === void 0 ? void 0 : _a[0];
248
- let openQuote;
249
- let closeQuote;
250
- //capture the leading and trailing quote tokens
251
- const match = /^(["']).*?(["'])$/.exec(value === null || value === void 0 ? void 0 : value.image);
252
- if (match) {
253
- const range = rangeFromTokenValue(value);
254
- openQuote = {
255
- text: match[1],
256
- range: util_1.default.createRange(range.start.line, range.start.character, range.start.line, range.start.character + 1)
257
- };
258
- closeQuote = {
259
- text: match[1],
260
- range: util_1.default.createRange(range.end.line, range.end.character - 1, range.end.line, range.end.character)
223
+ mapToken(token) {
224
+ if (token) {
225
+ return {
226
+ text: token.image,
227
+ range: this.rangeFromToken(token)
261
228
  };
262
229
  }
230
+ else {
231
+ return undefined;
232
+ }
233
+ }
234
+ /**
235
+ * Build SGAttributes from the underlying XML parser attributes array
236
+ */
237
+ mapAttributes(attributes) {
238
+ // this is a hot function and has been optimized, so don't refactor unless you know what you're doing...
239
+ const result = [];
240
+ if (attributes) {
241
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
242
+ for (let i = 0; i < attributes.length; i++) {
243
+ const children = attributes[i].children;
244
+ const attr = new SGTypes_1.SGAttribute(this.mapToken(children.Name[0]));
245
+ if (children.EQUALS) {
246
+ attr.tokens.equals = this.mapToken(children.EQUALS[0]);
247
+ }
248
+ if (children.STRING) {
249
+ const valueToken = children.STRING[0];
250
+ attr.tokens.openingQuote = this.createPartialToken(valueToken, 0, 1);
251
+ attr.tokens.value = this.createPartialToken(valueToken, 1, -2);
252
+ attr.tokens.closingQuote = this.createPartialToken(valueToken, -1, 1);
253
+ }
254
+ result.push(attr);
255
+ }
256
+ }
257
+ return result;
258
+ }
259
+ /**
260
+ * Create a partial token from the given token. This only supports single-line tokens.
261
+ * @param token the offset to start the new token. If negative, subtracts from token.length
262
+ * @param startOffset the offset to start the new token. If negative, subtracts from token.length
263
+ * @param length the length of the text to keep. If negative, subtracts from token.length
264
+ */
265
+ createPartialToken(token, startOffset, length) {
266
+ if (startOffset < 0) {
267
+ startOffset = token.image.length + startOffset;
268
+ }
269
+ if (length === undefined) {
270
+ length = token.image.length - startOffset;
271
+ }
272
+ if (length < 0) {
273
+ length = token.image.length + length;
274
+ }
263
275
  return {
264
- key: mapToken(key),
265
- openQuote: openQuote,
266
- value: mapToken(value, true),
267
- closeQuote: closeQuote,
268
- range: rangeFromTokens(key, value)
276
+ text: token.image.substring(startOffset, startOffset + length),
277
+ //xmltools startLine is 1-based, we need 0-based which is why we subtract 1 below
278
+ range: util_1.default.createRange(token.startLine - 1, token.startColumn - 1 + startOffset, token.endLine - 1, token.startColumn - 1 + (startOffset + length))
269
279
  };
270
- })) || [];
271
- }
272
- //make range from `start` to `end` tokens
273
- function rangeFromTokens(start, end) {
274
- if (!end) {
275
- end = start;
276
280
  }
277
- return util_1.default.createRange(start.startLine - 1, start.startColumn - 1, end.endLine - 1, end.endColumn);
278
- }
279
- //make range not including quotes
280
- function rangeFromTokenValue(token) {
281
- if (!token) {
282
- return undefined;
281
+ /**
282
+ * Create a range based on the xmltools token
283
+ */
284
+ rangeFromToken(token) {
285
+ return util_1.default.createRange(token.startLine - 1, token.startColumn - 1, token.endLine - 1, token.endColumn);
283
286
  }
284
- return util_1.default.createRange(token.startLine - 1, token.startColumn, token.endLine - 1, token.endColumn - 1);
285
- }
286
- exports.rangeFromTokenValue = rangeFromTokenValue;
287
- function stripQuotes(value) {
288
- if ((value === null || value === void 0 ? void 0 : value.length) > 1) {
289
- return value.substr(1, value.length - 2);
287
+ emptySGReferences() {
288
+ return {
289
+ scriptTagImports: []
290
+ };
290
291
  }
291
- return '';
292
- }
293
- function emptySGReferences() {
294
- return {
295
- scriptTagImports: []
296
- };
297
292
  }
293
+ exports.default = SGParser;
298
294
  //# sourceMappingURL=SGParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SGParser.js","sourceRoot":"","sources":["../../src/parser/SGParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SGParser.js","sourceRoot":"","sources":["../../src/parser/SGParser.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ const testHelpers_spec_2 = require("../testHelpers.spec");
11
11
  let sinon = (0, sinon_1.createSandbox)();
12
12
  describe('SGParser', () => {
13
13
  let program;
14
+ const testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, testHelpers_spec_2.rootDir]);
14
15
  beforeEach(() => {
15
16
  program = new Program_1.Program({ rootDir: testHelpers_spec_2.rootDir, sourceMap: false });
16
17
  });
@@ -19,7 +20,11 @@ describe('SGParser', () => {
19
20
  program.dispose();
20
21
  });
21
22
  it('Parses well formed SG component', () => {
22
- const file = program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
23
+ program.setFile('components/Component1.brs', `
24
+ sub load()
25
+ end sub
26
+ `);
27
+ const { file } = testTranspile((0, testHelpers_spec_1.trim) `
23
28
  <?xml version="1.0" encoding="utf-8" ?>
24
29
  <component name="ParentScene" extends="GrandparentScene">
25
30
  <interface>
@@ -41,14 +46,8 @@ describe('SGParser', () => {
41
46
  font="font:MediumBoldSystemFont"
42
47
  />
43
48
  </children>
44
- </component>`);
45
- const { ast } = file.parser;
46
- (0, chai_config_spec_1.expect)(ast.prolog).to.exist;
47
- (0, chai_config_spec_1.expect)(ast.component).to.exist;
48
- (0, chai_config_spec_1.expect)(ast.root).to.equal(ast.component);
49
- (0, testHelpers_spec_1.expectZeroDiagnostics)(file);
50
- const output = file.transpile();
51
- (0, chai_config_spec_1.expect)(output.code.trimEnd()).to.equal((0, testHelpers_spec_1.trim) `
49
+ </component>
50
+ `, (0, testHelpers_spec_1.trim) `
52
51
  <?xml version="1.0" encoding="utf-8" ?>
53
52
  <component name="ParentScene" extends="GrandparentScene">
54
53
  <interface>
@@ -66,7 +65,11 @@ describe('SGParser', () => {
66
65
  <Label id="loadingIndicator" text="Loading..." font="font:MediumBoldSystemFont" />
67
66
  </children>
68
67
  </component>
69
- `);
68
+ `, undefined, 'components/file.xml');
69
+ const { ast } = file.parser;
70
+ (0, chai_config_spec_1.expect)(ast.prologElement).to.exist;
71
+ (0, chai_config_spec_1.expect)(ast.componentElement).to.exist;
72
+ (0, chai_config_spec_1.expect)(ast.rootElement).to.equal(ast.componentElement);
70
73
  });
71
74
  it('does not crash when missing tag name', () => {
72
75
  const parser = new SGParser_1.default();
@@ -1 +1 @@
1
- {"version":3,"file":"SGParser.spec.js","sourceRoot":"","sources":["../../src/parser/SGParser.spec.ts"],"names":[],"mappings":";;AAAA,0DAA6C;AAC7C,iEAA8C;AAC9C,8DAA2D;AAC3D,0DAAkE;AAClE,yCAAkC;AAClC,iCAAsC;AACtC,wCAAqC;AAErC,0DAA8C;AAE9C,IAAI,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAC5B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IAEtB,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,0BAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAU,qBAAqB,EAAE,IAAA,uBAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;yBAsBhD,CAChB,CAAC;QACF,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAA,yBAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,IAAA,yBAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/B,IAAA,yBAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAA,wCAAqB,EAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAA,yBAAM,EACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CACxB,CAAC,EAAE,CAAC,KAAK,CAAC,IAAA,uBAAI,EAAA;;;;;;;;;;;;;;;;;;SAkBd,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CACR,iCAAiC,EAAE,IAAA,uBAAI,EAAA;;;;;;SAM1C,CAAC,CAAC;QACH,kEAAkE;IACtE,CAAC,CAAC,CAAC;IAGH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CACR,iCAAiC,EAAE,IAAA,uBAAI,EAAA;;;;;;;;SAQ1C,CAAC,CAAC;QACH,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,iCACtC,uCAAkB,CAAC,gBAAgB,CAAC,YAAY,CAAC,KACpD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAClC,CAAC;QACH,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,iCACtC,uCAAkB,CAAC,gBAAgB,CAAC,eAAe,CAAC,KACvD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAClC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CACR,iCAAiC,EAAE,IAAA,uBAAI,EAAA;;;;;;;;;;;;SAY1C,CAAC,CAAC;QACH,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,iCACtC,uCAAkB,CAAC,qBAAqB,CAAC,OAAO,CAAC,KACpD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAClC,CAAC;QACH,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,iCACtC,uCAAkB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KACrD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAClC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,iBAAiB,CAAA;;;;yBAIjD,CAChB,CAAC;QACF,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1C,IAAI,EAAE,uCAAkB,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI;YACtD,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,IAAA,yBAAM,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,iCACtC,uCAAkB,CAAC,oBAAoB,CAAC,sDAAsD,CAAC,KAClG,KAAK,EAAE,6BAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAClC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SGParser.spec.js","sourceRoot":"","sources":["../../src/parser/SGParser.spec.ts"],"names":[],"mappings":"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"}