links-notation 0.9.0 → 0.11.2
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 +1 -1
- package/dist/index.js +293 -122
- package/examples/debug_indentation.js +16 -0
- package/examples/test_leading_spaces.js +33 -0
- package/package.json +2 -2
- package/src/grammar.pegjs +30 -10
- package/src/parser-generated.js +276 -123
- package/tests/IndentationConsistency.test.js +128 -0
package/src/parser-generated.js
CHANGED
|
@@ -171,58 +171,61 @@ function peg$parse(input, options) {
|
|
|
171
171
|
const peg$c4 = "'";
|
|
172
172
|
const peg$c5 = " ";
|
|
173
173
|
|
|
174
|
-
const peg$r0 = /^[
|
|
175
|
-
const peg$r1 = /^[
|
|
176
|
-
const peg$r2 = /^[
|
|
177
|
-
const peg$r3 = /^[
|
|
174
|
+
const peg$r0 = /^[ \t]/;
|
|
175
|
+
const peg$r1 = /^[\r\n]/;
|
|
176
|
+
const peg$r2 = /^[^"]/;
|
|
177
|
+
const peg$r3 = /^[^']/;
|
|
178
178
|
const peg$r4 = /^[ \t\n\r]/;
|
|
179
179
|
const peg$r5 = /^[^ \t\n\r(:)]/;
|
|
180
180
|
|
|
181
|
-
const peg$e0 = peg$
|
|
182
|
-
const peg$e1 = peg$
|
|
183
|
-
const peg$e2 = peg$literalExpectation("
|
|
184
|
-
const peg$e3 = peg$literalExpectation("
|
|
185
|
-
const peg$e4 = peg$
|
|
186
|
-
const peg$e5 = peg$literalExpectation("
|
|
187
|
-
const peg$e6 = peg$classExpectation(["
|
|
188
|
-
const peg$e7 = peg$literalExpectation("
|
|
189
|
-
const peg$e8 = peg$classExpectation(["
|
|
190
|
-
const peg$e9 = peg$
|
|
191
|
-
const peg$e10 = peg$
|
|
181
|
+
const peg$e0 = peg$classExpectation([" ", "\t"], false, false, false);
|
|
182
|
+
const peg$e1 = peg$classExpectation(["\r", "\n"], false, false, false);
|
|
183
|
+
const peg$e2 = peg$literalExpectation(":", false);
|
|
184
|
+
const peg$e3 = peg$literalExpectation("(", false);
|
|
185
|
+
const peg$e4 = peg$literalExpectation(")", false);
|
|
186
|
+
const peg$e5 = peg$literalExpectation("\"", false);
|
|
187
|
+
const peg$e6 = peg$classExpectation(["\""], true, false, false);
|
|
188
|
+
const peg$e7 = peg$literalExpectation("'", false);
|
|
189
|
+
const peg$e8 = peg$classExpectation(["'"], true, false, false);
|
|
190
|
+
const peg$e9 = peg$literalExpectation(" ", false);
|
|
191
|
+
const peg$e10 = peg$anyExpectation();
|
|
192
192
|
const peg$e11 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false, false);
|
|
193
193
|
const peg$e12 = peg$classExpectation([" ", "\t", "\n", "\r", "(", ":", ")"], true, false, false);
|
|
194
194
|
|
|
195
|
-
function peg$f0(
|
|
196
|
-
function peg$f1() { return
|
|
197
|
-
function peg$f2(
|
|
198
|
-
function peg$f3(
|
|
199
|
-
function peg$f4(
|
|
200
|
-
function peg$f5(
|
|
195
|
+
function peg$f0() { indentationStack = [0]; baseIndentation = null; return true; }
|
|
196
|
+
function peg$f1(links) { return links; }
|
|
197
|
+
function peg$f2() { indentationStack = [0]; baseIndentation = null; return true; }
|
|
198
|
+
function peg$f3() { return []; }
|
|
199
|
+
function peg$f4(fl, list) { popIndentation(); return [fl].concat(list || []); }
|
|
200
|
+
function peg$f5(l) { return l; }
|
|
201
|
+
function peg$f6(l) { return l; }
|
|
202
|
+
function peg$f7(e, l) {
|
|
201
203
|
return { id: e.id, values: e.values, children: l };
|
|
202
204
|
}
|
|
203
|
-
function peg$
|
|
204
|
-
function peg$
|
|
205
|
-
function peg$
|
|
206
|
-
function peg$
|
|
207
|
-
function peg$
|
|
208
|
-
function peg$
|
|
209
|
-
function peg$
|
|
210
|
-
function peg$
|
|
211
|
-
function peg$f14(value) { return value; }
|
|
212
|
-
function peg$f15(list) { return list; }
|
|
205
|
+
function peg$f8(e) { return e; }
|
|
206
|
+
function peg$f9(l) { return l; }
|
|
207
|
+
function peg$f10(i) { return { id: i }; }
|
|
208
|
+
function peg$f11(ml) { return ml; }
|
|
209
|
+
function peg$f12(il) { return il; }
|
|
210
|
+
function peg$f13(sl) { return sl; }
|
|
211
|
+
function peg$f14(fl) { return fl; }
|
|
212
|
+
function peg$f15(vl) { return vl; }
|
|
213
213
|
function peg$f16(value) { return value; }
|
|
214
214
|
function peg$f17(list) { return list; }
|
|
215
|
-
function peg$f18(
|
|
216
|
-
function peg$f19(
|
|
217
|
-
function peg$f20(v) { return { values: v }; }
|
|
218
|
-
function peg$f21(v) { return { values: v }; }
|
|
219
|
-
function peg$f22(
|
|
220
|
-
function peg$f23(
|
|
221
|
-
function peg$f24(
|
|
222
|
-
function peg$f25(
|
|
223
|
-
function peg$f26(
|
|
224
|
-
function peg$f27(
|
|
225
|
-
function peg$f28(spaces) {
|
|
215
|
+
function peg$f18(value) { return value; }
|
|
216
|
+
function peg$f19(list) { return list; }
|
|
217
|
+
function peg$f20(id, v) { return { id: id, values: v }; }
|
|
218
|
+
function peg$f21(id, v) { return { id: id, values: v }; }
|
|
219
|
+
function peg$f22(v) { return { values: v }; }
|
|
220
|
+
function peg$f23(v) { return { values: v }; }
|
|
221
|
+
function peg$f24(id) { return { id: id, values: [] }; }
|
|
222
|
+
function peg$f25(chars) { return chars.join(''); }
|
|
223
|
+
function peg$f26(r) { return r.join(''); }
|
|
224
|
+
function peg$f27(r) { return r.join(''); }
|
|
225
|
+
function peg$f28(spaces) { setBaseIndentation(spaces); }
|
|
226
|
+
function peg$f29(spaces) { return normalizeIndentation(spaces) > getCurrentIndentation(); }
|
|
227
|
+
function peg$f30(spaces) { pushIndentation(spaces); }
|
|
228
|
+
function peg$f31(spaces) { return checkIndentation(spaces); }
|
|
226
229
|
let peg$currPos = options.peg$currPos | 0;
|
|
227
230
|
let peg$savedPos = peg$currPos;
|
|
228
231
|
const peg$posDetailsCache = [{ line: 1, column: 1 }];
|
|
@@ -394,16 +397,29 @@ function peg$parse(input, options) {
|
|
|
394
397
|
}
|
|
395
398
|
|
|
396
399
|
function peg$parsedocument() {
|
|
397
|
-
let s0, s1, s2, s3;
|
|
400
|
+
let s0, s1, s2, s3, s4, s5;
|
|
398
401
|
|
|
399
402
|
s0 = peg$currPos;
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
if (
|
|
403
|
-
|
|
403
|
+
peg$savedPos = peg$currPos;
|
|
404
|
+
s1 = peg$f0();
|
|
405
|
+
if (s1) {
|
|
406
|
+
s1 = undefined;
|
|
407
|
+
} else {
|
|
408
|
+
s1 = peg$FAILED;
|
|
409
|
+
}
|
|
410
|
+
if (s1 !== peg$FAILED) {
|
|
411
|
+
s2 = peg$parseskipEmptyLines();
|
|
412
|
+
s3 = peg$parselinks();
|
|
404
413
|
if (s3 !== peg$FAILED) {
|
|
405
|
-
|
|
406
|
-
|
|
414
|
+
s4 = peg$parse_();
|
|
415
|
+
s5 = peg$parseeof();
|
|
416
|
+
if (s5 !== peg$FAILED) {
|
|
417
|
+
peg$savedPos = s0;
|
|
418
|
+
s0 = peg$f1(s3);
|
|
419
|
+
} else {
|
|
420
|
+
peg$currPos = s0;
|
|
421
|
+
s0 = peg$FAILED;
|
|
422
|
+
}
|
|
407
423
|
} else {
|
|
408
424
|
peg$currPos = s0;
|
|
409
425
|
s0 = peg$FAILED;
|
|
@@ -414,11 +430,23 @@ function peg$parse(input, options) {
|
|
|
414
430
|
}
|
|
415
431
|
if (s0 === peg$FAILED) {
|
|
416
432
|
s0 = peg$currPos;
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
if (
|
|
420
|
-
|
|
421
|
-
|
|
433
|
+
peg$savedPos = peg$currPos;
|
|
434
|
+
s1 = peg$f2();
|
|
435
|
+
if (s1) {
|
|
436
|
+
s1 = undefined;
|
|
437
|
+
} else {
|
|
438
|
+
s1 = peg$FAILED;
|
|
439
|
+
}
|
|
440
|
+
if (s1 !== peg$FAILED) {
|
|
441
|
+
s2 = peg$parse_();
|
|
442
|
+
s3 = peg$parseeof();
|
|
443
|
+
if (s3 !== peg$FAILED) {
|
|
444
|
+
peg$savedPos = s0;
|
|
445
|
+
s0 = peg$f3();
|
|
446
|
+
} else {
|
|
447
|
+
peg$currPos = s0;
|
|
448
|
+
s0 = peg$FAILED;
|
|
449
|
+
}
|
|
422
450
|
} else {
|
|
423
451
|
peg$currPos = s0;
|
|
424
452
|
s0 = peg$FAILED;
|
|
@@ -428,6 +456,83 @@ function peg$parse(input, options) {
|
|
|
428
456
|
return s0;
|
|
429
457
|
}
|
|
430
458
|
|
|
459
|
+
function peg$parseskipEmptyLines() {
|
|
460
|
+
let s0, s1, s2, s3;
|
|
461
|
+
|
|
462
|
+
s0 = [];
|
|
463
|
+
s1 = peg$currPos;
|
|
464
|
+
s2 = [];
|
|
465
|
+
s3 = input.charAt(peg$currPos);
|
|
466
|
+
if (peg$r0.test(s3)) {
|
|
467
|
+
peg$currPos++;
|
|
468
|
+
} else {
|
|
469
|
+
s3 = peg$FAILED;
|
|
470
|
+
if (peg$silentFails === 0) { peg$fail(peg$e0); }
|
|
471
|
+
}
|
|
472
|
+
while (s3 !== peg$FAILED) {
|
|
473
|
+
s2.push(s3);
|
|
474
|
+
s3 = input.charAt(peg$currPos);
|
|
475
|
+
if (peg$r0.test(s3)) {
|
|
476
|
+
peg$currPos++;
|
|
477
|
+
} else {
|
|
478
|
+
s3 = peg$FAILED;
|
|
479
|
+
if (peg$silentFails === 0) { peg$fail(peg$e0); }
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
s3 = input.charAt(peg$currPos);
|
|
483
|
+
if (peg$r1.test(s3)) {
|
|
484
|
+
peg$currPos++;
|
|
485
|
+
} else {
|
|
486
|
+
s3 = peg$FAILED;
|
|
487
|
+
if (peg$silentFails === 0) { peg$fail(peg$e1); }
|
|
488
|
+
}
|
|
489
|
+
if (s3 !== peg$FAILED) {
|
|
490
|
+
s2 = [s2, s3];
|
|
491
|
+
s1 = s2;
|
|
492
|
+
} else {
|
|
493
|
+
peg$currPos = s1;
|
|
494
|
+
s1 = peg$FAILED;
|
|
495
|
+
}
|
|
496
|
+
while (s1 !== peg$FAILED) {
|
|
497
|
+
s0.push(s1);
|
|
498
|
+
s1 = peg$currPos;
|
|
499
|
+
s2 = [];
|
|
500
|
+
s3 = input.charAt(peg$currPos);
|
|
501
|
+
if (peg$r0.test(s3)) {
|
|
502
|
+
peg$currPos++;
|
|
503
|
+
} else {
|
|
504
|
+
s3 = peg$FAILED;
|
|
505
|
+
if (peg$silentFails === 0) { peg$fail(peg$e0); }
|
|
506
|
+
}
|
|
507
|
+
while (s3 !== peg$FAILED) {
|
|
508
|
+
s2.push(s3);
|
|
509
|
+
s3 = input.charAt(peg$currPos);
|
|
510
|
+
if (peg$r0.test(s3)) {
|
|
511
|
+
peg$currPos++;
|
|
512
|
+
} else {
|
|
513
|
+
s3 = peg$FAILED;
|
|
514
|
+
if (peg$silentFails === 0) { peg$fail(peg$e0); }
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
s3 = input.charAt(peg$currPos);
|
|
518
|
+
if (peg$r1.test(s3)) {
|
|
519
|
+
peg$currPos++;
|
|
520
|
+
} else {
|
|
521
|
+
s3 = peg$FAILED;
|
|
522
|
+
if (peg$silentFails === 0) { peg$fail(peg$e1); }
|
|
523
|
+
}
|
|
524
|
+
if (s3 !== peg$FAILED) {
|
|
525
|
+
s2 = [s2, s3];
|
|
526
|
+
s1 = s2;
|
|
527
|
+
} else {
|
|
528
|
+
peg$currPos = s1;
|
|
529
|
+
s1 = peg$FAILED;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
return s0;
|
|
534
|
+
}
|
|
535
|
+
|
|
431
536
|
function peg$parselinks() {
|
|
432
537
|
let s0, s1, s2, s3;
|
|
433
538
|
|
|
@@ -441,7 +546,7 @@ function peg$parse(input, options) {
|
|
|
441
546
|
s3 = peg$parseline();
|
|
442
547
|
}
|
|
443
548
|
peg$savedPos = s0;
|
|
444
|
-
s0 = peg$
|
|
549
|
+
s0 = peg$f4(s1, s2);
|
|
445
550
|
} else {
|
|
446
551
|
peg$currPos = s0;
|
|
447
552
|
s0 = peg$FAILED;
|
|
@@ -451,15 +556,18 @@ function peg$parse(input, options) {
|
|
|
451
556
|
}
|
|
452
557
|
|
|
453
558
|
function peg$parsefirstLine() {
|
|
454
|
-
let s0, s1;
|
|
559
|
+
let s0, s1, s2;
|
|
455
560
|
|
|
456
561
|
s0 = peg$currPos;
|
|
457
|
-
s1 = peg$
|
|
458
|
-
|
|
562
|
+
s1 = peg$parseSET_BASE_INDENTATION();
|
|
563
|
+
s2 = peg$parseelement();
|
|
564
|
+
if (s2 !== peg$FAILED) {
|
|
459
565
|
peg$savedPos = s0;
|
|
460
|
-
|
|
566
|
+
s0 = peg$f5(s2);
|
|
567
|
+
} else {
|
|
568
|
+
peg$currPos = s0;
|
|
569
|
+
s0 = peg$FAILED;
|
|
461
570
|
}
|
|
462
|
-
s0 = s1;
|
|
463
571
|
|
|
464
572
|
return s0;
|
|
465
573
|
}
|
|
@@ -473,7 +581,7 @@ function peg$parse(input, options) {
|
|
|
473
581
|
s2 = peg$parseelement();
|
|
474
582
|
if (s2 !== peg$FAILED) {
|
|
475
583
|
peg$savedPos = s0;
|
|
476
|
-
s0 = peg$
|
|
584
|
+
s0 = peg$f6(s2);
|
|
477
585
|
} else {
|
|
478
586
|
peg$currPos = s0;
|
|
479
587
|
s0 = peg$FAILED;
|
|
@@ -497,7 +605,7 @@ function peg$parse(input, options) {
|
|
|
497
605
|
s3 = peg$parselinks();
|
|
498
606
|
if (s3 !== peg$FAILED) {
|
|
499
607
|
peg$savedPos = s0;
|
|
500
|
-
s0 = peg$
|
|
608
|
+
s0 = peg$f7(s1, s3);
|
|
501
609
|
} else {
|
|
502
610
|
peg$currPos = s0;
|
|
503
611
|
s0 = peg$FAILED;
|
|
@@ -515,7 +623,7 @@ function peg$parse(input, options) {
|
|
|
515
623
|
s1 = peg$parseanyLink();
|
|
516
624
|
if (s1 !== peg$FAILED) {
|
|
517
625
|
peg$savedPos = s0;
|
|
518
|
-
s1 = peg$
|
|
626
|
+
s1 = peg$f8(s1);
|
|
519
627
|
}
|
|
520
628
|
s0 = s1;
|
|
521
629
|
}
|
|
@@ -530,7 +638,7 @@ function peg$parse(input, options) {
|
|
|
530
638
|
s1 = peg$parsemultiLineAnyLink();
|
|
531
639
|
if (s1 !== peg$FAILED) {
|
|
532
640
|
peg$savedPos = s0;
|
|
533
|
-
s1 = peg$
|
|
641
|
+
s1 = peg$f9(s1);
|
|
534
642
|
}
|
|
535
643
|
s0 = s1;
|
|
536
644
|
if (s0 === peg$FAILED) {
|
|
@@ -538,7 +646,7 @@ function peg$parse(input, options) {
|
|
|
538
646
|
s1 = peg$parsereference();
|
|
539
647
|
if (s1 !== peg$FAILED) {
|
|
540
648
|
peg$savedPos = s0;
|
|
541
|
-
s1 = peg$
|
|
649
|
+
s1 = peg$f10(s1);
|
|
542
650
|
}
|
|
543
651
|
s0 = s1;
|
|
544
652
|
}
|
|
@@ -555,7 +663,7 @@ function peg$parse(input, options) {
|
|
|
555
663
|
s2 = peg$parseeol();
|
|
556
664
|
if (s2 !== peg$FAILED) {
|
|
557
665
|
peg$savedPos = s0;
|
|
558
|
-
s0 = peg$
|
|
666
|
+
s0 = peg$f11(s1);
|
|
559
667
|
} else {
|
|
560
668
|
peg$currPos = s0;
|
|
561
669
|
s0 = peg$FAILED;
|
|
@@ -569,7 +677,7 @@ function peg$parse(input, options) {
|
|
|
569
677
|
s1 = peg$parseindentedIdLink();
|
|
570
678
|
if (s1 !== peg$FAILED) {
|
|
571
679
|
peg$savedPos = s0;
|
|
572
|
-
s1 = peg$
|
|
680
|
+
s1 = peg$f12(s1);
|
|
573
681
|
}
|
|
574
682
|
s0 = s1;
|
|
575
683
|
if (s0 === peg$FAILED) {
|
|
@@ -577,7 +685,7 @@ function peg$parse(input, options) {
|
|
|
577
685
|
s1 = peg$parsesingleLineAnyLink();
|
|
578
686
|
if (s1 !== peg$FAILED) {
|
|
579
687
|
peg$savedPos = s0;
|
|
580
|
-
s1 = peg$
|
|
688
|
+
s1 = peg$f13(s1);
|
|
581
689
|
}
|
|
582
690
|
s0 = s1;
|
|
583
691
|
}
|
|
@@ -606,7 +714,7 @@ function peg$parse(input, options) {
|
|
|
606
714
|
s2 = peg$parseeol();
|
|
607
715
|
if (s2 !== peg$FAILED) {
|
|
608
716
|
peg$savedPos = s0;
|
|
609
|
-
s0 = peg$
|
|
717
|
+
s0 = peg$f14(s1);
|
|
610
718
|
} else {
|
|
611
719
|
peg$currPos = s0;
|
|
612
720
|
s0 = peg$FAILED;
|
|
@@ -622,7 +730,7 @@ function peg$parse(input, options) {
|
|
|
622
730
|
s2 = peg$parseeol();
|
|
623
731
|
if (s2 !== peg$FAILED) {
|
|
624
732
|
peg$savedPos = s0;
|
|
625
|
-
s0 = peg$
|
|
733
|
+
s0 = peg$f15(s1);
|
|
626
734
|
} else {
|
|
627
735
|
peg$currPos = s0;
|
|
628
736
|
s0 = peg$FAILED;
|
|
@@ -644,7 +752,7 @@ function peg$parse(input, options) {
|
|
|
644
752
|
if (s1 !== peg$FAILED) {
|
|
645
753
|
s2 = peg$parse_();
|
|
646
754
|
peg$savedPos = s0;
|
|
647
|
-
s0 = peg$
|
|
755
|
+
s0 = peg$f16(s1);
|
|
648
756
|
} else {
|
|
649
757
|
peg$currPos = s0;
|
|
650
758
|
s0 = peg$FAILED;
|
|
@@ -665,7 +773,7 @@ function peg$parse(input, options) {
|
|
|
665
773
|
s3 = peg$parsemultiLineValueAndWhitespace();
|
|
666
774
|
}
|
|
667
775
|
peg$savedPos = s0;
|
|
668
|
-
s0 = peg$
|
|
776
|
+
s0 = peg$f17(s2);
|
|
669
777
|
|
|
670
778
|
return s0;
|
|
671
779
|
}
|
|
@@ -678,7 +786,7 @@ function peg$parse(input, options) {
|
|
|
678
786
|
s2 = peg$parsereferenceOrLink();
|
|
679
787
|
if (s2 !== peg$FAILED) {
|
|
680
788
|
peg$savedPos = s0;
|
|
681
|
-
s0 = peg$
|
|
789
|
+
s0 = peg$f18(s2);
|
|
682
790
|
} else {
|
|
683
791
|
peg$currPos = s0;
|
|
684
792
|
s0 = peg$FAILED;
|
|
@@ -703,7 +811,7 @@ function peg$parse(input, options) {
|
|
|
703
811
|
}
|
|
704
812
|
if (s1 !== peg$FAILED) {
|
|
705
813
|
peg$savedPos = s0;
|
|
706
|
-
s1 = peg$
|
|
814
|
+
s1 = peg$f19(s1);
|
|
707
815
|
}
|
|
708
816
|
s0 = s1;
|
|
709
817
|
|
|
@@ -723,13 +831,13 @@ function peg$parse(input, options) {
|
|
|
723
831
|
peg$currPos++;
|
|
724
832
|
} else {
|
|
725
833
|
s4 = peg$FAILED;
|
|
726
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
834
|
+
if (peg$silentFails === 0) { peg$fail(peg$e2); }
|
|
727
835
|
}
|
|
728
836
|
if (s4 !== peg$FAILED) {
|
|
729
837
|
s5 = peg$parsesingleLineValues();
|
|
730
838
|
if (s5 !== peg$FAILED) {
|
|
731
839
|
peg$savedPos = s0;
|
|
732
|
-
s0 = peg$
|
|
840
|
+
s0 = peg$f20(s2, s5);
|
|
733
841
|
} else {
|
|
734
842
|
peg$currPos = s0;
|
|
735
843
|
s0 = peg$FAILED;
|
|
@@ -755,7 +863,7 @@ function peg$parse(input, options) {
|
|
|
755
863
|
peg$currPos++;
|
|
756
864
|
} else {
|
|
757
865
|
s1 = peg$FAILED;
|
|
758
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
866
|
+
if (peg$silentFails === 0) { peg$fail(peg$e3); }
|
|
759
867
|
}
|
|
760
868
|
if (s1 !== peg$FAILED) {
|
|
761
869
|
s2 = peg$parse_();
|
|
@@ -767,7 +875,7 @@ function peg$parse(input, options) {
|
|
|
767
875
|
peg$currPos++;
|
|
768
876
|
} else {
|
|
769
877
|
s5 = peg$FAILED;
|
|
770
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
878
|
+
if (peg$silentFails === 0) { peg$fail(peg$e2); }
|
|
771
879
|
}
|
|
772
880
|
if (s5 !== peg$FAILED) {
|
|
773
881
|
s6 = peg$parsemultiLineValues();
|
|
@@ -777,11 +885,11 @@ function peg$parse(input, options) {
|
|
|
777
885
|
peg$currPos++;
|
|
778
886
|
} else {
|
|
779
887
|
s8 = peg$FAILED;
|
|
780
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
888
|
+
if (peg$silentFails === 0) { peg$fail(peg$e4); }
|
|
781
889
|
}
|
|
782
890
|
if (s8 !== peg$FAILED) {
|
|
783
891
|
peg$savedPos = s0;
|
|
784
|
-
s0 = peg$
|
|
892
|
+
s0 = peg$f21(s3, s6);
|
|
785
893
|
} else {
|
|
786
894
|
peg$currPos = s0;
|
|
787
895
|
s0 = peg$FAILED;
|
|
@@ -809,7 +917,7 @@ function peg$parse(input, options) {
|
|
|
809
917
|
s1 = peg$parsesingleLineValues();
|
|
810
918
|
if (s1 !== peg$FAILED) {
|
|
811
919
|
peg$savedPos = s0;
|
|
812
|
-
s1 = peg$
|
|
920
|
+
s1 = peg$f22(s1);
|
|
813
921
|
}
|
|
814
922
|
s0 = s1;
|
|
815
923
|
|
|
@@ -825,7 +933,7 @@ function peg$parse(input, options) {
|
|
|
825
933
|
peg$currPos++;
|
|
826
934
|
} else {
|
|
827
935
|
s1 = peg$FAILED;
|
|
828
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
936
|
+
if (peg$silentFails === 0) { peg$fail(peg$e3); }
|
|
829
937
|
}
|
|
830
938
|
if (s1 !== peg$FAILED) {
|
|
831
939
|
s2 = peg$parsemultiLineValues();
|
|
@@ -835,11 +943,11 @@ function peg$parse(input, options) {
|
|
|
835
943
|
peg$currPos++;
|
|
836
944
|
} else {
|
|
837
945
|
s4 = peg$FAILED;
|
|
838
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
946
|
+
if (peg$silentFails === 0) { peg$fail(peg$e4); }
|
|
839
947
|
}
|
|
840
948
|
if (s4 !== peg$FAILED) {
|
|
841
949
|
peg$savedPos = s0;
|
|
842
|
-
s0 = peg$
|
|
950
|
+
s0 = peg$f23(s2);
|
|
843
951
|
} else {
|
|
844
952
|
peg$currPos = s0;
|
|
845
953
|
s0 = peg$FAILED;
|
|
@@ -864,13 +972,13 @@ function peg$parse(input, options) {
|
|
|
864
972
|
peg$currPos++;
|
|
865
973
|
} else {
|
|
866
974
|
s3 = peg$FAILED;
|
|
867
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
975
|
+
if (peg$silentFails === 0) { peg$fail(peg$e2); }
|
|
868
976
|
}
|
|
869
977
|
if (s3 !== peg$FAILED) {
|
|
870
978
|
s4 = peg$parseeol();
|
|
871
979
|
if (s4 !== peg$FAILED) {
|
|
872
980
|
peg$savedPos = s0;
|
|
873
|
-
s0 = peg$
|
|
981
|
+
s0 = peg$f24(s1);
|
|
874
982
|
} else {
|
|
875
983
|
peg$currPos = s0;
|
|
876
984
|
s0 = peg$FAILED;
|
|
@@ -917,7 +1025,7 @@ function peg$parse(input, options) {
|
|
|
917
1025
|
}
|
|
918
1026
|
if (s1 !== peg$FAILED) {
|
|
919
1027
|
peg$savedPos = s0;
|
|
920
|
-
s1 = peg$
|
|
1028
|
+
s1 = peg$f25(s1);
|
|
921
1029
|
}
|
|
922
1030
|
s0 = s1;
|
|
923
1031
|
|
|
@@ -933,26 +1041,26 @@ function peg$parse(input, options) {
|
|
|
933
1041
|
peg$currPos++;
|
|
934
1042
|
} else {
|
|
935
1043
|
s1 = peg$FAILED;
|
|
936
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1044
|
+
if (peg$silentFails === 0) { peg$fail(peg$e5); }
|
|
937
1045
|
}
|
|
938
1046
|
if (s1 !== peg$FAILED) {
|
|
939
1047
|
s2 = [];
|
|
940
1048
|
s3 = input.charAt(peg$currPos);
|
|
941
|
-
if (peg$
|
|
1049
|
+
if (peg$r2.test(s3)) {
|
|
942
1050
|
peg$currPos++;
|
|
943
1051
|
} else {
|
|
944
1052
|
s3 = peg$FAILED;
|
|
945
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1053
|
+
if (peg$silentFails === 0) { peg$fail(peg$e6); }
|
|
946
1054
|
}
|
|
947
1055
|
if (s3 !== peg$FAILED) {
|
|
948
1056
|
while (s3 !== peg$FAILED) {
|
|
949
1057
|
s2.push(s3);
|
|
950
1058
|
s3 = input.charAt(peg$currPos);
|
|
951
|
-
if (peg$
|
|
1059
|
+
if (peg$r2.test(s3)) {
|
|
952
1060
|
peg$currPos++;
|
|
953
1061
|
} else {
|
|
954
1062
|
s3 = peg$FAILED;
|
|
955
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1063
|
+
if (peg$silentFails === 0) { peg$fail(peg$e6); }
|
|
956
1064
|
}
|
|
957
1065
|
}
|
|
958
1066
|
} else {
|
|
@@ -964,11 +1072,11 @@ function peg$parse(input, options) {
|
|
|
964
1072
|
peg$currPos++;
|
|
965
1073
|
} else {
|
|
966
1074
|
s3 = peg$FAILED;
|
|
967
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1075
|
+
if (peg$silentFails === 0) { peg$fail(peg$e5); }
|
|
968
1076
|
}
|
|
969
1077
|
if (s3 !== peg$FAILED) {
|
|
970
1078
|
peg$savedPos = s0;
|
|
971
|
-
s0 = peg$
|
|
1079
|
+
s0 = peg$f26(s2);
|
|
972
1080
|
} else {
|
|
973
1081
|
peg$currPos = s0;
|
|
974
1082
|
s0 = peg$FAILED;
|
|
@@ -994,26 +1102,26 @@ function peg$parse(input, options) {
|
|
|
994
1102
|
peg$currPos++;
|
|
995
1103
|
} else {
|
|
996
1104
|
s1 = peg$FAILED;
|
|
997
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1105
|
+
if (peg$silentFails === 0) { peg$fail(peg$e7); }
|
|
998
1106
|
}
|
|
999
1107
|
if (s1 !== peg$FAILED) {
|
|
1000
1108
|
s2 = [];
|
|
1001
1109
|
s3 = input.charAt(peg$currPos);
|
|
1002
|
-
if (peg$
|
|
1110
|
+
if (peg$r3.test(s3)) {
|
|
1003
1111
|
peg$currPos++;
|
|
1004
1112
|
} else {
|
|
1005
1113
|
s3 = peg$FAILED;
|
|
1006
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1114
|
+
if (peg$silentFails === 0) { peg$fail(peg$e8); }
|
|
1007
1115
|
}
|
|
1008
1116
|
if (s3 !== peg$FAILED) {
|
|
1009
1117
|
while (s3 !== peg$FAILED) {
|
|
1010
1118
|
s2.push(s3);
|
|
1011
1119
|
s3 = input.charAt(peg$currPos);
|
|
1012
|
-
if (peg$
|
|
1120
|
+
if (peg$r3.test(s3)) {
|
|
1013
1121
|
peg$currPos++;
|
|
1014
1122
|
} else {
|
|
1015
1123
|
s3 = peg$FAILED;
|
|
1016
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1124
|
+
if (peg$silentFails === 0) { peg$fail(peg$e8); }
|
|
1017
1125
|
}
|
|
1018
1126
|
}
|
|
1019
1127
|
} else {
|
|
@@ -1025,11 +1133,11 @@ function peg$parse(input, options) {
|
|
|
1025
1133
|
peg$currPos++;
|
|
1026
1134
|
} else {
|
|
1027
1135
|
s3 = peg$FAILED;
|
|
1028
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1136
|
+
if (peg$silentFails === 0) { peg$fail(peg$e7); }
|
|
1029
1137
|
}
|
|
1030
1138
|
if (s3 !== peg$FAILED) {
|
|
1031
1139
|
peg$savedPos = s0;
|
|
1032
|
-
s0 = peg$
|
|
1140
|
+
s0 = peg$f27(s2);
|
|
1033
1141
|
} else {
|
|
1034
1142
|
peg$currPos = s0;
|
|
1035
1143
|
s0 = peg$FAILED;
|
|
@@ -1046,6 +1154,35 @@ function peg$parse(input, options) {
|
|
|
1046
1154
|
return s0;
|
|
1047
1155
|
}
|
|
1048
1156
|
|
|
1157
|
+
function peg$parseSET_BASE_INDENTATION() {
|
|
1158
|
+
let s0, s1, s2;
|
|
1159
|
+
|
|
1160
|
+
s0 = peg$currPos;
|
|
1161
|
+
s1 = [];
|
|
1162
|
+
if (input.charCodeAt(peg$currPos) === 32) {
|
|
1163
|
+
s2 = peg$c5;
|
|
1164
|
+
peg$currPos++;
|
|
1165
|
+
} else {
|
|
1166
|
+
s2 = peg$FAILED;
|
|
1167
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1168
|
+
}
|
|
1169
|
+
while (s2 !== peg$FAILED) {
|
|
1170
|
+
s1.push(s2);
|
|
1171
|
+
if (input.charCodeAt(peg$currPos) === 32) {
|
|
1172
|
+
s2 = peg$c5;
|
|
1173
|
+
peg$currPos++;
|
|
1174
|
+
} else {
|
|
1175
|
+
s2 = peg$FAILED;
|
|
1176
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
peg$savedPos = s0;
|
|
1180
|
+
s1 = peg$f28(s1);
|
|
1181
|
+
s0 = s1;
|
|
1182
|
+
|
|
1183
|
+
return s0;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1049
1186
|
function peg$parsePUSH_INDENTATION() {
|
|
1050
1187
|
let s0, s1, s2;
|
|
1051
1188
|
|
|
@@ -1056,7 +1193,7 @@ function peg$parse(input, options) {
|
|
|
1056
1193
|
peg$currPos++;
|
|
1057
1194
|
} else {
|
|
1058
1195
|
s2 = peg$FAILED;
|
|
1059
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1196
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1060
1197
|
}
|
|
1061
1198
|
while (s2 !== peg$FAILED) {
|
|
1062
1199
|
s1.push(s2);
|
|
@@ -1065,11 +1202,11 @@ function peg$parse(input, options) {
|
|
|
1065
1202
|
peg$currPos++;
|
|
1066
1203
|
} else {
|
|
1067
1204
|
s2 = peg$FAILED;
|
|
1068
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1205
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1069
1206
|
}
|
|
1070
1207
|
}
|
|
1071
1208
|
peg$savedPos = peg$currPos;
|
|
1072
|
-
s2 = peg$
|
|
1209
|
+
s2 = peg$f29(s1);
|
|
1073
1210
|
if (s2) {
|
|
1074
1211
|
s2 = undefined;
|
|
1075
1212
|
} else {
|
|
@@ -1077,7 +1214,7 @@ function peg$parse(input, options) {
|
|
|
1077
1214
|
}
|
|
1078
1215
|
if (s2 !== peg$FAILED) {
|
|
1079
1216
|
peg$savedPos = s0;
|
|
1080
|
-
s0 = peg$
|
|
1217
|
+
s0 = peg$f30(s1);
|
|
1081
1218
|
} else {
|
|
1082
1219
|
peg$currPos = s0;
|
|
1083
1220
|
s0 = peg$FAILED;
|
|
@@ -1096,7 +1233,7 @@ function peg$parse(input, options) {
|
|
|
1096
1233
|
peg$currPos++;
|
|
1097
1234
|
} else {
|
|
1098
1235
|
s2 = peg$FAILED;
|
|
1099
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1236
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1100
1237
|
}
|
|
1101
1238
|
while (s2 !== peg$FAILED) {
|
|
1102
1239
|
s1.push(s2);
|
|
@@ -1105,11 +1242,11 @@ function peg$parse(input, options) {
|
|
|
1105
1242
|
peg$currPos++;
|
|
1106
1243
|
} else {
|
|
1107
1244
|
s2 = peg$FAILED;
|
|
1108
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1245
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1109
1246
|
}
|
|
1110
1247
|
}
|
|
1111
1248
|
peg$savedPos = peg$currPos;
|
|
1112
|
-
s2 = peg$
|
|
1249
|
+
s2 = peg$f31(s1);
|
|
1113
1250
|
if (s2) {
|
|
1114
1251
|
s2 = undefined;
|
|
1115
1252
|
} else {
|
|
@@ -1133,21 +1270,21 @@ function peg$parse(input, options) {
|
|
|
1133
1270
|
s1 = peg$parse__();
|
|
1134
1271
|
s2 = [];
|
|
1135
1272
|
s3 = input.charAt(peg$currPos);
|
|
1136
|
-
if (peg$
|
|
1273
|
+
if (peg$r1.test(s3)) {
|
|
1137
1274
|
peg$currPos++;
|
|
1138
1275
|
} else {
|
|
1139
1276
|
s3 = peg$FAILED;
|
|
1140
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1277
|
+
if (peg$silentFails === 0) { peg$fail(peg$e1); }
|
|
1141
1278
|
}
|
|
1142
1279
|
if (s3 !== peg$FAILED) {
|
|
1143
1280
|
while (s3 !== peg$FAILED) {
|
|
1144
1281
|
s2.push(s3);
|
|
1145
1282
|
s3 = input.charAt(peg$currPos);
|
|
1146
|
-
if (peg$
|
|
1283
|
+
if (peg$r1.test(s3)) {
|
|
1147
1284
|
peg$currPos++;
|
|
1148
1285
|
} else {
|
|
1149
1286
|
s3 = peg$FAILED;
|
|
1150
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1287
|
+
if (peg$silentFails === 0) { peg$fail(peg$e1); }
|
|
1151
1288
|
}
|
|
1152
1289
|
}
|
|
1153
1290
|
} else {
|
|
@@ -1177,7 +1314,7 @@ function peg$parse(input, options) {
|
|
|
1177
1314
|
peg$currPos++;
|
|
1178
1315
|
} else {
|
|
1179
1316
|
s1 = peg$FAILED;
|
|
1180
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1317
|
+
if (peg$silentFails === 0) { peg$fail(peg$e10); }
|
|
1181
1318
|
}
|
|
1182
1319
|
peg$silentFails--;
|
|
1183
1320
|
if (s1 === peg$FAILED) {
|
|
@@ -1195,20 +1332,20 @@ function peg$parse(input, options) {
|
|
|
1195
1332
|
|
|
1196
1333
|
s0 = [];
|
|
1197
1334
|
s1 = input.charAt(peg$currPos);
|
|
1198
|
-
if (peg$
|
|
1335
|
+
if (peg$r0.test(s1)) {
|
|
1199
1336
|
peg$currPos++;
|
|
1200
1337
|
} else {
|
|
1201
1338
|
s1 = peg$FAILED;
|
|
1202
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1339
|
+
if (peg$silentFails === 0) { peg$fail(peg$e0); }
|
|
1203
1340
|
}
|
|
1204
1341
|
while (s1 !== peg$FAILED) {
|
|
1205
1342
|
s0.push(s1);
|
|
1206
1343
|
s1 = input.charAt(peg$currPos);
|
|
1207
|
-
if (peg$
|
|
1344
|
+
if (peg$r0.test(s1)) {
|
|
1208
1345
|
peg$currPos++;
|
|
1209
1346
|
} else {
|
|
1210
1347
|
s1 = peg$FAILED;
|
|
1211
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
1348
|
+
if (peg$silentFails === 0) { peg$fail(peg$e0); }
|
|
1212
1349
|
}
|
|
1213
1350
|
}
|
|
1214
1351
|
|
|
@@ -1258,21 +1395,37 @@ function peg$parse(input, options) {
|
|
|
1258
1395
|
|
|
1259
1396
|
|
|
1260
1397
|
let indentationStack = [0];
|
|
1261
|
-
|
|
1398
|
+
let baseIndentation = null;
|
|
1399
|
+
|
|
1400
|
+
function setBaseIndentation(spaces) {
|
|
1401
|
+
if (baseIndentation === null) {
|
|
1402
|
+
baseIndentation = spaces.length;
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
function normalizeIndentation(spaces) {
|
|
1407
|
+
if (baseIndentation === null) {
|
|
1408
|
+
return spaces.length;
|
|
1409
|
+
}
|
|
1410
|
+
return Math.max(0, spaces.length - baseIndentation);
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1262
1413
|
function pushIndentation(spaces) {
|
|
1263
|
-
|
|
1414
|
+
const normalized = normalizeIndentation(spaces);
|
|
1415
|
+
indentationStack.push(normalized);
|
|
1264
1416
|
}
|
|
1265
|
-
|
|
1417
|
+
|
|
1266
1418
|
function popIndentation() {
|
|
1267
1419
|
if (indentationStack.length > 1) {
|
|
1268
1420
|
indentationStack.pop();
|
|
1269
1421
|
}
|
|
1270
1422
|
}
|
|
1271
|
-
|
|
1423
|
+
|
|
1272
1424
|
function checkIndentation(spaces) {
|
|
1273
|
-
|
|
1425
|
+
const normalized = normalizeIndentation(spaces);
|
|
1426
|
+
return normalized >= indentationStack[indentationStack.length - 1];
|
|
1274
1427
|
}
|
|
1275
|
-
|
|
1428
|
+
|
|
1276
1429
|
function getCurrentIndentation() {
|
|
1277
1430
|
return indentationStack[indentationStack.length - 1];
|
|
1278
1431
|
}
|