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/dist/index.js
CHANGED
|
@@ -256,114 +256,127 @@ function peg$parse(input, options) {
|
|
|
256
256
|
const peg$c3 = '"';
|
|
257
257
|
const peg$c4 = "'";
|
|
258
258
|
const peg$c5 = " ";
|
|
259
|
-
const peg$r0 = /^[
|
|
260
|
-
const peg$r1 = /^[
|
|
261
|
-
const peg$r2 = /^[
|
|
262
|
-
const peg$r3 = /^[
|
|
259
|
+
const peg$r0 = /^[ \t]/;
|
|
260
|
+
const peg$r1 = /^[\r\n]/;
|
|
261
|
+
const peg$r2 = /^[^"]/;
|
|
262
|
+
const peg$r3 = /^[^']/;
|
|
263
263
|
const peg$r4 = /^[ \t\n\r]/;
|
|
264
264
|
const peg$r5 = /^[^ \t\n\r(:)]/;
|
|
265
|
-
const peg$e0 = peg$
|
|
266
|
-
const peg$e1 = peg$
|
|
267
|
-
const peg$e2 = peg$literalExpectation(")", false);
|
|
268
|
-
const peg$e3 = peg$literalExpectation('"', false);
|
|
269
|
-
const peg$e4 = peg$classExpectation(['"'], true, false, false);
|
|
270
|
-
const peg$e5 = peg$literalExpectation("'", false);
|
|
271
|
-
const peg$e6 = peg$classExpectation(["'"], true, false, false);
|
|
272
|
-
const peg$e7 = peg$literalExpectation(" ", false);
|
|
273
|
-
const peg$e8 = peg$classExpectation(["\r", `
|
|
265
|
+
const peg$e0 = peg$classExpectation([" ", "\t"], false, false, false);
|
|
266
|
+
const peg$e1 = peg$classExpectation(["\r", `
|
|
274
267
|
`], false, false, false);
|
|
275
|
-
const peg$
|
|
276
|
-
const peg$
|
|
268
|
+
const peg$e2 = peg$literalExpectation(":", false);
|
|
269
|
+
const peg$e3 = peg$literalExpectation("(", false);
|
|
270
|
+
const peg$e4 = peg$literalExpectation(")", false);
|
|
271
|
+
const peg$e5 = peg$literalExpectation('"', false);
|
|
272
|
+
const peg$e6 = peg$classExpectation(['"'], true, false, false);
|
|
273
|
+
const peg$e7 = peg$literalExpectation("'", false);
|
|
274
|
+
const peg$e8 = peg$classExpectation(["'"], true, false, false);
|
|
275
|
+
const peg$e9 = peg$literalExpectation(" ", false);
|
|
276
|
+
const peg$e10 = peg$anyExpectation();
|
|
277
277
|
const peg$e11 = peg$classExpectation([" ", "\t", `
|
|
278
278
|
`, "\r"], false, false, false);
|
|
279
279
|
const peg$e12 = peg$classExpectation([" ", "\t", `
|
|
280
280
|
`, "\r", "(", ":", ")"], true, false, false);
|
|
281
|
-
function peg$f0(
|
|
281
|
+
function peg$f0() {
|
|
282
|
+
indentationStack = [0];
|
|
283
|
+
baseIndentation = null;
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
function peg$f1(links) {
|
|
282
287
|
return links;
|
|
283
288
|
}
|
|
284
|
-
function peg$
|
|
289
|
+
function peg$f2() {
|
|
290
|
+
indentationStack = [0];
|
|
291
|
+
baseIndentation = null;
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
function peg$f3() {
|
|
285
295
|
return [];
|
|
286
296
|
}
|
|
287
|
-
function peg$
|
|
297
|
+
function peg$f4(fl, list) {
|
|
288
298
|
popIndentation();
|
|
289
299
|
return [fl].concat(list || []);
|
|
290
300
|
}
|
|
291
|
-
function peg$
|
|
301
|
+
function peg$f5(l) {
|
|
292
302
|
return l;
|
|
293
303
|
}
|
|
294
|
-
function peg$
|
|
304
|
+
function peg$f6(l) {
|
|
295
305
|
return l;
|
|
296
306
|
}
|
|
297
|
-
function peg$
|
|
307
|
+
function peg$f7(e, l) {
|
|
298
308
|
return { id: e.id, values: e.values, children: l };
|
|
299
309
|
}
|
|
300
|
-
function peg$
|
|
310
|
+
function peg$f8(e) {
|
|
301
311
|
return e;
|
|
302
312
|
}
|
|
303
|
-
function peg$
|
|
313
|
+
function peg$f9(l) {
|
|
304
314
|
return l;
|
|
305
315
|
}
|
|
306
|
-
function peg$
|
|
316
|
+
function peg$f10(i) {
|
|
307
317
|
return { id: i };
|
|
308
318
|
}
|
|
309
|
-
function peg$
|
|
319
|
+
function peg$f11(ml) {
|
|
310
320
|
return ml;
|
|
311
321
|
}
|
|
312
|
-
function peg$
|
|
322
|
+
function peg$f12(il) {
|
|
313
323
|
return il;
|
|
314
324
|
}
|
|
315
|
-
function peg$
|
|
325
|
+
function peg$f13(sl) {
|
|
316
326
|
return sl;
|
|
317
327
|
}
|
|
318
|
-
function peg$
|
|
328
|
+
function peg$f14(fl) {
|
|
319
329
|
return fl;
|
|
320
330
|
}
|
|
321
|
-
function peg$
|
|
331
|
+
function peg$f15(vl) {
|
|
322
332
|
return vl;
|
|
323
333
|
}
|
|
324
|
-
function peg$
|
|
334
|
+
function peg$f16(value) {
|
|
325
335
|
return value;
|
|
326
336
|
}
|
|
327
|
-
function peg$
|
|
337
|
+
function peg$f17(list) {
|
|
328
338
|
return list;
|
|
329
339
|
}
|
|
330
|
-
function peg$
|
|
340
|
+
function peg$f18(value) {
|
|
331
341
|
return value;
|
|
332
342
|
}
|
|
333
|
-
function peg$
|
|
343
|
+
function peg$f19(list) {
|
|
334
344
|
return list;
|
|
335
345
|
}
|
|
336
|
-
function peg$
|
|
346
|
+
function peg$f20(id, v) {
|
|
337
347
|
return { id, values: v };
|
|
338
348
|
}
|
|
339
|
-
function peg$
|
|
349
|
+
function peg$f21(id, v) {
|
|
340
350
|
return { id, values: v };
|
|
341
351
|
}
|
|
342
|
-
function peg$
|
|
352
|
+
function peg$f22(v) {
|
|
343
353
|
return { values: v };
|
|
344
354
|
}
|
|
345
|
-
function peg$
|
|
355
|
+
function peg$f23(v) {
|
|
346
356
|
return { values: v };
|
|
347
357
|
}
|
|
348
|
-
function peg$
|
|
358
|
+
function peg$f24(id) {
|
|
349
359
|
return { id, values: [] };
|
|
350
360
|
}
|
|
351
|
-
function peg$
|
|
361
|
+
function peg$f25(chars) {
|
|
352
362
|
return chars.join("");
|
|
353
363
|
}
|
|
354
|
-
function peg$
|
|
364
|
+
function peg$f26(r) {
|
|
355
365
|
return r.join("");
|
|
356
366
|
}
|
|
357
|
-
function peg$
|
|
367
|
+
function peg$f27(r) {
|
|
358
368
|
return r.join("");
|
|
359
369
|
}
|
|
360
|
-
function peg$
|
|
361
|
-
|
|
370
|
+
function peg$f28(spaces) {
|
|
371
|
+
setBaseIndentation(spaces);
|
|
372
|
+
}
|
|
373
|
+
function peg$f29(spaces) {
|
|
374
|
+
return normalizeIndentation(spaces) > getCurrentIndentation();
|
|
362
375
|
}
|
|
363
|
-
function peg$
|
|
376
|
+
function peg$f30(spaces) {
|
|
364
377
|
pushIndentation(spaces);
|
|
365
378
|
}
|
|
366
|
-
function peg$
|
|
379
|
+
function peg$f31(spaces) {
|
|
367
380
|
return checkIndentation(spaces);
|
|
368
381
|
}
|
|
369
382
|
let peg$currPos = options.peg$currPos | 0;
|
|
@@ -494,15 +507,28 @@ function peg$parse(input, options) {
|
|
|
494
507
|
return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected2, found), expected2, found, location2);
|
|
495
508
|
}
|
|
496
509
|
function peg$parsedocument() {
|
|
497
|
-
let s0, s1, s2, s3;
|
|
510
|
+
let s0, s1, s2, s3, s4, s5;
|
|
498
511
|
s0 = peg$currPos;
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
if (
|
|
502
|
-
|
|
512
|
+
peg$savedPos = peg$currPos;
|
|
513
|
+
s1 = peg$f0();
|
|
514
|
+
if (s1) {
|
|
515
|
+
s1 = undefined;
|
|
516
|
+
} else {
|
|
517
|
+
s1 = peg$FAILED;
|
|
518
|
+
}
|
|
519
|
+
if (s1 !== peg$FAILED) {
|
|
520
|
+
s2 = peg$parseskipEmptyLines();
|
|
521
|
+
s3 = peg$parselinks();
|
|
503
522
|
if (s3 !== peg$FAILED) {
|
|
504
|
-
|
|
505
|
-
|
|
523
|
+
s4 = peg$parse_();
|
|
524
|
+
s5 = peg$parseeof();
|
|
525
|
+
if (s5 !== peg$FAILED) {
|
|
526
|
+
peg$savedPos = s0;
|
|
527
|
+
s0 = peg$f1(s3);
|
|
528
|
+
} else {
|
|
529
|
+
peg$currPos = s0;
|
|
530
|
+
s0 = peg$FAILED;
|
|
531
|
+
}
|
|
506
532
|
} else {
|
|
507
533
|
peg$currPos = s0;
|
|
508
534
|
s0 = peg$FAILED;
|
|
@@ -513,11 +539,23 @@ function peg$parse(input, options) {
|
|
|
513
539
|
}
|
|
514
540
|
if (s0 === peg$FAILED) {
|
|
515
541
|
s0 = peg$currPos;
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
if (
|
|
519
|
-
|
|
520
|
-
|
|
542
|
+
peg$savedPos = peg$currPos;
|
|
543
|
+
s1 = peg$f2();
|
|
544
|
+
if (s1) {
|
|
545
|
+
s1 = undefined;
|
|
546
|
+
} else {
|
|
547
|
+
s1 = peg$FAILED;
|
|
548
|
+
}
|
|
549
|
+
if (s1 !== peg$FAILED) {
|
|
550
|
+
s2 = peg$parse_();
|
|
551
|
+
s3 = peg$parseeof();
|
|
552
|
+
if (s3 !== peg$FAILED) {
|
|
553
|
+
peg$savedPos = s0;
|
|
554
|
+
s0 = peg$f3();
|
|
555
|
+
} else {
|
|
556
|
+
peg$currPos = s0;
|
|
557
|
+
s0 = peg$FAILED;
|
|
558
|
+
}
|
|
521
559
|
} else {
|
|
522
560
|
peg$currPos = s0;
|
|
523
561
|
s0 = peg$FAILED;
|
|
@@ -525,6 +563,92 @@ function peg$parse(input, options) {
|
|
|
525
563
|
}
|
|
526
564
|
return s0;
|
|
527
565
|
}
|
|
566
|
+
function peg$parseskipEmptyLines() {
|
|
567
|
+
let s0, s1, s2, s3;
|
|
568
|
+
s0 = [];
|
|
569
|
+
s1 = peg$currPos;
|
|
570
|
+
s2 = [];
|
|
571
|
+
s3 = input.charAt(peg$currPos);
|
|
572
|
+
if (peg$r0.test(s3)) {
|
|
573
|
+
peg$currPos++;
|
|
574
|
+
} else {
|
|
575
|
+
s3 = peg$FAILED;
|
|
576
|
+
if (peg$silentFails === 0) {
|
|
577
|
+
peg$fail(peg$e0);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
while (s3 !== peg$FAILED) {
|
|
581
|
+
s2.push(s3);
|
|
582
|
+
s3 = input.charAt(peg$currPos);
|
|
583
|
+
if (peg$r0.test(s3)) {
|
|
584
|
+
peg$currPos++;
|
|
585
|
+
} else {
|
|
586
|
+
s3 = peg$FAILED;
|
|
587
|
+
if (peg$silentFails === 0) {
|
|
588
|
+
peg$fail(peg$e0);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
s3 = input.charAt(peg$currPos);
|
|
593
|
+
if (peg$r1.test(s3)) {
|
|
594
|
+
peg$currPos++;
|
|
595
|
+
} else {
|
|
596
|
+
s3 = peg$FAILED;
|
|
597
|
+
if (peg$silentFails === 0) {
|
|
598
|
+
peg$fail(peg$e1);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
if (s3 !== peg$FAILED) {
|
|
602
|
+
s2 = [s2, s3];
|
|
603
|
+
s1 = s2;
|
|
604
|
+
} else {
|
|
605
|
+
peg$currPos = s1;
|
|
606
|
+
s1 = peg$FAILED;
|
|
607
|
+
}
|
|
608
|
+
while (s1 !== peg$FAILED) {
|
|
609
|
+
s0.push(s1);
|
|
610
|
+
s1 = peg$currPos;
|
|
611
|
+
s2 = [];
|
|
612
|
+
s3 = input.charAt(peg$currPos);
|
|
613
|
+
if (peg$r0.test(s3)) {
|
|
614
|
+
peg$currPos++;
|
|
615
|
+
} else {
|
|
616
|
+
s3 = peg$FAILED;
|
|
617
|
+
if (peg$silentFails === 0) {
|
|
618
|
+
peg$fail(peg$e0);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
while (s3 !== peg$FAILED) {
|
|
622
|
+
s2.push(s3);
|
|
623
|
+
s3 = input.charAt(peg$currPos);
|
|
624
|
+
if (peg$r0.test(s3)) {
|
|
625
|
+
peg$currPos++;
|
|
626
|
+
} else {
|
|
627
|
+
s3 = peg$FAILED;
|
|
628
|
+
if (peg$silentFails === 0) {
|
|
629
|
+
peg$fail(peg$e0);
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
s3 = input.charAt(peg$currPos);
|
|
634
|
+
if (peg$r1.test(s3)) {
|
|
635
|
+
peg$currPos++;
|
|
636
|
+
} else {
|
|
637
|
+
s3 = peg$FAILED;
|
|
638
|
+
if (peg$silentFails === 0) {
|
|
639
|
+
peg$fail(peg$e1);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
if (s3 !== peg$FAILED) {
|
|
643
|
+
s2 = [s2, s3];
|
|
644
|
+
s1 = s2;
|
|
645
|
+
} else {
|
|
646
|
+
peg$currPos = s1;
|
|
647
|
+
s1 = peg$FAILED;
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
return s0;
|
|
651
|
+
}
|
|
528
652
|
function peg$parselinks() {
|
|
529
653
|
let s0, s1, s2, s3;
|
|
530
654
|
s0 = peg$currPos;
|
|
@@ -537,7 +661,7 @@ function peg$parse(input, options) {
|
|
|
537
661
|
s3 = peg$parseline();
|
|
538
662
|
}
|
|
539
663
|
peg$savedPos = s0;
|
|
540
|
-
s0 = peg$
|
|
664
|
+
s0 = peg$f4(s1, s2);
|
|
541
665
|
} else {
|
|
542
666
|
peg$currPos = s0;
|
|
543
667
|
s0 = peg$FAILED;
|
|
@@ -545,14 +669,17 @@ function peg$parse(input, options) {
|
|
|
545
669
|
return s0;
|
|
546
670
|
}
|
|
547
671
|
function peg$parsefirstLine() {
|
|
548
|
-
let s0, s1;
|
|
672
|
+
let s0, s1, s2;
|
|
549
673
|
s0 = peg$currPos;
|
|
550
|
-
s1 = peg$
|
|
551
|
-
|
|
674
|
+
s1 = peg$parseSET_BASE_INDENTATION();
|
|
675
|
+
s2 = peg$parseelement();
|
|
676
|
+
if (s2 !== peg$FAILED) {
|
|
552
677
|
peg$savedPos = s0;
|
|
553
|
-
|
|
678
|
+
s0 = peg$f5(s2);
|
|
679
|
+
} else {
|
|
680
|
+
peg$currPos = s0;
|
|
681
|
+
s0 = peg$FAILED;
|
|
554
682
|
}
|
|
555
|
-
s0 = s1;
|
|
556
683
|
return s0;
|
|
557
684
|
}
|
|
558
685
|
function peg$parseline() {
|
|
@@ -563,7 +690,7 @@ function peg$parse(input, options) {
|
|
|
563
690
|
s2 = peg$parseelement();
|
|
564
691
|
if (s2 !== peg$FAILED) {
|
|
565
692
|
peg$savedPos = s0;
|
|
566
|
-
s0 = peg$
|
|
693
|
+
s0 = peg$f6(s2);
|
|
567
694
|
} else {
|
|
568
695
|
peg$currPos = s0;
|
|
569
696
|
s0 = peg$FAILED;
|
|
@@ -584,7 +711,7 @@ function peg$parse(input, options) {
|
|
|
584
711
|
s3 = peg$parselinks();
|
|
585
712
|
if (s3 !== peg$FAILED) {
|
|
586
713
|
peg$savedPos = s0;
|
|
587
|
-
s0 = peg$
|
|
714
|
+
s0 = peg$f7(s1, s3);
|
|
588
715
|
} else {
|
|
589
716
|
peg$currPos = s0;
|
|
590
717
|
s0 = peg$FAILED;
|
|
@@ -602,7 +729,7 @@ function peg$parse(input, options) {
|
|
|
602
729
|
s1 = peg$parseanyLink();
|
|
603
730
|
if (s1 !== peg$FAILED) {
|
|
604
731
|
peg$savedPos = s0;
|
|
605
|
-
s1 = peg$
|
|
732
|
+
s1 = peg$f8(s1);
|
|
606
733
|
}
|
|
607
734
|
s0 = s1;
|
|
608
735
|
}
|
|
@@ -614,7 +741,7 @@ function peg$parse(input, options) {
|
|
|
614
741
|
s1 = peg$parsemultiLineAnyLink();
|
|
615
742
|
if (s1 !== peg$FAILED) {
|
|
616
743
|
peg$savedPos = s0;
|
|
617
|
-
s1 = peg$
|
|
744
|
+
s1 = peg$f9(s1);
|
|
618
745
|
}
|
|
619
746
|
s0 = s1;
|
|
620
747
|
if (s0 === peg$FAILED) {
|
|
@@ -622,7 +749,7 @@ function peg$parse(input, options) {
|
|
|
622
749
|
s1 = peg$parsereference();
|
|
623
750
|
if (s1 !== peg$FAILED) {
|
|
624
751
|
peg$savedPos = s0;
|
|
625
|
-
s1 = peg$
|
|
752
|
+
s1 = peg$f10(s1);
|
|
626
753
|
}
|
|
627
754
|
s0 = s1;
|
|
628
755
|
}
|
|
@@ -636,7 +763,7 @@ function peg$parse(input, options) {
|
|
|
636
763
|
s2 = peg$parseeol();
|
|
637
764
|
if (s2 !== peg$FAILED) {
|
|
638
765
|
peg$savedPos = s0;
|
|
639
|
-
s0 = peg$
|
|
766
|
+
s0 = peg$f11(s1);
|
|
640
767
|
} else {
|
|
641
768
|
peg$currPos = s0;
|
|
642
769
|
s0 = peg$FAILED;
|
|
@@ -650,7 +777,7 @@ function peg$parse(input, options) {
|
|
|
650
777
|
s1 = peg$parseindentedIdLink();
|
|
651
778
|
if (s1 !== peg$FAILED) {
|
|
652
779
|
peg$savedPos = s0;
|
|
653
|
-
s1 = peg$
|
|
780
|
+
s1 = peg$f12(s1);
|
|
654
781
|
}
|
|
655
782
|
s0 = s1;
|
|
656
783
|
if (s0 === peg$FAILED) {
|
|
@@ -658,7 +785,7 @@ function peg$parse(input, options) {
|
|
|
658
785
|
s1 = peg$parsesingleLineAnyLink();
|
|
659
786
|
if (s1 !== peg$FAILED) {
|
|
660
787
|
peg$savedPos = s0;
|
|
661
|
-
s1 = peg$
|
|
788
|
+
s1 = peg$f13(s1);
|
|
662
789
|
}
|
|
663
790
|
s0 = s1;
|
|
664
791
|
}
|
|
@@ -681,7 +808,7 @@ function peg$parse(input, options) {
|
|
|
681
808
|
s2 = peg$parseeol();
|
|
682
809
|
if (s2 !== peg$FAILED) {
|
|
683
810
|
peg$savedPos = s0;
|
|
684
|
-
s0 = peg$
|
|
811
|
+
s0 = peg$f14(s1);
|
|
685
812
|
} else {
|
|
686
813
|
peg$currPos = s0;
|
|
687
814
|
s0 = peg$FAILED;
|
|
@@ -697,7 +824,7 @@ function peg$parse(input, options) {
|
|
|
697
824
|
s2 = peg$parseeol();
|
|
698
825
|
if (s2 !== peg$FAILED) {
|
|
699
826
|
peg$savedPos = s0;
|
|
700
|
-
s0 = peg$
|
|
827
|
+
s0 = peg$f15(s1);
|
|
701
828
|
} else {
|
|
702
829
|
peg$currPos = s0;
|
|
703
830
|
s0 = peg$FAILED;
|
|
@@ -716,7 +843,7 @@ function peg$parse(input, options) {
|
|
|
716
843
|
if (s1 !== peg$FAILED) {
|
|
717
844
|
s2 = peg$parse_();
|
|
718
845
|
peg$savedPos = s0;
|
|
719
|
-
s0 = peg$
|
|
846
|
+
s0 = peg$f16(s1);
|
|
720
847
|
} else {
|
|
721
848
|
peg$currPos = s0;
|
|
722
849
|
s0 = peg$FAILED;
|
|
@@ -734,7 +861,7 @@ function peg$parse(input, options) {
|
|
|
734
861
|
s3 = peg$parsemultiLineValueAndWhitespace();
|
|
735
862
|
}
|
|
736
863
|
peg$savedPos = s0;
|
|
737
|
-
s0 = peg$
|
|
864
|
+
s0 = peg$f17(s2);
|
|
738
865
|
return s0;
|
|
739
866
|
}
|
|
740
867
|
function peg$parsesingleLineValueAndWhitespace() {
|
|
@@ -744,7 +871,7 @@ function peg$parse(input, options) {
|
|
|
744
871
|
s2 = peg$parsereferenceOrLink();
|
|
745
872
|
if (s2 !== peg$FAILED) {
|
|
746
873
|
peg$savedPos = s0;
|
|
747
|
-
s0 = peg$
|
|
874
|
+
s0 = peg$f18(s2);
|
|
748
875
|
} else {
|
|
749
876
|
peg$currPos = s0;
|
|
750
877
|
s0 = peg$FAILED;
|
|
@@ -766,7 +893,7 @@ function peg$parse(input, options) {
|
|
|
766
893
|
}
|
|
767
894
|
if (s1 !== peg$FAILED) {
|
|
768
895
|
peg$savedPos = s0;
|
|
769
|
-
s1 = peg$
|
|
896
|
+
s1 = peg$f19(s1);
|
|
770
897
|
}
|
|
771
898
|
s0 = s1;
|
|
772
899
|
return s0;
|
|
@@ -784,14 +911,14 @@ function peg$parse(input, options) {
|
|
|
784
911
|
} else {
|
|
785
912
|
s4 = peg$FAILED;
|
|
786
913
|
if (peg$silentFails === 0) {
|
|
787
|
-
peg$fail(peg$
|
|
914
|
+
peg$fail(peg$e2);
|
|
788
915
|
}
|
|
789
916
|
}
|
|
790
917
|
if (s4 !== peg$FAILED) {
|
|
791
918
|
s5 = peg$parsesingleLineValues();
|
|
792
919
|
if (s5 !== peg$FAILED) {
|
|
793
920
|
peg$savedPos = s0;
|
|
794
|
-
s0 = peg$
|
|
921
|
+
s0 = peg$f20(s2, s5);
|
|
795
922
|
} else {
|
|
796
923
|
peg$currPos = s0;
|
|
797
924
|
s0 = peg$FAILED;
|
|
@@ -815,7 +942,7 @@ function peg$parse(input, options) {
|
|
|
815
942
|
} else {
|
|
816
943
|
s1 = peg$FAILED;
|
|
817
944
|
if (peg$silentFails === 0) {
|
|
818
|
-
peg$fail(peg$
|
|
945
|
+
peg$fail(peg$e3);
|
|
819
946
|
}
|
|
820
947
|
}
|
|
821
948
|
if (s1 !== peg$FAILED) {
|
|
@@ -829,7 +956,7 @@ function peg$parse(input, options) {
|
|
|
829
956
|
} else {
|
|
830
957
|
s5 = peg$FAILED;
|
|
831
958
|
if (peg$silentFails === 0) {
|
|
832
|
-
peg$fail(peg$
|
|
959
|
+
peg$fail(peg$e2);
|
|
833
960
|
}
|
|
834
961
|
}
|
|
835
962
|
if (s5 !== peg$FAILED) {
|
|
@@ -841,12 +968,12 @@ function peg$parse(input, options) {
|
|
|
841
968
|
} else {
|
|
842
969
|
s8 = peg$FAILED;
|
|
843
970
|
if (peg$silentFails === 0) {
|
|
844
|
-
peg$fail(peg$
|
|
971
|
+
peg$fail(peg$e4);
|
|
845
972
|
}
|
|
846
973
|
}
|
|
847
974
|
if (s8 !== peg$FAILED) {
|
|
848
975
|
peg$savedPos = s0;
|
|
849
|
-
s0 = peg$
|
|
976
|
+
s0 = peg$f21(s3, s6);
|
|
850
977
|
} else {
|
|
851
978
|
peg$currPos = s0;
|
|
852
979
|
s0 = peg$FAILED;
|
|
@@ -871,7 +998,7 @@ function peg$parse(input, options) {
|
|
|
871
998
|
s1 = peg$parsesingleLineValues();
|
|
872
999
|
if (s1 !== peg$FAILED) {
|
|
873
1000
|
peg$savedPos = s0;
|
|
874
|
-
s1 = peg$
|
|
1001
|
+
s1 = peg$f22(s1);
|
|
875
1002
|
}
|
|
876
1003
|
s0 = s1;
|
|
877
1004
|
return s0;
|
|
@@ -885,7 +1012,7 @@ function peg$parse(input, options) {
|
|
|
885
1012
|
} else {
|
|
886
1013
|
s1 = peg$FAILED;
|
|
887
1014
|
if (peg$silentFails === 0) {
|
|
888
|
-
peg$fail(peg$
|
|
1015
|
+
peg$fail(peg$e3);
|
|
889
1016
|
}
|
|
890
1017
|
}
|
|
891
1018
|
if (s1 !== peg$FAILED) {
|
|
@@ -897,12 +1024,12 @@ function peg$parse(input, options) {
|
|
|
897
1024
|
} else {
|
|
898
1025
|
s4 = peg$FAILED;
|
|
899
1026
|
if (peg$silentFails === 0) {
|
|
900
|
-
peg$fail(peg$
|
|
1027
|
+
peg$fail(peg$e4);
|
|
901
1028
|
}
|
|
902
1029
|
}
|
|
903
1030
|
if (s4 !== peg$FAILED) {
|
|
904
1031
|
peg$savedPos = s0;
|
|
905
|
-
s0 = peg$
|
|
1032
|
+
s0 = peg$f23(s2);
|
|
906
1033
|
} else {
|
|
907
1034
|
peg$currPos = s0;
|
|
908
1035
|
s0 = peg$FAILED;
|
|
@@ -925,14 +1052,14 @@ function peg$parse(input, options) {
|
|
|
925
1052
|
} else {
|
|
926
1053
|
s3 = peg$FAILED;
|
|
927
1054
|
if (peg$silentFails === 0) {
|
|
928
|
-
peg$fail(peg$
|
|
1055
|
+
peg$fail(peg$e2);
|
|
929
1056
|
}
|
|
930
1057
|
}
|
|
931
1058
|
if (s3 !== peg$FAILED) {
|
|
932
1059
|
s4 = peg$parseeol();
|
|
933
1060
|
if (s4 !== peg$FAILED) {
|
|
934
1061
|
peg$savedPos = s0;
|
|
935
|
-
s0 = peg$
|
|
1062
|
+
s0 = peg$f24(s1);
|
|
936
1063
|
} else {
|
|
937
1064
|
peg$currPos = s0;
|
|
938
1065
|
s0 = peg$FAILED;
|
|
@@ -973,7 +1100,7 @@ function peg$parse(input, options) {
|
|
|
973
1100
|
}
|
|
974
1101
|
if (s1 !== peg$FAILED) {
|
|
975
1102
|
peg$savedPos = s0;
|
|
976
|
-
s1 = peg$
|
|
1103
|
+
s1 = peg$f25(s1);
|
|
977
1104
|
}
|
|
978
1105
|
s0 = s1;
|
|
979
1106
|
return s0;
|
|
@@ -987,30 +1114,30 @@ function peg$parse(input, options) {
|
|
|
987
1114
|
} else {
|
|
988
1115
|
s1 = peg$FAILED;
|
|
989
1116
|
if (peg$silentFails === 0) {
|
|
990
|
-
peg$fail(peg$
|
|
1117
|
+
peg$fail(peg$e5);
|
|
991
1118
|
}
|
|
992
1119
|
}
|
|
993
1120
|
if (s1 !== peg$FAILED) {
|
|
994
1121
|
s2 = [];
|
|
995
1122
|
s3 = input.charAt(peg$currPos);
|
|
996
|
-
if (peg$
|
|
1123
|
+
if (peg$r2.test(s3)) {
|
|
997
1124
|
peg$currPos++;
|
|
998
1125
|
} else {
|
|
999
1126
|
s3 = peg$FAILED;
|
|
1000
1127
|
if (peg$silentFails === 0) {
|
|
1001
|
-
peg$fail(peg$
|
|
1128
|
+
peg$fail(peg$e6);
|
|
1002
1129
|
}
|
|
1003
1130
|
}
|
|
1004
1131
|
if (s3 !== peg$FAILED) {
|
|
1005
1132
|
while (s3 !== peg$FAILED) {
|
|
1006
1133
|
s2.push(s3);
|
|
1007
1134
|
s3 = input.charAt(peg$currPos);
|
|
1008
|
-
if (peg$
|
|
1135
|
+
if (peg$r2.test(s3)) {
|
|
1009
1136
|
peg$currPos++;
|
|
1010
1137
|
} else {
|
|
1011
1138
|
s3 = peg$FAILED;
|
|
1012
1139
|
if (peg$silentFails === 0) {
|
|
1013
|
-
peg$fail(peg$
|
|
1140
|
+
peg$fail(peg$e6);
|
|
1014
1141
|
}
|
|
1015
1142
|
}
|
|
1016
1143
|
}
|
|
@@ -1024,12 +1151,12 @@ function peg$parse(input, options) {
|
|
|
1024
1151
|
} else {
|
|
1025
1152
|
s3 = peg$FAILED;
|
|
1026
1153
|
if (peg$silentFails === 0) {
|
|
1027
|
-
peg$fail(peg$
|
|
1154
|
+
peg$fail(peg$e5);
|
|
1028
1155
|
}
|
|
1029
1156
|
}
|
|
1030
1157
|
if (s3 !== peg$FAILED) {
|
|
1031
1158
|
peg$savedPos = s0;
|
|
1032
|
-
s0 = peg$
|
|
1159
|
+
s0 = peg$f26(s2);
|
|
1033
1160
|
} else {
|
|
1034
1161
|
peg$currPos = s0;
|
|
1035
1162
|
s0 = peg$FAILED;
|
|
@@ -1053,30 +1180,30 @@ function peg$parse(input, options) {
|
|
|
1053
1180
|
} else {
|
|
1054
1181
|
s1 = peg$FAILED;
|
|
1055
1182
|
if (peg$silentFails === 0) {
|
|
1056
|
-
peg$fail(peg$
|
|
1183
|
+
peg$fail(peg$e7);
|
|
1057
1184
|
}
|
|
1058
1185
|
}
|
|
1059
1186
|
if (s1 !== peg$FAILED) {
|
|
1060
1187
|
s2 = [];
|
|
1061
1188
|
s3 = input.charAt(peg$currPos);
|
|
1062
|
-
if (peg$
|
|
1189
|
+
if (peg$r3.test(s3)) {
|
|
1063
1190
|
peg$currPos++;
|
|
1064
1191
|
} else {
|
|
1065
1192
|
s3 = peg$FAILED;
|
|
1066
1193
|
if (peg$silentFails === 0) {
|
|
1067
|
-
peg$fail(peg$
|
|
1194
|
+
peg$fail(peg$e8);
|
|
1068
1195
|
}
|
|
1069
1196
|
}
|
|
1070
1197
|
if (s3 !== peg$FAILED) {
|
|
1071
1198
|
while (s3 !== peg$FAILED) {
|
|
1072
1199
|
s2.push(s3);
|
|
1073
1200
|
s3 = input.charAt(peg$currPos);
|
|
1074
|
-
if (peg$
|
|
1201
|
+
if (peg$r3.test(s3)) {
|
|
1075
1202
|
peg$currPos++;
|
|
1076
1203
|
} else {
|
|
1077
1204
|
s3 = peg$FAILED;
|
|
1078
1205
|
if (peg$silentFails === 0) {
|
|
1079
|
-
peg$fail(peg$
|
|
1206
|
+
peg$fail(peg$e8);
|
|
1080
1207
|
}
|
|
1081
1208
|
}
|
|
1082
1209
|
}
|
|
@@ -1090,12 +1217,12 @@ function peg$parse(input, options) {
|
|
|
1090
1217
|
} else {
|
|
1091
1218
|
s3 = peg$FAILED;
|
|
1092
1219
|
if (peg$silentFails === 0) {
|
|
1093
|
-
peg$fail(peg$
|
|
1220
|
+
peg$fail(peg$e7);
|
|
1094
1221
|
}
|
|
1095
1222
|
}
|
|
1096
1223
|
if (s3 !== peg$FAILED) {
|
|
1097
1224
|
peg$savedPos = s0;
|
|
1098
|
-
s0 = peg$
|
|
1225
|
+
s0 = peg$f27(s2);
|
|
1099
1226
|
} else {
|
|
1100
1227
|
peg$currPos = s0;
|
|
1101
1228
|
s0 = peg$FAILED;
|
|
@@ -1110,6 +1237,36 @@ function peg$parse(input, options) {
|
|
|
1110
1237
|
}
|
|
1111
1238
|
return s0;
|
|
1112
1239
|
}
|
|
1240
|
+
function peg$parseSET_BASE_INDENTATION() {
|
|
1241
|
+
let s0, s1, s2;
|
|
1242
|
+
s0 = peg$currPos;
|
|
1243
|
+
s1 = [];
|
|
1244
|
+
if (input.charCodeAt(peg$currPos) === 32) {
|
|
1245
|
+
s2 = peg$c5;
|
|
1246
|
+
peg$currPos++;
|
|
1247
|
+
} else {
|
|
1248
|
+
s2 = peg$FAILED;
|
|
1249
|
+
if (peg$silentFails === 0) {
|
|
1250
|
+
peg$fail(peg$e9);
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
while (s2 !== peg$FAILED) {
|
|
1254
|
+
s1.push(s2);
|
|
1255
|
+
if (input.charCodeAt(peg$currPos) === 32) {
|
|
1256
|
+
s2 = peg$c5;
|
|
1257
|
+
peg$currPos++;
|
|
1258
|
+
} else {
|
|
1259
|
+
s2 = peg$FAILED;
|
|
1260
|
+
if (peg$silentFails === 0) {
|
|
1261
|
+
peg$fail(peg$e9);
|
|
1262
|
+
}
|
|
1263
|
+
}
|
|
1264
|
+
}
|
|
1265
|
+
peg$savedPos = s0;
|
|
1266
|
+
s1 = peg$f28(s1);
|
|
1267
|
+
s0 = s1;
|
|
1268
|
+
return s0;
|
|
1269
|
+
}
|
|
1113
1270
|
function peg$parsePUSH_INDENTATION() {
|
|
1114
1271
|
let s0, s1, s2;
|
|
1115
1272
|
s0 = peg$currPos;
|
|
@@ -1120,7 +1277,7 @@ function peg$parse(input, options) {
|
|
|
1120
1277
|
} else {
|
|
1121
1278
|
s2 = peg$FAILED;
|
|
1122
1279
|
if (peg$silentFails === 0) {
|
|
1123
|
-
peg$fail(peg$
|
|
1280
|
+
peg$fail(peg$e9);
|
|
1124
1281
|
}
|
|
1125
1282
|
}
|
|
1126
1283
|
while (s2 !== peg$FAILED) {
|
|
@@ -1131,12 +1288,12 @@ function peg$parse(input, options) {
|
|
|
1131
1288
|
} else {
|
|
1132
1289
|
s2 = peg$FAILED;
|
|
1133
1290
|
if (peg$silentFails === 0) {
|
|
1134
|
-
peg$fail(peg$
|
|
1291
|
+
peg$fail(peg$e9);
|
|
1135
1292
|
}
|
|
1136
1293
|
}
|
|
1137
1294
|
}
|
|
1138
1295
|
peg$savedPos = peg$currPos;
|
|
1139
|
-
s2 = peg$
|
|
1296
|
+
s2 = peg$f29(s1);
|
|
1140
1297
|
if (s2) {
|
|
1141
1298
|
s2 = undefined;
|
|
1142
1299
|
} else {
|
|
@@ -1144,7 +1301,7 @@ function peg$parse(input, options) {
|
|
|
1144
1301
|
}
|
|
1145
1302
|
if (s2 !== peg$FAILED) {
|
|
1146
1303
|
peg$savedPos = s0;
|
|
1147
|
-
s0 = peg$
|
|
1304
|
+
s0 = peg$f30(s1);
|
|
1148
1305
|
} else {
|
|
1149
1306
|
peg$currPos = s0;
|
|
1150
1307
|
s0 = peg$FAILED;
|
|
@@ -1161,7 +1318,7 @@ function peg$parse(input, options) {
|
|
|
1161
1318
|
} else {
|
|
1162
1319
|
s2 = peg$FAILED;
|
|
1163
1320
|
if (peg$silentFails === 0) {
|
|
1164
|
-
peg$fail(peg$
|
|
1321
|
+
peg$fail(peg$e9);
|
|
1165
1322
|
}
|
|
1166
1323
|
}
|
|
1167
1324
|
while (s2 !== peg$FAILED) {
|
|
@@ -1172,12 +1329,12 @@ function peg$parse(input, options) {
|
|
|
1172
1329
|
} else {
|
|
1173
1330
|
s2 = peg$FAILED;
|
|
1174
1331
|
if (peg$silentFails === 0) {
|
|
1175
|
-
peg$fail(peg$
|
|
1332
|
+
peg$fail(peg$e9);
|
|
1176
1333
|
}
|
|
1177
1334
|
}
|
|
1178
1335
|
}
|
|
1179
1336
|
peg$savedPos = peg$currPos;
|
|
1180
|
-
s2 = peg$
|
|
1337
|
+
s2 = peg$f31(s1);
|
|
1181
1338
|
if (s2) {
|
|
1182
1339
|
s2 = undefined;
|
|
1183
1340
|
} else {
|
|
@@ -1198,24 +1355,24 @@ function peg$parse(input, options) {
|
|
|
1198
1355
|
s1 = peg$parse__();
|
|
1199
1356
|
s2 = [];
|
|
1200
1357
|
s3 = input.charAt(peg$currPos);
|
|
1201
|
-
if (peg$
|
|
1358
|
+
if (peg$r1.test(s3)) {
|
|
1202
1359
|
peg$currPos++;
|
|
1203
1360
|
} else {
|
|
1204
1361
|
s3 = peg$FAILED;
|
|
1205
1362
|
if (peg$silentFails === 0) {
|
|
1206
|
-
peg$fail(peg$
|
|
1363
|
+
peg$fail(peg$e1);
|
|
1207
1364
|
}
|
|
1208
1365
|
}
|
|
1209
1366
|
if (s3 !== peg$FAILED) {
|
|
1210
1367
|
while (s3 !== peg$FAILED) {
|
|
1211
1368
|
s2.push(s3);
|
|
1212
1369
|
s3 = input.charAt(peg$currPos);
|
|
1213
|
-
if (peg$
|
|
1370
|
+
if (peg$r1.test(s3)) {
|
|
1214
1371
|
peg$currPos++;
|
|
1215
1372
|
} else {
|
|
1216
1373
|
s3 = peg$FAILED;
|
|
1217
1374
|
if (peg$silentFails === 0) {
|
|
1218
|
-
peg$fail(peg$
|
|
1375
|
+
peg$fail(peg$e1);
|
|
1219
1376
|
}
|
|
1220
1377
|
}
|
|
1221
1378
|
}
|
|
@@ -1244,7 +1401,7 @@ function peg$parse(input, options) {
|
|
|
1244
1401
|
} else {
|
|
1245
1402
|
s1 = peg$FAILED;
|
|
1246
1403
|
if (peg$silentFails === 0) {
|
|
1247
|
-
peg$fail(peg$
|
|
1404
|
+
peg$fail(peg$e10);
|
|
1248
1405
|
}
|
|
1249
1406
|
}
|
|
1250
1407
|
peg$silentFails--;
|
|
@@ -1260,23 +1417,23 @@ function peg$parse(input, options) {
|
|
|
1260
1417
|
let s0, s1;
|
|
1261
1418
|
s0 = [];
|
|
1262
1419
|
s1 = input.charAt(peg$currPos);
|
|
1263
|
-
if (peg$
|
|
1420
|
+
if (peg$r0.test(s1)) {
|
|
1264
1421
|
peg$currPos++;
|
|
1265
1422
|
} else {
|
|
1266
1423
|
s1 = peg$FAILED;
|
|
1267
1424
|
if (peg$silentFails === 0) {
|
|
1268
|
-
peg$fail(peg$
|
|
1425
|
+
peg$fail(peg$e0);
|
|
1269
1426
|
}
|
|
1270
1427
|
}
|
|
1271
1428
|
while (s1 !== peg$FAILED) {
|
|
1272
1429
|
s0.push(s1);
|
|
1273
1430
|
s1 = input.charAt(peg$currPos);
|
|
1274
|
-
if (peg$
|
|
1431
|
+
if (peg$r0.test(s1)) {
|
|
1275
1432
|
peg$currPos++;
|
|
1276
1433
|
} else {
|
|
1277
1434
|
s1 = peg$FAILED;
|
|
1278
1435
|
if (peg$silentFails === 0) {
|
|
1279
|
-
peg$fail(peg$
|
|
1436
|
+
peg$fail(peg$e0);
|
|
1280
1437
|
}
|
|
1281
1438
|
}
|
|
1282
1439
|
}
|
|
@@ -1319,8 +1476,21 @@ function peg$parse(input, options) {
|
|
|
1319
1476
|
return s0;
|
|
1320
1477
|
}
|
|
1321
1478
|
let indentationStack = [0];
|
|
1479
|
+
let baseIndentation = null;
|
|
1480
|
+
function setBaseIndentation(spaces) {
|
|
1481
|
+
if (baseIndentation === null) {
|
|
1482
|
+
baseIndentation = spaces.length;
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
function normalizeIndentation(spaces) {
|
|
1486
|
+
if (baseIndentation === null) {
|
|
1487
|
+
return spaces.length;
|
|
1488
|
+
}
|
|
1489
|
+
return Math.max(0, spaces.length - baseIndentation);
|
|
1490
|
+
}
|
|
1322
1491
|
function pushIndentation(spaces) {
|
|
1323
|
-
|
|
1492
|
+
const normalized = normalizeIndentation(spaces);
|
|
1493
|
+
indentationStack.push(normalized);
|
|
1324
1494
|
}
|
|
1325
1495
|
function popIndentation() {
|
|
1326
1496
|
if (indentationStack.length > 1) {
|
|
@@ -1328,7 +1498,8 @@ function peg$parse(input, options) {
|
|
|
1328
1498
|
}
|
|
1329
1499
|
}
|
|
1330
1500
|
function checkIndentation(spaces) {
|
|
1331
|
-
|
|
1501
|
+
const normalized = normalizeIndentation(spaces);
|
|
1502
|
+
return normalized >= indentationStack[indentationStack.length - 1];
|
|
1332
1503
|
}
|
|
1333
1504
|
function getCurrentIndentation() {
|
|
1334
1505
|
return indentationStack[indentationStack.length - 1];
|