@rgrove/parse-xml 4.1.0 → 4.2.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.
- package/README.md +32 -32
- package/dist/browser.js +217 -237
- package/dist/browser.js.map +3 -3
- package/dist/global.min.js +9 -9
- package/dist/global.min.js.map +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/Parser.d.ts +10 -1
- package/dist/lib/Parser.d.ts.map +1 -1
- package/dist/lib/Parser.js +58 -42
- package/dist/lib/Parser.js.map +1 -1
- package/dist/lib/StringScanner.d.ts +10 -16
- package/dist/lib/StringScanner.d.ts.map +1 -1
- package/dist/lib/StringScanner.js +54 -77
- package/dist/lib/StringScanner.js.map +1 -1
- package/dist/lib/XmlDeclaration.js.map +1 -1
- package/dist/lib/XmlDocument.js.map +1 -1
- package/dist/lib/XmlDocumentType.js.map +1 -1
- package/dist/lib/XmlElement.js.map +1 -1
- package/dist/lib/XmlError.js.map +1 -1
- package/dist/lib/XmlNode.js.map +1 -1
- package/dist/lib/syntax.d.ts.map +1 -1
- package/dist/lib/syntax.js +17 -22
- package/dist/lib/syntax.js.map +1 -1
- package/package.json +14 -19
- package/src/lib/Parser.ts +62 -45
- package/src/lib/StringScanner.ts +56 -93
- package/src/lib/syntax.ts +11 -17
package/dist/lib/Parser.js
CHANGED
|
@@ -49,22 +49,14 @@ class Parser {
|
|
|
49
49
|
*/
|
|
50
50
|
constructor(xml, options = {}) {
|
|
51
51
|
let doc = this.document = new XmlDocument_js_1.XmlDocument();
|
|
52
|
-
let scanner = this.scanner = new StringScanner_js_1.StringScanner(xml);
|
|
53
52
|
this.currentNode = doc;
|
|
54
53
|
this.options = options;
|
|
54
|
+
this.scanner = new StringScanner_js_1.StringScanner(xml);
|
|
55
55
|
if (this.options.includeOffsets) {
|
|
56
56
|
doc.start = 0;
|
|
57
57
|
doc.end = xml.length;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
this.consumeProlog();
|
|
61
|
-
if (!this.consumeElement()) {
|
|
62
|
-
throw this.error('Root element is missing or invalid');
|
|
63
|
-
}
|
|
64
|
-
while (this.consumeMisc()) { } // eslint-disable-line no-empty
|
|
65
|
-
if (!scanner.isEnd) {
|
|
66
|
-
throw this.error('Extra content at the end of the document');
|
|
67
|
-
}
|
|
59
|
+
this.parse();
|
|
68
60
|
}
|
|
69
61
|
/**
|
|
70
62
|
* Adds the given `XmlNode` as a child of `this.currentNode`.
|
|
@@ -84,11 +76,18 @@ class Parser {
|
|
|
84
76
|
/**
|
|
85
77
|
* Adds the given _text_ to the document, either by appending it to a
|
|
86
78
|
* preceding `XmlText` node (if possible) or by creating a new `XmlText` node.
|
|
79
|
+
*
|
|
80
|
+
* When _normalize_ is `true` (the default), line breaks in _text_ are
|
|
81
|
+
* normalized per section 2.11 of the XML spec. This must be `false` for text
|
|
82
|
+
* that comes from a character or entity reference, since references aren't
|
|
83
|
+
* subject to line break normalization.
|
|
87
84
|
*/
|
|
88
|
-
addText(text, charIndex) {
|
|
85
|
+
addText(text, charIndex, normalize = true) {
|
|
89
86
|
let { children } = this.currentNode;
|
|
90
87
|
let { length } = children;
|
|
91
|
-
|
|
88
|
+
if (normalize) {
|
|
89
|
+
text = normalizeLineBreaks(text);
|
|
90
|
+
}
|
|
92
91
|
if (length > 0) {
|
|
93
92
|
let prevNode = children[length - 1];
|
|
94
93
|
if (prevNode?.type === XmlNode_js_1.XmlNode.TYPE_TEXT) {
|
|
@@ -165,7 +164,7 @@ class Parser {
|
|
|
165
164
|
? syntax.attValueCharDoubleQuote
|
|
166
165
|
: syntax.attValueCharSingleQuote;
|
|
167
166
|
matchLoop: while (!scanner.isEnd) {
|
|
168
|
-
chars = scanner.
|
|
167
|
+
chars = scanner.consumeUntilMatch(regex);
|
|
169
168
|
if (chars) {
|
|
170
169
|
this.validateChars(chars);
|
|
171
170
|
value += chars.replace(syntax.attValueNormalizedWhitespace, ' ');
|
|
@@ -179,7 +178,7 @@ class Parser {
|
|
|
179
178
|
continue;
|
|
180
179
|
case '<':
|
|
181
180
|
throw this.error('Unescaped `<` is not allowed in an attribute value');
|
|
182
|
-
|
|
181
|
+
default:
|
|
183
182
|
break matchLoop;
|
|
184
183
|
}
|
|
185
184
|
}
|
|
@@ -198,12 +197,12 @@ class Parser {
|
|
|
198
197
|
consumeCdataSection() {
|
|
199
198
|
let { scanner } = this;
|
|
200
199
|
let startIndex = scanner.charIndex;
|
|
201
|
-
if (!scanner.
|
|
200
|
+
if (!scanner.consumeString('<![CDATA[')) {
|
|
202
201
|
return false;
|
|
203
202
|
}
|
|
204
203
|
let text = scanner.consumeUntilString(']]>');
|
|
205
204
|
this.validateChars(text);
|
|
206
|
-
if (!scanner.
|
|
205
|
+
if (!scanner.consumeString(']]>')) {
|
|
207
206
|
throw this.error('Unclosed CDATA section');
|
|
208
207
|
}
|
|
209
208
|
return this.options.preserveCdata
|
|
@@ -238,12 +237,12 @@ class Parser {
|
|
|
238
237
|
consumeComment() {
|
|
239
238
|
let { scanner } = this;
|
|
240
239
|
let startIndex = scanner.charIndex;
|
|
241
|
-
if (!scanner.
|
|
240
|
+
if (!scanner.consumeString('<!--')) {
|
|
242
241
|
return false;
|
|
243
242
|
}
|
|
244
243
|
let content = scanner.consumeUntilString('--');
|
|
245
244
|
this.validateChars(content);
|
|
246
|
-
if (!scanner.
|
|
245
|
+
if (!scanner.consumeString('-->')) {
|
|
247
246
|
if (scanner.peek(2) === '--') {
|
|
248
247
|
throw this.error("The string `--` isn't allowed inside a comment");
|
|
249
248
|
}
|
|
@@ -266,7 +265,7 @@ class Parser {
|
|
|
266
265
|
let startIndex = this.scanner.charIndex;
|
|
267
266
|
let ref = this.consumeReference();
|
|
268
267
|
return ref
|
|
269
|
-
? this.addText(ref, startIndex)
|
|
268
|
+
? this.addText(ref, startIndex, false)
|
|
270
269
|
: false;
|
|
271
270
|
}
|
|
272
271
|
/**
|
|
@@ -281,7 +280,7 @@ class Parser {
|
|
|
281
280
|
consumeDoctypeDeclaration() {
|
|
282
281
|
let { scanner } = this;
|
|
283
282
|
let startIndex = scanner.charIndex;
|
|
284
|
-
if (!scanner.
|
|
283
|
+
if (!scanner.consumeString('<!DOCTYPE')) {
|
|
285
284
|
return false;
|
|
286
285
|
}
|
|
287
286
|
let name = this.consumeWhitespace()
|
|
@@ -292,7 +291,7 @@ class Parser {
|
|
|
292
291
|
let publicId;
|
|
293
292
|
let systemId;
|
|
294
293
|
if (this.consumeWhitespace()) {
|
|
295
|
-
if (scanner.
|
|
294
|
+
if (scanner.consumeString('PUBLIC')) {
|
|
296
295
|
publicId = this.consumeWhitespace()
|
|
297
296
|
&& this.consumePubidLiteral();
|
|
298
297
|
if (publicId === false) {
|
|
@@ -300,7 +299,7 @@ class Parser {
|
|
|
300
299
|
}
|
|
301
300
|
this.consumeWhitespace();
|
|
302
301
|
}
|
|
303
|
-
if (publicId !== undefined || scanner.
|
|
302
|
+
if (publicId !== undefined || scanner.consumeString('SYSTEM')) {
|
|
304
303
|
this.consumeWhitespace();
|
|
305
304
|
systemId = this.consumeSystemLiteral();
|
|
306
305
|
if (systemId === false) {
|
|
@@ -310,16 +309,16 @@ class Parser {
|
|
|
310
309
|
}
|
|
311
310
|
}
|
|
312
311
|
let internalSubset;
|
|
313
|
-
if (scanner.
|
|
312
|
+
if (scanner.consumeString('[')) {
|
|
314
313
|
// The internal subset may contain comments that contain `]` characters,
|
|
315
314
|
// so we can't use `consumeUntilString()` here.
|
|
316
315
|
internalSubset = scanner.consumeUntilMatch(/\][\x20\t\r\n]*>/);
|
|
317
|
-
if (!scanner.
|
|
316
|
+
if (!scanner.consumeString(']')) {
|
|
318
317
|
throw this.error('Unclosed internal subset');
|
|
319
318
|
}
|
|
320
319
|
this.consumeWhitespace();
|
|
321
320
|
}
|
|
322
|
-
if (!scanner.
|
|
321
|
+
if (!scanner.consumeString('>')) {
|
|
323
322
|
throw this.error('Unclosed doctype declaration');
|
|
324
323
|
}
|
|
325
324
|
return this.options.preserveDocumentType
|
|
@@ -335,7 +334,7 @@ class Parser {
|
|
|
335
334
|
consumeElement() {
|
|
336
335
|
let { scanner } = this;
|
|
337
336
|
let startIndex = scanner.charIndex;
|
|
338
|
-
if (!scanner.
|
|
337
|
+
if (!scanner.consumeString('<')) {
|
|
339
338
|
return false;
|
|
340
339
|
}
|
|
341
340
|
let name = this.consumeName();
|
|
@@ -344,11 +343,11 @@ class Parser {
|
|
|
344
343
|
return false;
|
|
345
344
|
}
|
|
346
345
|
let attributes = this.consumeAttributes();
|
|
347
|
-
let isEmpty = !!scanner.
|
|
346
|
+
let isEmpty = !!scanner.consumeString('/>');
|
|
348
347
|
let element = new XmlElement_js_1.XmlElement(name, attributes);
|
|
349
348
|
element.parent = this.currentNode;
|
|
350
349
|
if (!isEmpty) {
|
|
351
|
-
if (!scanner.
|
|
350
|
+
if (!scanner.consumeString('>')) {
|
|
352
351
|
throw this.error(`Unclosed start tag for element \`${name}\``);
|
|
353
352
|
}
|
|
354
353
|
this.currentNode = element;
|
|
@@ -361,14 +360,14 @@ class Parser {
|
|
|
361
360
|
|| this.consumeComment());
|
|
362
361
|
let endTagMark = scanner.charIndex;
|
|
363
362
|
let endTagName;
|
|
364
|
-
if (!scanner.
|
|
363
|
+
if (!scanner.consumeString('</')
|
|
365
364
|
|| !(endTagName = this.consumeName())
|
|
366
365
|
|| endTagName !== name) {
|
|
367
366
|
scanner.reset(endTagMark);
|
|
368
367
|
throw this.error(`Missing end tag for element ${name}`);
|
|
369
368
|
}
|
|
370
369
|
this.consumeWhitespace();
|
|
371
|
-
if (!scanner.
|
|
370
|
+
if (!scanner.consumeString('>')) {
|
|
372
371
|
throw this.error(`Unclosed end tag for element ${name}`);
|
|
373
372
|
}
|
|
374
373
|
this.currentNode = element.parent;
|
|
@@ -383,7 +382,7 @@ class Parser {
|
|
|
383
382
|
*/
|
|
384
383
|
consumeEqual() {
|
|
385
384
|
this.consumeWhitespace();
|
|
386
|
-
if (this.scanner.
|
|
385
|
+
if (this.scanner.consumeString('=')) {
|
|
387
386
|
this.consumeWhitespace();
|
|
388
387
|
return true;
|
|
389
388
|
}
|
|
@@ -420,7 +419,7 @@ class Parser {
|
|
|
420
419
|
consumeProcessingInstruction() {
|
|
421
420
|
let { scanner } = this;
|
|
422
421
|
let startIndex = scanner.charIndex;
|
|
423
|
-
if (!scanner.
|
|
422
|
+
if (!scanner.consumeString('<?')) {
|
|
424
423
|
return false;
|
|
425
424
|
}
|
|
426
425
|
let name = this.consumeName();
|
|
@@ -434,14 +433,14 @@ class Parser {
|
|
|
434
433
|
throw this.error('Invalid processing instruction');
|
|
435
434
|
}
|
|
436
435
|
if (!this.consumeWhitespace()) {
|
|
437
|
-
if (scanner.
|
|
436
|
+
if (scanner.consumeString('?>')) {
|
|
438
437
|
return this.addNode(new XmlProcessingInstruction_js_1.XmlProcessingInstruction(name), startIndex);
|
|
439
438
|
}
|
|
440
439
|
throw this.error('Whitespace is required after a processing instruction name');
|
|
441
440
|
}
|
|
442
441
|
let content = scanner.consumeUntilString('?>');
|
|
443
442
|
this.validateChars(content);
|
|
444
|
-
if (!scanner.
|
|
443
|
+
if (!scanner.consumeString('?>')) {
|
|
445
444
|
throw this.error('Unterminated processing instruction');
|
|
446
445
|
}
|
|
447
446
|
return this.addNode(new XmlProcessingInstruction_js_1.XmlProcessingInstruction(name, normalizeLineBreaks(content)), startIndex);
|
|
@@ -495,7 +494,7 @@ class Parser {
|
|
|
495
494
|
*/
|
|
496
495
|
consumeReference() {
|
|
497
496
|
let { scanner } = this;
|
|
498
|
-
if (!scanner.
|
|
497
|
+
if (!scanner.consumeString('&')) {
|
|
499
498
|
return false;
|
|
500
499
|
}
|
|
501
500
|
let ref = scanner.consumeMatchFn(syntax.isReferenceChar);
|
|
@@ -556,13 +555,13 @@ class Parser {
|
|
|
556
555
|
*/
|
|
557
556
|
consumeSystemLiteral() {
|
|
558
557
|
let { scanner } = this;
|
|
559
|
-
let quote = scanner.
|
|
558
|
+
let quote = scanner.consumeString('"') || scanner.consumeString("'");
|
|
560
559
|
if (!quote) {
|
|
561
560
|
return false;
|
|
562
561
|
}
|
|
563
562
|
let value = scanner.consumeUntilString(quote);
|
|
564
563
|
this.validateChars(value);
|
|
565
|
-
if (!scanner.
|
|
564
|
+
if (!scanner.consumeString(quote)) {
|
|
566
565
|
throw this.error('Missing end quote');
|
|
567
566
|
}
|
|
568
567
|
return value;
|
|
@@ -585,13 +584,13 @@ class Parser {
|
|
|
585
584
|
consumeXmlDeclaration() {
|
|
586
585
|
let { scanner } = this;
|
|
587
586
|
let startIndex = scanner.charIndex;
|
|
588
|
-
if (!scanner.
|
|
587
|
+
if (!scanner.consumeString('<?xml')) {
|
|
589
588
|
return false;
|
|
590
589
|
}
|
|
591
590
|
if (!this.consumeWhitespace()) {
|
|
592
591
|
throw this.error('Invalid XML declaration');
|
|
593
592
|
}
|
|
594
|
-
let version = !!scanner.
|
|
593
|
+
let version = !!scanner.consumeString('version')
|
|
595
594
|
&& this.consumeEqual()
|
|
596
595
|
&& this.consumeSystemLiteral();
|
|
597
596
|
if (version === false) {
|
|
@@ -603,13 +602,16 @@ class Parser {
|
|
|
603
602
|
let encoding;
|
|
604
603
|
let standalone;
|
|
605
604
|
if (this.consumeWhitespace()) {
|
|
606
|
-
encoding = !!scanner.
|
|
605
|
+
encoding = !!scanner.consumeString('encoding')
|
|
607
606
|
&& this.consumeEqual()
|
|
608
607
|
&& this.consumeSystemLiteral();
|
|
609
608
|
if (encoding) {
|
|
609
|
+
if (!/^[A-Za-z][\w.-]*$/.test(encoding)) {
|
|
610
|
+
throw this.error('Invalid character in encoding name');
|
|
611
|
+
}
|
|
610
612
|
this.consumeWhitespace();
|
|
611
613
|
}
|
|
612
|
-
standalone = !!scanner.
|
|
614
|
+
standalone = !!scanner.consumeString('standalone')
|
|
613
615
|
&& this.consumeEqual()
|
|
614
616
|
&& this.consumeSystemLiteral();
|
|
615
617
|
if (standalone) {
|
|
@@ -619,7 +621,7 @@ class Parser {
|
|
|
619
621
|
this.consumeWhitespace();
|
|
620
622
|
}
|
|
621
623
|
}
|
|
622
|
-
if (!scanner.
|
|
624
|
+
if (!scanner.consumeString('?>')) {
|
|
623
625
|
throw this.error('Invalid or unclosed XML declaration');
|
|
624
626
|
}
|
|
625
627
|
return this.options.preserveXmlDeclaration
|
|
@@ -633,6 +635,20 @@ class Parser {
|
|
|
633
635
|
let { scanner } = this;
|
|
634
636
|
return new XmlError_js_1.XmlError(message, scanner.charIndex, scanner.string);
|
|
635
637
|
}
|
|
638
|
+
/**
|
|
639
|
+
* Parses the XML input.
|
|
640
|
+
*/
|
|
641
|
+
parse() {
|
|
642
|
+
this.scanner.consumeString('\uFEFF'); // byte order mark
|
|
643
|
+
this.consumeProlog();
|
|
644
|
+
if (!this.consumeElement()) {
|
|
645
|
+
throw this.error('Root element is missing or invalid');
|
|
646
|
+
}
|
|
647
|
+
while (this.consumeMisc()) { } // eslint-disable-line no-empty
|
|
648
|
+
if (!this.scanner.isEnd) {
|
|
649
|
+
throw this.error('Extra content at the end of the document');
|
|
650
|
+
}
|
|
651
|
+
}
|
|
636
652
|
/**
|
|
637
653
|
* Throws an invalid character error if any character in the given _string_
|
|
638
654
|
* isn't a valid XML character.
|
package/dist/lib/Parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/lib/Parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/lib/Parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAmD;AACnD,oDAAsC;AACtC,+CAAyC;AACzC,mDAA6C;AAC7C,2DAAqD;AACrD,qDAA+C;AAC/C,6DAAuD;AACvD,mDAA6C;AAC7C,+CAAyC;AACzC,6CAAuC;AACvC,+EAAyE;AACzE,6CAAuC;AAEvC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;GAIG;AACH,MAAa,MAAM;IAOjB;;;OAGG;IACH,YAAY,GAAW,EAAE,UAAyB,EAAE;QAClD,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAW,EAAE,CAAC;QAE5C,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,gCAAa,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAa,EAAE,SAAiB;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAE/B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACjD,CAAC;QAED,4EAA4E;QAC5E,uEAAuE;QACvE,SAAS;QACT,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAY,EAAE,SAAiB,EAAE,SAAS,GAAG,IAAI;QACvD,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAE1B,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEpC,IAAI,QAAQ,EAAE,IAAI,KAAK,oBAAO,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,QAAQ,GAAG,QAAmB,CAAC;gBAEnC,qEAAqE;gBACrE,yBAAyB;gBACzB,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC;gBAEtB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBAChC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACrD,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,oBAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM;YACR,CAAC;YAED,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAEpE,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,QAAQ,KAAK,WAAW;mBACrB,SAAS,KAAK,SAAS;mBACvB,SAAS,KAAK,UAAU,EAAE,CAAC;gBAEhC,MAAM,IAAI,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACzF,CAAC;YAED,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC1C,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAW,CAAC;gBACtC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;YAED,UAAU,GAAG,gBAAgB,CAAC;QAChC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;OASG;IACH,qBAAqB;QACnB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE3B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC;QAElB,IAAI,KAAK,CAAC;QACV,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,GAAG,WAAW,CAAC;QACxB,IAAI,KAAK,GAAG,KAAK,KAAK,GAAG;YACvB,CAAC,CAAC,MAAM,CAAC,uBAAuB;YAChC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC;QAEnC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1B,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;YAED,QAAQ,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvB,KAAK,KAAK;oBACR,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,SAAS,CAAC;gBAElB,KAAK,GAAG;oBACN,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACjC,SAAS;gBAEX,KAAK,GAAG;oBACN,MAAM,IAAI,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBAEzE;oBACE,MAAM,SAAS,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,mBAAmB;QACjB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;YAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,sBAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE7D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,0BAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC;YACxE,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED;;;;;;;;OAQG;IACH,uBAAuB;QACrB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAElC,OAAO,GAAG;YACR,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC;YACtC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAED;;;;;;;;OAQG;IACH,yBAAyB;QACvB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE;eAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,QAAQ,CAAC;QACb,IAAI,QAAQ,CAAC;QAEb,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;uBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAEhC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACnD,CAAC;gBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAEvC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACnD,CAAC;gBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC;QAEnB,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,wEAAwE;YACxE,+CAA+C;YAC/C,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YAE/D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB;YACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,oCAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC;YACzF,CAAC,CAAC,IAAI,CAAC;IACT,CAAC;IAEH;;;;;OAKG;IACH,cAAc;QACZ,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,IAAI,0BAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE/C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,KAAK,CAAC,oCAAoC,IAAI,IAAI,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAE3B,GAAG,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,QACC,IAAI,CAAC,cAAc,EAAE;mBAChB,IAAI,CAAC,uBAAuB,EAAE;mBAC9B,IAAI,CAAC,mBAAmB,EAAE;mBAC1B,IAAI,CAAC,4BAA4B,EAAE;mBACnC,IAAI,CAAC,cAAc,EAAE,EAC1B;YAEF,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;YACnC,IAAI,UAAU,CAAC;YAEf,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;mBACzB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;mBAClC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAE3B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACV,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,cAAc,EAAE;eACvB,IAAI,CAAC,4BAA4B,EAAE;eACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,WAAW;QACT,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;YAChD,CAAC,CAAC,WAAW,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,4BAA4B;QAC1B,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE9B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,sDAAwB,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,sDAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpG,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,+BAA+B;QAE7D,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,+BAA+B;QAC/D,CAAC;QAED,OAAO,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB;QACjB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACxC,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAExC,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACH,gBAAgB;QACd,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEzD,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,WAAW,CAAC;QAEhB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,iCAAiC;YACjC,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;gBAC5B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB;gBAC9C,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB;YAErD,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC3E,CAAC;YAED,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE7C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,EACF,uBAAuB,EACvB,sBAAsB,GACvB,GAAG,IAAI,CAAC,OAAO,CAAC;gBAEjB,IAAI,UAAU,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,6BAA6B;gBAE1D,IAAI,sBAAsB,EAAE,CAAC;oBAC3B,IAAI,aAAa,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;oBAEvD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;wBAC1D,IAAI,IAAI,GAAG,OAAO,aAAa,CAAC;wBAEhC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACtB,MAAM,IAAI,SAAS,CAAC,+GAA+G,IAAI,EAAE,CAAC,CAAC;wBAC7I,CAAC;wBAED,OAAO,aAAa,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAED,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,OAAO,UAAU,CAAC;gBACpB,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,oBAAoB;QAClB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAErE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,iBAAiB;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,qBAAqB;QACnB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;eAC3C,IAAI,CAAC,YAAY,EAAE;eACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEjC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,QAAQ,CAAC;QACb,IAAI,UAAU,CAAC;QAEf,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;mBACzC,IAAI,CAAC,YAAY,EAAE;mBACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAEjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACzD,CAAC;gBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;YAED,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC;mBAC7C,IAAI,CAAC,YAAY,EAAE;mBACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAEjC,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBAChD,MAAM,IAAI,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBAClF,CAAC;gBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB;YACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,kCAAc,CAC7B,OAAO,EACP,QAAQ,IAAI,SAAS,EACpB,UAAmC,IAAI,SAAS,CAClD,EAAE,UAAU,CAAC;YAChB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe;QACnB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,sBAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB;QACxD,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,+BAA+B;QAE7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,MAAc;QAC1B,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAChC,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAW,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,MAAM,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;gBACf,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA1xBD,wBA0xBC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;YACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -32,21 +32,21 @@ export declare class StringScanner {
|
|
|
32
32
|
*
|
|
33
33
|
* If no characters could be consumed, an empty string will be returned.
|
|
34
34
|
*/
|
|
35
|
-
consume(
|
|
35
|
+
consume(charCount?: number): string;
|
|
36
36
|
/**
|
|
37
|
-
* Consumes
|
|
38
|
-
*
|
|
37
|
+
* Consumes and returns the given number of bytes if possible, advancing the
|
|
38
|
+
* scanner and stopping if the end of the string is reached.
|
|
39
39
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
40
|
+
* It's up to the caller to ensure that the given byte count doesn't split a
|
|
41
|
+
* multibyte character.
|
|
42
42
|
*
|
|
43
|
-
*
|
|
43
|
+
* If no bytes could be consumed, an empty string will be returned.
|
|
44
44
|
*/
|
|
45
|
-
|
|
45
|
+
consumeBytes(byteCount: number): string;
|
|
46
46
|
/**
|
|
47
|
-
* Consumes and returns all characters for which the given function returns
|
|
48
|
-
*
|
|
49
|
-
*
|
|
47
|
+
* Consumes and returns all characters for which the given function returns
|
|
48
|
+
* `true`, stopping when `false` is returned or the end of the input is
|
|
49
|
+
* reached.
|
|
50
50
|
*/
|
|
51
51
|
consumeMatchFn(fn: (char: string) => boolean): string;
|
|
52
52
|
/**
|
|
@@ -57,12 +57,6 @@ export declare class StringScanner {
|
|
|
57
57
|
* string will be returned and the scanner will not be advanced.
|
|
58
58
|
*/
|
|
59
59
|
consumeString(stringToConsume: string): string;
|
|
60
|
-
/**
|
|
61
|
-
* Does the same thing as `consumeString()`, but doesn't support consuming
|
|
62
|
-
* multibyte characters. This can be faster if you only need to match single
|
|
63
|
-
* byte characters.
|
|
64
|
-
*/
|
|
65
|
-
consumeStringFast(stringToConsume: string): string;
|
|
66
60
|
/**
|
|
67
61
|
* Consumes characters until the given global regex is matched, advancing the
|
|
68
62
|
* scanner up to (but not beyond) the beginning of the match. If the regex
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringScanner.d.ts","sourceRoot":"","sources":["../../src/lib/StringScanner.ts"],"names":[],"mappings":"AAGA,eAAe;AACf,qBAAa,aAAa;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,MAAM,EAAE,MAAM;IAsB1B;;OAEG;IACH,IAAI,KAAK,YAER;IAID;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,UAAqB,GAAG,MAAM;IAWhF;;;OAGG;IACH,OAAO,CAAC,KAAK,SAAI;IAIjB;;;OAGG;IACH,oBAAoB,CAAC,SAAS,GAAE,MAAuB,GAAG,MAAM;IAMhE;;;;;OAKG;IACH,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"StringScanner.d.ts","sourceRoot":"","sources":["../../src/lib/StringScanner.ts"],"names":[],"mappings":"AAGA,eAAe;AACf,qBAAa,aAAa;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,MAAM,EAAE,MAAM;IAsB1B;;OAEG;IACH,IAAI,KAAK,YAER;IAID;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,UAAqB,GAAG,MAAM;IAWhF;;;OAGG;IACH,OAAO,CAAC,KAAK,SAAI;IAIjB;;;OAGG;IACH,oBAAoB,CAAC,SAAS,GAAE,MAAuB,GAAG,MAAM;IAMhE;;;;;OAKG;IACH,OAAO,CAAC,SAAS,SAAI,GAAG,MAAM;IAM9B;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOvC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM;IA6BrD;;;;;;OAMG;IACH,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAY9C;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAUxC;;;;;;OAMG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAShD;;;;OAIG;IACH,IAAI,CAAC,KAAK,SAAI,GAAG,MAAM;IAQvB;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,SAAI;CAKhB"}
|
|
@@ -65,46 +65,54 @@ class StringScanner {
|
|
|
65
65
|
*
|
|
66
66
|
* If no characters could be consumed, an empty string will be returned.
|
|
67
67
|
*/
|
|
68
|
-
consume(
|
|
69
|
-
let chars = this.peek(
|
|
70
|
-
this.advance(
|
|
68
|
+
consume(charCount = 1) {
|
|
69
|
+
let chars = this.peek(charCount);
|
|
70
|
+
this.advance(charCount);
|
|
71
71
|
return chars;
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
|
-
* Consumes
|
|
75
|
-
*
|
|
74
|
+
* Consumes and returns the given number of bytes if possible, advancing the
|
|
75
|
+
* scanner and stopping if the end of the string is reached.
|
|
76
76
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
77
|
+
* It's up to the caller to ensure that the given byte count doesn't split a
|
|
78
|
+
* multibyte character.
|
|
79
79
|
*
|
|
80
|
-
*
|
|
80
|
+
* If no bytes could be consumed, an empty string will be returned.
|
|
81
81
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
let result = regex.exec(this.string);
|
|
88
|
-
if (result === null || result.length === 0) {
|
|
89
|
-
return emptyString;
|
|
90
|
-
}
|
|
91
|
-
let match = result[0];
|
|
92
|
-
this.advance(this.charLength(match));
|
|
93
|
-
return match;
|
|
82
|
+
consumeBytes(byteCount) {
|
|
83
|
+
let byteIndex = this.charIndexToByteIndex();
|
|
84
|
+
let result = this.string.slice(byteIndex, byteIndex + byteCount);
|
|
85
|
+
this.advance(this.charLength(result));
|
|
86
|
+
return result;
|
|
94
87
|
}
|
|
95
88
|
/**
|
|
96
|
-
* Consumes and returns all characters for which the given function returns
|
|
97
|
-
*
|
|
98
|
-
*
|
|
89
|
+
* Consumes and returns all characters for which the given function returns
|
|
90
|
+
* `true`, stopping when `false` is returned or the end of the input is
|
|
91
|
+
* reached.
|
|
99
92
|
*/
|
|
100
93
|
consumeMatchFn(fn) {
|
|
101
|
-
let
|
|
102
|
-
let
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
94
|
+
let { length, multiByteMode, string } = this;
|
|
95
|
+
let startByteIndex = this.charIndexToByteIndex();
|
|
96
|
+
let endByteIndex = startByteIndex;
|
|
97
|
+
if (multiByteMode) {
|
|
98
|
+
while (endByteIndex < length) {
|
|
99
|
+
let char = string[endByteIndex];
|
|
100
|
+
let isSurrogatePair = char >= '\uD800' && char <= '\uDBFF';
|
|
101
|
+
if (isSurrogatePair) {
|
|
102
|
+
char += string[endByteIndex + 1];
|
|
103
|
+
}
|
|
104
|
+
if (!fn(char)) {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
endByteIndex += isSurrogatePair ? 2 : 1;
|
|
108
|
+
}
|
|
106
109
|
}
|
|
107
|
-
|
|
110
|
+
else {
|
|
111
|
+
while (endByteIndex < length && fn(string[endByteIndex])) {
|
|
112
|
+
++endByteIndex;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return this.consumeBytes(endByteIndex - startByteIndex);
|
|
108
116
|
}
|
|
109
117
|
/**
|
|
110
118
|
* Consumes the given string if it exists at the current character index, and
|
|
@@ -114,29 +122,10 @@ class StringScanner {
|
|
|
114
122
|
* string will be returned and the scanner will not be advanced.
|
|
115
123
|
*/
|
|
116
124
|
consumeString(stringToConsume) {
|
|
117
|
-
if (this.consumeStringFast(stringToConsume)) {
|
|
118
|
-
return stringToConsume;
|
|
119
|
-
}
|
|
120
|
-
if (this.multiByteMode) {
|
|
121
|
-
let { length } = stringToConsume;
|
|
122
|
-
let charLengthToMatch = this.charLength(stringToConsume);
|
|
123
|
-
if (charLengthToMatch !== length
|
|
124
|
-
&& stringToConsume === this.peek(charLengthToMatch)) {
|
|
125
|
-
this.advance(charLengthToMatch);
|
|
126
|
-
return stringToConsume;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return emptyString;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Does the same thing as `consumeString()`, but doesn't support consuming
|
|
133
|
-
* multibyte characters. This can be faster if you only need to match single
|
|
134
|
-
* byte characters.
|
|
135
|
-
*/
|
|
136
|
-
consumeStringFast(stringToConsume) {
|
|
137
125
|
let { length } = stringToConsume;
|
|
138
|
-
|
|
139
|
-
|
|
126
|
+
let byteIndex = this.charIndexToByteIndex();
|
|
127
|
+
if (stringToConsume === this.string.slice(byteIndex, byteIndex + length)) {
|
|
128
|
+
this.advance(length === 1 ? 1 : this.charLength(stringToConsume));
|
|
140
129
|
return stringToConsume;
|
|
141
130
|
}
|
|
142
131
|
return emptyString;
|
|
@@ -149,14 +138,12 @@ class StringScanner {
|
|
|
149
138
|
* Returns the consumed string, or an empty string if nothing was consumed.
|
|
150
139
|
*/
|
|
151
140
|
consumeUntilMatch(regex) {
|
|
152
|
-
let
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
this.advance(this.charLength(result));
|
|
159
|
-
return result;
|
|
141
|
+
let matchByteIndex = this.string
|
|
142
|
+
.slice(this.charIndexToByteIndex())
|
|
143
|
+
.search(regex);
|
|
144
|
+
return matchByteIndex > 0
|
|
145
|
+
? this.consumeBytes(matchByteIndex)
|
|
146
|
+
: emptyString;
|
|
160
147
|
}
|
|
161
148
|
/**
|
|
162
149
|
* Consumes characters until the given string is found, advancing the scanner
|
|
@@ -166,15 +153,11 @@ class StringScanner {
|
|
|
166
153
|
* Returns the consumed string, or an empty string if nothing was consumed.
|
|
167
154
|
*/
|
|
168
155
|
consumeUntilString(searchString) {
|
|
169
|
-
let { string } = this;
|
|
170
156
|
let byteIndex = this.charIndexToByteIndex();
|
|
171
|
-
let matchByteIndex = string.indexOf(searchString, byteIndex);
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
let result = string.slice(byteIndex, matchByteIndex);
|
|
176
|
-
this.advance(this.charLength(result));
|
|
177
|
-
return result;
|
|
157
|
+
let matchByteIndex = this.string.indexOf(searchString, byteIndex);
|
|
158
|
+
return matchByteIndex > 0
|
|
159
|
+
? this.consumeBytes(matchByteIndex - byteIndex)
|
|
160
|
+
: emptyString;
|
|
178
161
|
}
|
|
179
162
|
/**
|
|
180
163
|
* Returns the given number of characters starting at the current character
|
|
@@ -182,16 +165,10 @@ class StringScanner {
|
|
|
182
165
|
* input string.
|
|
183
166
|
*/
|
|
184
167
|
peek(count = 1) {
|
|
185
|
-
let { charIndex,
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (charIndex >= this.charCount) {
|
|
190
|
-
return emptyString;
|
|
191
|
-
}
|
|
192
|
-
return string.slice(this.charIndexToByteIndex(charIndex), this.charIndexToByteIndex(charIndex + count));
|
|
193
|
-
}
|
|
194
|
-
return string.slice(charIndex, charIndex + count);
|
|
168
|
+
let { charIndex, string } = this;
|
|
169
|
+
return this.multiByteMode
|
|
170
|
+
? string.slice(this.charIndexToByteIndex(charIndex), this.charIndexToByteIndex(charIndex + count))
|
|
171
|
+
: string.slice(charIndex, charIndex + count);
|
|
195
172
|
}
|
|
196
173
|
/**
|
|
197
174
|
* Resets the scanner position to the given character _index_, or to the start
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringScanner.js","sourceRoot":"","sources":["../../src/lib/StringScanner.ts"],"names":[],"mappings":";;;AAAA,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAExD,eAAe;AACf,MAAa,aAAa;IASxB,YAAY,MAAc;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,IAAI,CAAC,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"StringScanner.js","sourceRoot":"","sources":["../../src/lib/StringScanner.ts"],"names":[],"mappings":"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"}
|