@echecs/pgn 3.6.2 → 3.7.0

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/dist/grammar.cjs CHANGED
@@ -219,30 +219,31 @@ function peg$parse(input, options) {
219
219
  const peg$c0 = "[";
220
220
  const peg$c1 = "]";
221
221
  const peg$c2 = "\"";
222
- const peg$c3 = "1/2-1/2";
223
- const peg$c4 = "1-0";
224
- const peg$c5 = "0-1";
225
- const peg$c6 = "*";
226
- const peg$c7 = ".";
227
- const peg$c8 = "O-O-O";
228
- const peg$c9 = "O-O";
229
- const peg$c10 = "x";
230
- const peg$c11 = "=";
231
- const peg$c12 = "(";
232
- const peg$c13 = ")";
233
- const peg$c14 = "$";
234
- const peg$c15 = "!!";
235
- const peg$c16 = "??";
236
- const peg$c17 = "!?";
237
- const peg$c18 = "?!";
238
- const peg$c19 = "+ \u2212";
239
- const peg$c20 = "\u2212 +";
240
- const peg$c21 = "{";
241
- const peg$c22 = "}";
242
- const peg$c23 = ";";
243
- const peg$c24 = "%";
222
+ const peg$c3 = "\\";
223
+ const peg$c4 = "1/2-1/2";
224
+ const peg$c5 = "1-0";
225
+ const peg$c6 = "0-1";
226
+ const peg$c7 = "*";
227
+ const peg$c8 = ".";
228
+ const peg$c9 = "O-O-O";
229
+ const peg$c10 = "O-O";
230
+ const peg$c11 = "x";
231
+ const peg$c12 = "=";
232
+ const peg$c13 = "(";
233
+ const peg$c14 = ")";
234
+ const peg$c15 = "$";
235
+ const peg$c16 = "!!";
236
+ const peg$c17 = "??";
237
+ const peg$c18 = "!?";
238
+ const peg$c19 = "?!";
239
+ const peg$c20 = "+ \u2212";
240
+ const peg$c21 = "\u2212 +";
241
+ const peg$c22 = "{";
242
+ const peg$c23 = "}";
243
+ const peg$c24 = ";";
244
+ const peg$c25 = "%";
244
245
  const peg$r0 = /^[a-zA-Z0-9_]/;
245
- const peg$r1 = /^[^"]/;
246
+ const peg$r1 = /^[^"\\]/;
246
247
  const peg$r2 = /^[0-9]/;
247
248
  const peg$r3 = /^[+#]/;
248
249
  const peg$r4 = /^[KQBNPR]/;
@@ -258,59 +259,61 @@ function peg$parse(input, options) {
258
259
  const peg$e1 = peg$literalExpectation("]", false);
259
260
  const peg$e2 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "_"], false, false, false);
260
261
  const peg$e3 = peg$literalExpectation("\"", false);
261
- const peg$e4 = peg$classExpectation(["\""], true, false, false);
262
- const peg$e5 = peg$literalExpectation("1/2-1/2", false);
263
- const peg$e6 = peg$literalExpectation("1-0", false);
264
- const peg$e7 = peg$literalExpectation("0-1", false);
265
- const peg$e8 = peg$literalExpectation("*", false);
266
- const peg$e9 = peg$classExpectation([["0", "9"]], false, false, false);
267
- const peg$e10 = peg$literalExpectation(".", false);
268
- const peg$e11 = peg$literalExpectation("O-O-O", false);
269
- const peg$e12 = peg$classExpectation(["+", "#"], false, false, false);
270
- const peg$e13 = peg$literalExpectation("O-O", false);
271
- const peg$e14 = peg$classExpectation(["K", "Q", "B", "N", "P", "R"], false, false, false);
272
- const peg$e15 = peg$classExpectation([["a", "h"]], false, false, false);
273
- const peg$e16 = peg$classExpectation([["1", "8"]], false, false, false);
274
- const peg$e17 = peg$literalExpectation("x", false);
275
- const peg$e18 = peg$literalExpectation("=", false);
276
- const peg$e19 = peg$classExpectation(["N", "B", "R", "Q"], false, false, false);
277
- const peg$e20 = peg$literalExpectation("(", false);
278
- const peg$e21 = peg$literalExpectation(")", false);
279
- const peg$e22 = peg$literalExpectation("$", false);
280
- const peg$e23 = peg$literalExpectation("!!", false);
281
- const peg$e24 = peg$literalExpectation("??", false);
282
- const peg$e25 = peg$literalExpectation("!?", false);
283
- const peg$e26 = peg$literalExpectation("?!", false);
284
- const peg$e27 = peg$classExpectation(["!", "?", "\xB1", "\u2213", "\u221E", "\u25A1", ["\u2A71", "\u2A72"]], false, false, false);
285
- const peg$e28 = peg$literalExpectation("+ \u2212", false);
286
- const peg$e29 = peg$literalExpectation("\u2212 +", false);
287
- const peg$e30 = peg$classExpectation(["=", ["\u2191", "\u2192"], "\u21C6", "\u25CB", "\u27F3", "\u2981", "\u2A00", "\u2BF9"], false, false, false);
288
- const peg$e31 = peg$literalExpectation("{", false);
289
- const peg$e32 = peg$classExpectation(["}"], true, false, false);
290
- const peg$e33 = peg$literalExpectation("}", false);
291
- const peg$e34 = peg$literalExpectation(";", false);
292
- const peg$e35 = peg$classExpectation(["\n"], false, false, false);
293
- const peg$e36 = peg$anyExpectation();
294
- const peg$e37 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false, false);
295
- const peg$e38 = peg$literalExpectation("%", false);
262
+ const peg$e4 = peg$classExpectation(["\"", "\\"], true, false, false);
263
+ const peg$e5 = peg$literalExpectation("\\", false);
264
+ const peg$e6 = peg$anyExpectation();
265
+ const peg$e7 = peg$literalExpectation("1/2-1/2", false);
266
+ const peg$e8 = peg$literalExpectation("1-0", false);
267
+ const peg$e9 = peg$literalExpectation("0-1", false);
268
+ const peg$e10 = peg$literalExpectation("*", false);
269
+ const peg$e11 = peg$classExpectation([["0", "9"]], false, false, false);
270
+ const peg$e12 = peg$literalExpectation(".", false);
271
+ const peg$e13 = peg$literalExpectation("O-O-O", false);
272
+ const peg$e14 = peg$classExpectation(["+", "#"], false, false, false);
273
+ const peg$e15 = peg$literalExpectation("O-O", false);
274
+ const peg$e16 = peg$classExpectation(["K", "Q", "B", "N", "P", "R"], false, false, false);
275
+ const peg$e17 = peg$classExpectation([["a", "h"]], false, false, false);
276
+ const peg$e18 = peg$classExpectation([["1", "8"]], false, false, false);
277
+ const peg$e19 = peg$literalExpectation("x", false);
278
+ const peg$e20 = peg$literalExpectation("=", false);
279
+ const peg$e21 = peg$classExpectation(["N", "B", "R", "Q"], false, false, false);
280
+ const peg$e22 = peg$literalExpectation("(", false);
281
+ const peg$e23 = peg$literalExpectation(")", false);
282
+ const peg$e24 = peg$literalExpectation("$", false);
283
+ const peg$e25 = peg$literalExpectation("!!", false);
284
+ const peg$e26 = peg$literalExpectation("??", false);
285
+ const peg$e27 = peg$literalExpectation("!?", false);
286
+ const peg$e28 = peg$literalExpectation("?!", false);
287
+ const peg$e29 = peg$classExpectation(["!", "?", "\xB1", "\u2213", "\u221E", "\u25A1", ["\u2A71", "\u2A72"]], false, false, false);
288
+ const peg$e30 = peg$literalExpectation("+ \u2212", false);
289
+ const peg$e31 = peg$literalExpectation("\u2212 +", false);
290
+ const peg$e32 = peg$classExpectation(["=", ["\u2191", "\u2192"], "\u21C6", "\u25CB", "\u27F3", "\u2981", "\u2A00", "\u2BF9"], false, false, false);
291
+ const peg$e33 = peg$literalExpectation("{", false);
292
+ const peg$e34 = peg$classExpectation(["}"], true, false, false);
293
+ const peg$e35 = peg$literalExpectation("}", false);
294
+ const peg$e36 = peg$literalExpectation(";", false);
295
+ const peg$e37 = peg$classExpectation(["\n"], false, false, false);
296
+ const peg$e38 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false, false);
297
+ const peg$e39 = peg$literalExpectation("%", false);
296
298
  function peg$f0(first, g) { return g; }
297
299
  function peg$f1(first, rest) { return [first, ...rest]; }
298
300
  function peg$f2(tags, moves, result) { return { meta: tags, moves: pairMoves(moves), result: mapResult(result) }; }
299
301
  function peg$f3(head, t) { return t; }
300
302
  function peg$f4(head, tail) { return Object.assign({}, head, ...tail); }
301
- function peg$f5(id, val) { return { [id]: val }; }
302
- function peg$f6(val) { return val.trim(); }
303
- function peg$f7(head, r) { return r; }
304
- function peg$f8(head, variants, m) { return m; }
305
- function peg$f9(head, variants, tail) {
303
+ function peg$f5() { return {}; }
304
+ function peg$f6(id, val) { return { [id]: val }; }
305
+ function peg$f7(val) { return val.replace(/\\"/g, '"').replace(/\\\\/g, '\\').trim(); }
306
+ function peg$f8(head, r) { return r; }
307
+ function peg$f9(head, variants, m) { return m; }
308
+ function peg$f10(head, variants, tail) {
306
309
  if (variants.length > 0) {
307
310
  head.variants = variants;
308
311
  }
309
312
  return tail ? [head, ...tail] : [head];
310
313
  }
311
- function peg$f10(num, san, n) { return n; }
312
- function peg$f11(num, san, nags, c) { return c; }
313
- function peg$f12(num, san, nags, comments) {
314
+ function peg$f11(num, san, n) { return n; }
315
+ function peg$f12(num, san, nags, c) { return c; }
316
+ function peg$f13(num, san, nags, comments) {
314
317
  if (num !== null)
315
318
  san.number = num;
316
319
  if (nags.length > 0) {
@@ -334,24 +337,24 @@ function peg$parse(input, options) {
334
337
  }
335
338
  return san;
336
339
  }
337
- function peg$f13(n) { return parseInt(n.replace(/\./g, ''), 10); }
338
- function peg$f14(ind) { return applyIndicators({ castling: true, long: true, piece: 'K', to: 'O-O-O' }, undefined, ind); }
339
- function peg$f15(ind) { return applyIndicators({ castling: true, long: false, piece: 'K', to: 'O-O' }, undefined, ind); }
340
- function peg$f16(piece, df, dr, file, rank, promo, ind) { return applyIndicators({ capture: true, from: df + dr, piece, to: file + rank }, promo, ind); }
341
- function peg$f17(piece, df, dr, file, rank, promo, ind) { return applyIndicators({ from: df + dr, piece, to: file + rank }, promo, ind); }
342
- function peg$f18(piece, df, file, rank, promo, ind) { return applyIndicators({ capture: true, from: df, piece, to: file + rank }, promo, ind); }
343
- function peg$f19(piece, dr, file, rank, promo, ind) { return applyIndicators({ capture: true, from: dr, piece, to: file + rank }, promo, ind); }
344
- function peg$f20(piece, df, file, rank, promo, ind) { return applyIndicators({ from: df, piece, to: file + rank }, promo, ind); }
345
- function peg$f21(piece, dr, file, rank, promo, ind) { return applyIndicators({ from: dr, piece, to: file + rank }, promo, ind); }
346
- function peg$f22(piece, file, rank, promo, ind) { return applyIndicators({ capture: true, piece, to: file + rank }, promo, ind); }
347
- function peg$f23(piece, file, rank, promo, ind) { return applyIndicators({ piece, to: file + rank }, promo, ind); }
348
- function peg$f24(from, file, rank, promo, ind) { return applyIndicators({ capture: true, from, piece: 'P', to: file + rank }, promo, ind); }
349
- function peg$f25(file, rank, promo, ind) { return applyIndicators({ piece: 'P', to: file + rank }, promo, ind); }
350
- function peg$f26(p) { return p; }
351
- function peg$f27(moves) { return moves; }
352
- function peg$f28(n) { return n; }
353
- function peg$f29(text) { return text.replace(/[\n\t]/g, ' ').trim(); }
354
- function peg$f30(text) { return text.trim(); }
340
+ function peg$f14(n) { return parseInt(n.replace(/\./g, ''), 10); }
341
+ function peg$f15(ind) { return applyIndicators({ castling: true, long: true, piece: 'K', to: 'O-O-O' }, undefined, ind); }
342
+ function peg$f16(ind) { return applyIndicators({ castling: true, long: false, piece: 'K', to: 'O-O' }, undefined, ind); }
343
+ function peg$f17(piece, df, dr, file, rank, promo, ind) { return applyIndicators({ capture: true, from: df + dr, piece, to: file + rank }, promo, ind); }
344
+ function peg$f18(piece, df, dr, file, rank, promo, ind) { return applyIndicators({ from: df + dr, piece, to: file + rank }, promo, ind); }
345
+ function peg$f19(piece, df, file, rank, promo, ind) { return applyIndicators({ capture: true, from: df, piece, to: file + rank }, promo, ind); }
346
+ function peg$f20(piece, dr, file, rank, promo, ind) { return applyIndicators({ capture: true, from: dr, piece, to: file + rank }, promo, ind); }
347
+ function peg$f21(piece, df, file, rank, promo, ind) { return applyIndicators({ from: df, piece, to: file + rank }, promo, ind); }
348
+ function peg$f22(piece, dr, file, rank, promo, ind) { return applyIndicators({ from: dr, piece, to: file + rank }, promo, ind); }
349
+ function peg$f23(piece, file, rank, promo, ind) { return applyIndicators({ capture: true, piece, to: file + rank }, promo, ind); }
350
+ function peg$f24(piece, file, rank, promo, ind) { return applyIndicators({ piece, to: file + rank }, promo, ind); }
351
+ function peg$f25(from, file, rank, promo, ind) { return applyIndicators({ capture: true, from, piece: 'P', to: file + rank }, promo, ind); }
352
+ function peg$f26(file, rank, promo, ind) { return applyIndicators({ piece: 'P', to: file + rank }, promo, ind); }
353
+ function peg$f27(p) { return p; }
354
+ function peg$f28(moves) { return moves; }
355
+ function peg$f29(n) { return n; }
356
+ function peg$f30(text) { return text.replace(/[\n\t]/g, ' ').trim(); }
357
+ function peg$f31(text) { return text.trim(); }
355
358
  let peg$currPos = options.peg$currPos | 0;
356
359
  let peg$savedPos = peg$currPos;
357
360
  const peg$posDetailsCache = [{ line: 1, column: 1 }];
@@ -596,6 +599,13 @@ function peg$parse(input, options) {
596
599
  peg$currPos = s0;
597
600
  s0 = peg$FAILED;
598
601
  }
602
+ if (s0 === peg$FAILED) {
603
+ s0 = peg$currPos;
604
+ s1 = '';
605
+ peg$savedPos = s0;
606
+ s1 = peg$f5();
607
+ s0 = s1;
608
+ }
599
609
  return s0;
600
610
  }
601
611
  function peg$parseTAG() {
@@ -631,7 +641,7 @@ function peg$parse(input, options) {
631
641
  }
632
642
  if (s7 !== peg$FAILED) {
633
643
  peg$savedPos = s0;
634
- s0 = peg$f5(s3, s5);
644
+ s0 = peg$f6(s3, s5);
635
645
  }
636
646
  else {
637
647
  peg$currPos = s0;
@@ -695,7 +705,7 @@ function peg$parse(input, options) {
695
705
  return s0;
696
706
  }
697
707
  function peg$parseSTRING() {
698
- let s0, s1, s2, s3, s4;
708
+ let s0, s1, s2, s3, s4, s5, s6;
699
709
  s0 = peg$currPos;
700
710
  if (input.charCodeAt(peg$currPos) === 34) {
701
711
  s1 = peg$c2;
@@ -720,6 +730,43 @@ function peg$parse(input, options) {
720
730
  peg$fail(peg$e4);
721
731
  }
722
732
  }
733
+ if (s4 === peg$FAILED) {
734
+ s4 = peg$currPos;
735
+ if (input.charCodeAt(peg$currPos) === 92) {
736
+ s5 = peg$c3;
737
+ peg$currPos++;
738
+ }
739
+ else {
740
+ s5 = peg$FAILED;
741
+ if (peg$silentFails === 0) {
742
+ peg$fail(peg$e5);
743
+ }
744
+ }
745
+ if (s5 !== peg$FAILED) {
746
+ if (input.length > peg$currPos) {
747
+ s6 = input.charAt(peg$currPos);
748
+ peg$currPos++;
749
+ }
750
+ else {
751
+ s6 = peg$FAILED;
752
+ if (peg$silentFails === 0) {
753
+ peg$fail(peg$e6);
754
+ }
755
+ }
756
+ if (s6 !== peg$FAILED) {
757
+ s5 = [s5, s6];
758
+ s4 = s5;
759
+ }
760
+ else {
761
+ peg$currPos = s4;
762
+ s4 = peg$FAILED;
763
+ }
764
+ }
765
+ else {
766
+ peg$currPos = s4;
767
+ s4 = peg$FAILED;
768
+ }
769
+ }
723
770
  while (s4 !== peg$FAILED) {
724
771
  s3.push(s4);
725
772
  s4 = input.charAt(peg$currPos);
@@ -732,6 +779,43 @@ function peg$parse(input, options) {
732
779
  peg$fail(peg$e4);
733
780
  }
734
781
  }
782
+ if (s4 === peg$FAILED) {
783
+ s4 = peg$currPos;
784
+ if (input.charCodeAt(peg$currPos) === 92) {
785
+ s5 = peg$c3;
786
+ peg$currPos++;
787
+ }
788
+ else {
789
+ s5 = peg$FAILED;
790
+ if (peg$silentFails === 0) {
791
+ peg$fail(peg$e5);
792
+ }
793
+ }
794
+ if (s5 !== peg$FAILED) {
795
+ if (input.length > peg$currPos) {
796
+ s6 = input.charAt(peg$currPos);
797
+ peg$currPos++;
798
+ }
799
+ else {
800
+ s6 = peg$FAILED;
801
+ if (peg$silentFails === 0) {
802
+ peg$fail(peg$e6);
803
+ }
804
+ }
805
+ if (s6 !== peg$FAILED) {
806
+ s5 = [s5, s6];
807
+ s4 = s5;
808
+ }
809
+ else {
810
+ peg$currPos = s4;
811
+ s4 = peg$FAILED;
812
+ }
813
+ }
814
+ else {
815
+ peg$currPos = s4;
816
+ s4 = peg$FAILED;
817
+ }
818
+ }
735
819
  }
736
820
  s2 = input.substring(s2, peg$currPos);
737
821
  if (input.charCodeAt(peg$currPos) === 34) {
@@ -746,7 +830,7 @@ function peg$parse(input, options) {
746
830
  }
747
831
  if (s3 !== peg$FAILED) {
748
832
  peg$savedPos = s0;
749
- s0 = peg$f6(s2);
833
+ s0 = peg$f7(s2);
750
834
  }
751
835
  else {
752
836
  peg$currPos = s0;
@@ -761,47 +845,47 @@ function peg$parse(input, options) {
761
845
  }
762
846
  function peg$parseRESULT() {
763
847
  let s0;
764
- if (input.substr(peg$currPos, 7) === peg$c3) {
765
- s0 = peg$c3;
848
+ if (input.substr(peg$currPos, 7) === peg$c4) {
849
+ s0 = peg$c4;
766
850
  peg$currPos += 7;
767
851
  }
768
852
  else {
769
853
  s0 = peg$FAILED;
770
854
  if (peg$silentFails === 0) {
771
- peg$fail(peg$e5);
855
+ peg$fail(peg$e7);
772
856
  }
773
857
  }
774
858
  if (s0 === peg$FAILED) {
775
- if (input.substr(peg$currPos, 3) === peg$c4) {
776
- s0 = peg$c4;
859
+ if (input.substr(peg$currPos, 3) === peg$c5) {
860
+ s0 = peg$c5;
777
861
  peg$currPos += 3;
778
862
  }
779
863
  else {
780
864
  s0 = peg$FAILED;
781
865
  if (peg$silentFails === 0) {
782
- peg$fail(peg$e6);
866
+ peg$fail(peg$e8);
783
867
  }
784
868
  }
785
869
  if (s0 === peg$FAILED) {
786
- if (input.substr(peg$currPos, 3) === peg$c5) {
787
- s0 = peg$c5;
870
+ if (input.substr(peg$currPos, 3) === peg$c6) {
871
+ s0 = peg$c6;
788
872
  peg$currPos += 3;
789
873
  }
790
874
  else {
791
875
  s0 = peg$FAILED;
792
876
  if (peg$silentFails === 0) {
793
- peg$fail(peg$e7);
877
+ peg$fail(peg$e9);
794
878
  }
795
879
  }
796
880
  if (s0 === peg$FAILED) {
797
881
  if (input.charCodeAt(peg$currPos) === 42) {
798
- s0 = peg$c6;
882
+ s0 = peg$c7;
799
883
  peg$currPos++;
800
884
  }
801
885
  else {
802
886
  s0 = peg$FAILED;
803
887
  if (peg$silentFails === 0) {
804
- peg$fail(peg$e8);
888
+ peg$fail(peg$e10);
805
889
  }
806
890
  }
807
891
  }
@@ -820,7 +904,7 @@ function peg$parse(input, options) {
820
904
  s5 = peg$parseRAV();
821
905
  if (s5 !== peg$FAILED) {
822
906
  peg$savedPos = s3;
823
- s3 = peg$f7(s1, s5);
907
+ s3 = peg$f8(s1, s5);
824
908
  }
825
909
  else {
826
910
  peg$currPos = s3;
@@ -833,7 +917,7 @@ function peg$parse(input, options) {
833
917
  s5 = peg$parseRAV();
834
918
  if (s5 !== peg$FAILED) {
835
919
  peg$savedPos = s3;
836
- s3 = peg$f7(s1, s5);
920
+ s3 = peg$f8(s1, s5);
837
921
  }
838
922
  else {
839
923
  peg$currPos = s3;
@@ -845,7 +929,7 @@ function peg$parse(input, options) {
845
929
  s5 = peg$parseMOVES();
846
930
  if (s5 !== peg$FAILED) {
847
931
  peg$savedPos = s3;
848
- s3 = peg$f8(s1, s2, s5);
932
+ s3 = peg$f9(s1, s2, s5);
849
933
  }
850
934
  else {
851
935
  peg$currPos = s3;
@@ -855,7 +939,7 @@ function peg$parse(input, options) {
855
939
  s3 = null;
856
940
  }
857
941
  peg$savedPos = s0;
858
- s0 = peg$f9(s1, s2, s3);
942
+ s0 = peg$f10(s1, s2, s3);
859
943
  }
860
944
  else {
861
945
  peg$currPos = s0;
@@ -879,7 +963,7 @@ function peg$parse(input, options) {
879
963
  s7 = peg$parseNAG();
880
964
  if (s7 !== peg$FAILED) {
881
965
  peg$savedPos = s5;
882
- s5 = peg$f10(s1, s3, s7);
966
+ s5 = peg$f11(s1, s3, s7);
883
967
  }
884
968
  else {
885
969
  peg$currPos = s5;
@@ -892,7 +976,7 @@ function peg$parse(input, options) {
892
976
  s7 = peg$parseNAG();
893
977
  if (s7 !== peg$FAILED) {
894
978
  peg$savedPos = s5;
895
- s5 = peg$f10(s1, s3, s7);
979
+ s5 = peg$f11(s1, s3, s7);
896
980
  }
897
981
  else {
898
982
  peg$currPos = s5;
@@ -905,7 +989,7 @@ function peg$parse(input, options) {
905
989
  s8 = peg$parseCOMMENT();
906
990
  if (s8 !== peg$FAILED) {
907
991
  peg$savedPos = s6;
908
- s6 = peg$f11(s1, s3, s4, s8);
992
+ s6 = peg$f12(s1, s3, s4, s8);
909
993
  }
910
994
  else {
911
995
  peg$currPos = s6;
@@ -918,7 +1002,7 @@ function peg$parse(input, options) {
918
1002
  s8 = peg$parseCOMMENT();
919
1003
  if (s8 !== peg$FAILED) {
920
1004
  peg$savedPos = s6;
921
- s6 = peg$f11(s1, s3, s4, s8);
1005
+ s6 = peg$f12(s1, s3, s4, s8);
922
1006
  }
923
1007
  else {
924
1008
  peg$currPos = s6;
@@ -926,7 +1010,7 @@ function peg$parse(input, options) {
926
1010
  }
927
1011
  }
928
1012
  peg$savedPos = s0;
929
- s0 = peg$f12(s1, s3, s4, s5);
1013
+ s0 = peg$f13(s1, s3, s4, s5);
930
1014
  }
931
1015
  else {
932
1016
  peg$currPos = s0;
@@ -947,7 +1031,7 @@ function peg$parse(input, options) {
947
1031
  else {
948
1032
  s4 = peg$FAILED;
949
1033
  if (peg$silentFails === 0) {
950
- peg$fail(peg$e9);
1034
+ peg$fail(peg$e11);
951
1035
  }
952
1036
  }
953
1037
  if (s4 !== peg$FAILED) {
@@ -960,7 +1044,7 @@ function peg$parse(input, options) {
960
1044
  else {
961
1045
  s4 = peg$FAILED;
962
1046
  if (peg$silentFails === 0) {
963
- peg$fail(peg$e9);
1047
+ peg$fail(peg$e11);
964
1048
  }
965
1049
  }
966
1050
  }
@@ -971,25 +1055,25 @@ function peg$parse(input, options) {
971
1055
  if (s3 !== peg$FAILED) {
972
1056
  s4 = [];
973
1057
  if (input.charCodeAt(peg$currPos) === 46) {
974
- s5 = peg$c7;
1058
+ s5 = peg$c8;
975
1059
  peg$currPos++;
976
1060
  }
977
1061
  else {
978
1062
  s5 = peg$FAILED;
979
1063
  if (peg$silentFails === 0) {
980
- peg$fail(peg$e10);
1064
+ peg$fail(peg$e12);
981
1065
  }
982
1066
  }
983
1067
  while (s5 !== peg$FAILED) {
984
1068
  s4.push(s5);
985
1069
  if (input.charCodeAt(peg$currPos) === 46) {
986
- s5 = peg$c7;
1070
+ s5 = peg$c8;
987
1071
  peg$currPos++;
988
1072
  }
989
1073
  else {
990
1074
  s5 = peg$FAILED;
991
1075
  if (peg$silentFails === 0) {
992
- peg$fail(peg$e10);
1076
+ peg$fail(peg$e12);
993
1077
  }
994
1078
  }
995
1079
  }
@@ -1008,7 +1092,7 @@ function peg$parse(input, options) {
1008
1092
  }
1009
1093
  if (s1 !== peg$FAILED) {
1010
1094
  peg$savedPos = s0;
1011
- s1 = peg$f13(s1);
1095
+ s1 = peg$f14(s1);
1012
1096
  }
1013
1097
  s0 = s1;
1014
1098
  return s0;
@@ -1030,14 +1114,14 @@ function peg$parse(input, options) {
1030
1114
  function peg$parseCASTLING() {
1031
1115
  let s0, s1, s2, s3;
1032
1116
  s0 = peg$currPos;
1033
- if (input.substr(peg$currPos, 5) === peg$c8) {
1034
- s1 = peg$c8;
1117
+ if (input.substr(peg$currPos, 5) === peg$c9) {
1118
+ s1 = peg$c9;
1035
1119
  peg$currPos += 5;
1036
1120
  }
1037
1121
  else {
1038
1122
  s1 = peg$FAILED;
1039
1123
  if (peg$silentFails === 0) {
1040
- peg$fail(peg$e11);
1124
+ peg$fail(peg$e13);
1041
1125
  }
1042
1126
  }
1043
1127
  if (s1 !== peg$FAILED) {
@@ -1049,7 +1133,7 @@ function peg$parse(input, options) {
1049
1133
  else {
1050
1134
  s3 = peg$FAILED;
1051
1135
  if (peg$silentFails === 0) {
1052
- peg$fail(peg$e12);
1136
+ peg$fail(peg$e14);
1053
1137
  }
1054
1138
  }
1055
1139
  if (s3 === peg$FAILED) {
@@ -1057,7 +1141,7 @@ function peg$parse(input, options) {
1057
1141
  }
1058
1142
  s2 = input.substring(s2, peg$currPos);
1059
1143
  peg$savedPos = s0;
1060
- s0 = peg$f14(s2);
1144
+ s0 = peg$f15(s2);
1061
1145
  }
1062
1146
  else {
1063
1147
  peg$currPos = s0;
@@ -1065,14 +1149,14 @@ function peg$parse(input, options) {
1065
1149
  }
1066
1150
  if (s0 === peg$FAILED) {
1067
1151
  s0 = peg$currPos;
1068
- if (input.substr(peg$currPos, 3) === peg$c9) {
1069
- s1 = peg$c9;
1152
+ if (input.substr(peg$currPos, 3) === peg$c10) {
1153
+ s1 = peg$c10;
1070
1154
  peg$currPos += 3;
1071
1155
  }
1072
1156
  else {
1073
1157
  s1 = peg$FAILED;
1074
1158
  if (peg$silentFails === 0) {
1075
- peg$fail(peg$e13);
1159
+ peg$fail(peg$e15);
1076
1160
  }
1077
1161
  }
1078
1162
  if (s1 !== peg$FAILED) {
@@ -1084,7 +1168,7 @@ function peg$parse(input, options) {
1084
1168
  else {
1085
1169
  s3 = peg$FAILED;
1086
1170
  if (peg$silentFails === 0) {
1087
- peg$fail(peg$e12);
1171
+ peg$fail(peg$e14);
1088
1172
  }
1089
1173
  }
1090
1174
  if (s3 === peg$FAILED) {
@@ -1092,7 +1176,7 @@ function peg$parse(input, options) {
1092
1176
  }
1093
1177
  s2 = input.substring(s2, peg$currPos);
1094
1178
  peg$savedPos = s0;
1095
- s0 = peg$f15(s2);
1179
+ s0 = peg$f16(s2);
1096
1180
  }
1097
1181
  else {
1098
1182
  peg$currPos = s0;
@@ -1111,7 +1195,7 @@ function peg$parse(input, options) {
1111
1195
  else {
1112
1196
  s1 = peg$FAILED;
1113
1197
  if (peg$silentFails === 0) {
1114
- peg$fail(peg$e14);
1198
+ peg$fail(peg$e16);
1115
1199
  }
1116
1200
  }
1117
1201
  if (s1 !== peg$FAILED) {
@@ -1122,7 +1206,7 @@ function peg$parse(input, options) {
1122
1206
  else {
1123
1207
  s2 = peg$FAILED;
1124
1208
  if (peg$silentFails === 0) {
1125
- peg$fail(peg$e15);
1209
+ peg$fail(peg$e17);
1126
1210
  }
1127
1211
  }
1128
1212
  if (s2 !== peg$FAILED) {
@@ -1133,18 +1217,18 @@ function peg$parse(input, options) {
1133
1217
  else {
1134
1218
  s3 = peg$FAILED;
1135
1219
  if (peg$silentFails === 0) {
1136
- peg$fail(peg$e16);
1220
+ peg$fail(peg$e18);
1137
1221
  }
1138
1222
  }
1139
1223
  if (s3 !== peg$FAILED) {
1140
1224
  if (input.charCodeAt(peg$currPos) === 120) {
1141
- s4 = peg$c10;
1225
+ s4 = peg$c11;
1142
1226
  peg$currPos++;
1143
1227
  }
1144
1228
  else {
1145
1229
  s4 = peg$FAILED;
1146
1230
  if (peg$silentFails === 0) {
1147
- peg$fail(peg$e17);
1231
+ peg$fail(peg$e19);
1148
1232
  }
1149
1233
  }
1150
1234
  if (s4 !== peg$FAILED) {
@@ -1155,7 +1239,7 @@ function peg$parse(input, options) {
1155
1239
  else {
1156
1240
  s5 = peg$FAILED;
1157
1241
  if (peg$silentFails === 0) {
1158
- peg$fail(peg$e15);
1242
+ peg$fail(peg$e17);
1159
1243
  }
1160
1244
  }
1161
1245
  if (s5 !== peg$FAILED) {
@@ -1166,7 +1250,7 @@ function peg$parse(input, options) {
1166
1250
  else {
1167
1251
  s6 = peg$FAILED;
1168
1252
  if (peg$silentFails === 0) {
1169
- peg$fail(peg$e16);
1253
+ peg$fail(peg$e18);
1170
1254
  }
1171
1255
  }
1172
1256
  if (s6 !== peg$FAILED) {
@@ -1182,7 +1266,7 @@ function peg$parse(input, options) {
1182
1266
  else {
1183
1267
  s9 = peg$FAILED;
1184
1268
  if (peg$silentFails === 0) {
1185
- peg$fail(peg$e12);
1269
+ peg$fail(peg$e14);
1186
1270
  }
1187
1271
  }
1188
1272
  if (s9 === peg$FAILED) {
@@ -1190,7 +1274,7 @@ function peg$parse(input, options) {
1190
1274
  }
1191
1275
  s8 = input.substring(s8, peg$currPos);
1192
1276
  peg$savedPos = s0;
1193
- s0 = peg$f16(s1, s2, s3, s5, s6, s7, s8);
1277
+ s0 = peg$f17(s1, s2, s3, s5, s6, s7, s8);
1194
1278
  }
1195
1279
  else {
1196
1280
  peg$currPos = s0;
@@ -1230,7 +1314,7 @@ function peg$parse(input, options) {
1230
1314
  else {
1231
1315
  s1 = peg$FAILED;
1232
1316
  if (peg$silentFails === 0) {
1233
- peg$fail(peg$e14);
1317
+ peg$fail(peg$e16);
1234
1318
  }
1235
1319
  }
1236
1320
  if (s1 !== peg$FAILED) {
@@ -1241,7 +1325,7 @@ function peg$parse(input, options) {
1241
1325
  else {
1242
1326
  s2 = peg$FAILED;
1243
1327
  if (peg$silentFails === 0) {
1244
- peg$fail(peg$e15);
1328
+ peg$fail(peg$e17);
1245
1329
  }
1246
1330
  }
1247
1331
  if (s2 !== peg$FAILED) {
@@ -1252,7 +1336,7 @@ function peg$parse(input, options) {
1252
1336
  else {
1253
1337
  s3 = peg$FAILED;
1254
1338
  if (peg$silentFails === 0) {
1255
- peg$fail(peg$e16);
1339
+ peg$fail(peg$e18);
1256
1340
  }
1257
1341
  }
1258
1342
  if (s3 !== peg$FAILED) {
@@ -1263,7 +1347,7 @@ function peg$parse(input, options) {
1263
1347
  else {
1264
1348
  s4 = peg$FAILED;
1265
1349
  if (peg$silentFails === 0) {
1266
- peg$fail(peg$e15);
1350
+ peg$fail(peg$e17);
1267
1351
  }
1268
1352
  }
1269
1353
  if (s4 !== peg$FAILED) {
@@ -1274,7 +1358,7 @@ function peg$parse(input, options) {
1274
1358
  else {
1275
1359
  s5 = peg$FAILED;
1276
1360
  if (peg$silentFails === 0) {
1277
- peg$fail(peg$e16);
1361
+ peg$fail(peg$e18);
1278
1362
  }
1279
1363
  }
1280
1364
  if (s5 !== peg$FAILED) {
@@ -1290,7 +1374,7 @@ function peg$parse(input, options) {
1290
1374
  else {
1291
1375
  s8 = peg$FAILED;
1292
1376
  if (peg$silentFails === 0) {
1293
- peg$fail(peg$e12);
1377
+ peg$fail(peg$e14);
1294
1378
  }
1295
1379
  }
1296
1380
  if (s8 === peg$FAILED) {
@@ -1298,7 +1382,7 @@ function peg$parse(input, options) {
1298
1382
  }
1299
1383
  s7 = input.substring(s7, peg$currPos);
1300
1384
  peg$savedPos = s0;
1301
- s0 = peg$f17(s1, s2, s3, s4, s5, s6, s7);
1385
+ s0 = peg$f18(s1, s2, s3, s4, s5, s6, s7);
1302
1386
  }
1303
1387
  else {
1304
1388
  peg$currPos = s0;
@@ -1333,7 +1417,7 @@ function peg$parse(input, options) {
1333
1417
  else {
1334
1418
  s1 = peg$FAILED;
1335
1419
  if (peg$silentFails === 0) {
1336
- peg$fail(peg$e14);
1420
+ peg$fail(peg$e16);
1337
1421
  }
1338
1422
  }
1339
1423
  if (s1 !== peg$FAILED) {
@@ -1344,18 +1428,18 @@ function peg$parse(input, options) {
1344
1428
  else {
1345
1429
  s2 = peg$FAILED;
1346
1430
  if (peg$silentFails === 0) {
1347
- peg$fail(peg$e15);
1431
+ peg$fail(peg$e17);
1348
1432
  }
1349
1433
  }
1350
1434
  if (s2 !== peg$FAILED) {
1351
1435
  if (input.charCodeAt(peg$currPos) === 120) {
1352
- s3 = peg$c10;
1436
+ s3 = peg$c11;
1353
1437
  peg$currPos++;
1354
1438
  }
1355
1439
  else {
1356
1440
  s3 = peg$FAILED;
1357
1441
  if (peg$silentFails === 0) {
1358
- peg$fail(peg$e17);
1442
+ peg$fail(peg$e19);
1359
1443
  }
1360
1444
  }
1361
1445
  if (s3 !== peg$FAILED) {
@@ -1366,7 +1450,7 @@ function peg$parse(input, options) {
1366
1450
  else {
1367
1451
  s4 = peg$FAILED;
1368
1452
  if (peg$silentFails === 0) {
1369
- peg$fail(peg$e15);
1453
+ peg$fail(peg$e17);
1370
1454
  }
1371
1455
  }
1372
1456
  if (s4 !== peg$FAILED) {
@@ -1377,7 +1461,7 @@ function peg$parse(input, options) {
1377
1461
  else {
1378
1462
  s5 = peg$FAILED;
1379
1463
  if (peg$silentFails === 0) {
1380
- peg$fail(peg$e16);
1464
+ peg$fail(peg$e18);
1381
1465
  }
1382
1466
  }
1383
1467
  if (s5 !== peg$FAILED) {
@@ -1393,7 +1477,7 @@ function peg$parse(input, options) {
1393
1477
  else {
1394
1478
  s8 = peg$FAILED;
1395
1479
  if (peg$silentFails === 0) {
1396
- peg$fail(peg$e12);
1480
+ peg$fail(peg$e14);
1397
1481
  }
1398
1482
  }
1399
1483
  if (s8 === peg$FAILED) {
@@ -1401,7 +1485,7 @@ function peg$parse(input, options) {
1401
1485
  }
1402
1486
  s7 = input.substring(s7, peg$currPos);
1403
1487
  peg$savedPos = s0;
1404
- s0 = peg$f18(s1, s2, s4, s5, s6, s7);
1488
+ s0 = peg$f19(s1, s2, s4, s5, s6, s7);
1405
1489
  }
1406
1490
  else {
1407
1491
  peg$currPos = s0;
@@ -1436,7 +1520,7 @@ function peg$parse(input, options) {
1436
1520
  else {
1437
1521
  s1 = peg$FAILED;
1438
1522
  if (peg$silentFails === 0) {
1439
- peg$fail(peg$e14);
1523
+ peg$fail(peg$e16);
1440
1524
  }
1441
1525
  }
1442
1526
  if (s1 !== peg$FAILED) {
@@ -1447,18 +1531,18 @@ function peg$parse(input, options) {
1447
1531
  else {
1448
1532
  s2 = peg$FAILED;
1449
1533
  if (peg$silentFails === 0) {
1450
- peg$fail(peg$e16);
1534
+ peg$fail(peg$e18);
1451
1535
  }
1452
1536
  }
1453
1537
  if (s2 !== peg$FAILED) {
1454
1538
  if (input.charCodeAt(peg$currPos) === 120) {
1455
- s3 = peg$c10;
1539
+ s3 = peg$c11;
1456
1540
  peg$currPos++;
1457
1541
  }
1458
1542
  else {
1459
1543
  s3 = peg$FAILED;
1460
1544
  if (peg$silentFails === 0) {
1461
- peg$fail(peg$e17);
1545
+ peg$fail(peg$e19);
1462
1546
  }
1463
1547
  }
1464
1548
  if (s3 !== peg$FAILED) {
@@ -1469,7 +1553,7 @@ function peg$parse(input, options) {
1469
1553
  else {
1470
1554
  s4 = peg$FAILED;
1471
1555
  if (peg$silentFails === 0) {
1472
- peg$fail(peg$e15);
1556
+ peg$fail(peg$e17);
1473
1557
  }
1474
1558
  }
1475
1559
  if (s4 !== peg$FAILED) {
@@ -1480,7 +1564,7 @@ function peg$parse(input, options) {
1480
1564
  else {
1481
1565
  s5 = peg$FAILED;
1482
1566
  if (peg$silentFails === 0) {
1483
- peg$fail(peg$e16);
1567
+ peg$fail(peg$e18);
1484
1568
  }
1485
1569
  }
1486
1570
  if (s5 !== peg$FAILED) {
@@ -1496,7 +1580,7 @@ function peg$parse(input, options) {
1496
1580
  else {
1497
1581
  s8 = peg$FAILED;
1498
1582
  if (peg$silentFails === 0) {
1499
- peg$fail(peg$e12);
1583
+ peg$fail(peg$e14);
1500
1584
  }
1501
1585
  }
1502
1586
  if (s8 === peg$FAILED) {
@@ -1504,7 +1588,7 @@ function peg$parse(input, options) {
1504
1588
  }
1505
1589
  s7 = input.substring(s7, peg$currPos);
1506
1590
  peg$savedPos = s0;
1507
- s0 = peg$f19(s1, s2, s4, s5, s6, s7);
1591
+ s0 = peg$f20(s1, s2, s4, s5, s6, s7);
1508
1592
  }
1509
1593
  else {
1510
1594
  peg$currPos = s0;
@@ -1539,7 +1623,7 @@ function peg$parse(input, options) {
1539
1623
  else {
1540
1624
  s1 = peg$FAILED;
1541
1625
  if (peg$silentFails === 0) {
1542
- peg$fail(peg$e14);
1626
+ peg$fail(peg$e16);
1543
1627
  }
1544
1628
  }
1545
1629
  if (s1 !== peg$FAILED) {
@@ -1550,7 +1634,7 @@ function peg$parse(input, options) {
1550
1634
  else {
1551
1635
  s2 = peg$FAILED;
1552
1636
  if (peg$silentFails === 0) {
1553
- peg$fail(peg$e15);
1637
+ peg$fail(peg$e17);
1554
1638
  }
1555
1639
  }
1556
1640
  if (s2 !== peg$FAILED) {
@@ -1561,7 +1645,7 @@ function peg$parse(input, options) {
1561
1645
  else {
1562
1646
  s3 = peg$FAILED;
1563
1647
  if (peg$silentFails === 0) {
1564
- peg$fail(peg$e15);
1648
+ peg$fail(peg$e17);
1565
1649
  }
1566
1650
  }
1567
1651
  if (s3 !== peg$FAILED) {
@@ -1572,7 +1656,7 @@ function peg$parse(input, options) {
1572
1656
  else {
1573
1657
  s4 = peg$FAILED;
1574
1658
  if (peg$silentFails === 0) {
1575
- peg$fail(peg$e16);
1659
+ peg$fail(peg$e18);
1576
1660
  }
1577
1661
  }
1578
1662
  if (s4 !== peg$FAILED) {
@@ -1588,7 +1672,7 @@ function peg$parse(input, options) {
1588
1672
  else {
1589
1673
  s7 = peg$FAILED;
1590
1674
  if (peg$silentFails === 0) {
1591
- peg$fail(peg$e12);
1675
+ peg$fail(peg$e14);
1592
1676
  }
1593
1677
  }
1594
1678
  if (s7 === peg$FAILED) {
@@ -1596,7 +1680,7 @@ function peg$parse(input, options) {
1596
1680
  }
1597
1681
  s6 = input.substring(s6, peg$currPos);
1598
1682
  peg$savedPos = s0;
1599
- s0 = peg$f20(s1, s2, s3, s4, s5, s6);
1683
+ s0 = peg$f21(s1, s2, s3, s4, s5, s6);
1600
1684
  }
1601
1685
  else {
1602
1686
  peg$currPos = s0;
@@ -1626,7 +1710,7 @@ function peg$parse(input, options) {
1626
1710
  else {
1627
1711
  s1 = peg$FAILED;
1628
1712
  if (peg$silentFails === 0) {
1629
- peg$fail(peg$e14);
1713
+ peg$fail(peg$e16);
1630
1714
  }
1631
1715
  }
1632
1716
  if (s1 !== peg$FAILED) {
@@ -1637,7 +1721,7 @@ function peg$parse(input, options) {
1637
1721
  else {
1638
1722
  s2 = peg$FAILED;
1639
1723
  if (peg$silentFails === 0) {
1640
- peg$fail(peg$e16);
1724
+ peg$fail(peg$e18);
1641
1725
  }
1642
1726
  }
1643
1727
  if (s2 !== peg$FAILED) {
@@ -1648,7 +1732,7 @@ function peg$parse(input, options) {
1648
1732
  else {
1649
1733
  s3 = peg$FAILED;
1650
1734
  if (peg$silentFails === 0) {
1651
- peg$fail(peg$e15);
1735
+ peg$fail(peg$e17);
1652
1736
  }
1653
1737
  }
1654
1738
  if (s3 !== peg$FAILED) {
@@ -1659,7 +1743,7 @@ function peg$parse(input, options) {
1659
1743
  else {
1660
1744
  s4 = peg$FAILED;
1661
1745
  if (peg$silentFails === 0) {
1662
- peg$fail(peg$e16);
1746
+ peg$fail(peg$e18);
1663
1747
  }
1664
1748
  }
1665
1749
  if (s4 !== peg$FAILED) {
@@ -1675,7 +1759,7 @@ function peg$parse(input, options) {
1675
1759
  else {
1676
1760
  s7 = peg$FAILED;
1677
1761
  if (peg$silentFails === 0) {
1678
- peg$fail(peg$e12);
1762
+ peg$fail(peg$e14);
1679
1763
  }
1680
1764
  }
1681
1765
  if (s7 === peg$FAILED) {
@@ -1683,7 +1767,7 @@ function peg$parse(input, options) {
1683
1767
  }
1684
1768
  s6 = input.substring(s6, peg$currPos);
1685
1769
  peg$savedPos = s0;
1686
- s0 = peg$f21(s1, s2, s3, s4, s5, s6);
1770
+ s0 = peg$f22(s1, s2, s3, s4, s5, s6);
1687
1771
  }
1688
1772
  else {
1689
1773
  peg$currPos = s0;
@@ -1713,18 +1797,18 @@ function peg$parse(input, options) {
1713
1797
  else {
1714
1798
  s1 = peg$FAILED;
1715
1799
  if (peg$silentFails === 0) {
1716
- peg$fail(peg$e14);
1800
+ peg$fail(peg$e16);
1717
1801
  }
1718
1802
  }
1719
1803
  if (s1 !== peg$FAILED) {
1720
1804
  if (input.charCodeAt(peg$currPos) === 120) {
1721
- s2 = peg$c10;
1805
+ s2 = peg$c11;
1722
1806
  peg$currPos++;
1723
1807
  }
1724
1808
  else {
1725
1809
  s2 = peg$FAILED;
1726
1810
  if (peg$silentFails === 0) {
1727
- peg$fail(peg$e17);
1811
+ peg$fail(peg$e19);
1728
1812
  }
1729
1813
  }
1730
1814
  if (s2 !== peg$FAILED) {
@@ -1735,7 +1819,7 @@ function peg$parse(input, options) {
1735
1819
  else {
1736
1820
  s3 = peg$FAILED;
1737
1821
  if (peg$silentFails === 0) {
1738
- peg$fail(peg$e15);
1822
+ peg$fail(peg$e17);
1739
1823
  }
1740
1824
  }
1741
1825
  if (s3 !== peg$FAILED) {
@@ -1746,7 +1830,7 @@ function peg$parse(input, options) {
1746
1830
  else {
1747
1831
  s4 = peg$FAILED;
1748
1832
  if (peg$silentFails === 0) {
1749
- peg$fail(peg$e16);
1833
+ peg$fail(peg$e18);
1750
1834
  }
1751
1835
  }
1752
1836
  if (s4 !== peg$FAILED) {
@@ -1762,7 +1846,7 @@ function peg$parse(input, options) {
1762
1846
  else {
1763
1847
  s7 = peg$FAILED;
1764
1848
  if (peg$silentFails === 0) {
1765
- peg$fail(peg$e12);
1849
+ peg$fail(peg$e14);
1766
1850
  }
1767
1851
  }
1768
1852
  if (s7 === peg$FAILED) {
@@ -1770,7 +1854,7 @@ function peg$parse(input, options) {
1770
1854
  }
1771
1855
  s6 = input.substring(s6, peg$currPos);
1772
1856
  peg$savedPos = s0;
1773
- s0 = peg$f22(s1, s3, s4, s5, s6);
1857
+ s0 = peg$f23(s1, s3, s4, s5, s6);
1774
1858
  }
1775
1859
  else {
1776
1860
  peg$currPos = s0;
@@ -1800,7 +1884,7 @@ function peg$parse(input, options) {
1800
1884
  else {
1801
1885
  s1 = peg$FAILED;
1802
1886
  if (peg$silentFails === 0) {
1803
- peg$fail(peg$e14);
1887
+ peg$fail(peg$e16);
1804
1888
  }
1805
1889
  }
1806
1890
  if (s1 !== peg$FAILED) {
@@ -1811,7 +1895,7 @@ function peg$parse(input, options) {
1811
1895
  else {
1812
1896
  s2 = peg$FAILED;
1813
1897
  if (peg$silentFails === 0) {
1814
- peg$fail(peg$e15);
1898
+ peg$fail(peg$e17);
1815
1899
  }
1816
1900
  }
1817
1901
  if (s2 !== peg$FAILED) {
@@ -1822,7 +1906,7 @@ function peg$parse(input, options) {
1822
1906
  else {
1823
1907
  s3 = peg$FAILED;
1824
1908
  if (peg$silentFails === 0) {
1825
- peg$fail(peg$e16);
1909
+ peg$fail(peg$e18);
1826
1910
  }
1827
1911
  }
1828
1912
  if (s3 !== peg$FAILED) {
@@ -1838,7 +1922,7 @@ function peg$parse(input, options) {
1838
1922
  else {
1839
1923
  s6 = peg$FAILED;
1840
1924
  if (peg$silentFails === 0) {
1841
- peg$fail(peg$e12);
1925
+ peg$fail(peg$e14);
1842
1926
  }
1843
1927
  }
1844
1928
  if (s6 === peg$FAILED) {
@@ -1846,7 +1930,7 @@ function peg$parse(input, options) {
1846
1930
  }
1847
1931
  s5 = input.substring(s5, peg$currPos);
1848
1932
  peg$savedPos = s0;
1849
- s0 = peg$f23(s1, s2, s3, s4, s5);
1933
+ s0 = peg$f24(s1, s2, s3, s4, s5);
1850
1934
  }
1851
1935
  else {
1852
1936
  peg$currPos = s0;
@@ -1881,18 +1965,18 @@ function peg$parse(input, options) {
1881
1965
  else {
1882
1966
  s1 = peg$FAILED;
1883
1967
  if (peg$silentFails === 0) {
1884
- peg$fail(peg$e15);
1968
+ peg$fail(peg$e17);
1885
1969
  }
1886
1970
  }
1887
1971
  if (s1 !== peg$FAILED) {
1888
1972
  if (input.charCodeAt(peg$currPos) === 120) {
1889
- s2 = peg$c10;
1973
+ s2 = peg$c11;
1890
1974
  peg$currPos++;
1891
1975
  }
1892
1976
  else {
1893
1977
  s2 = peg$FAILED;
1894
1978
  if (peg$silentFails === 0) {
1895
- peg$fail(peg$e17);
1979
+ peg$fail(peg$e19);
1896
1980
  }
1897
1981
  }
1898
1982
  if (s2 !== peg$FAILED) {
@@ -1903,7 +1987,7 @@ function peg$parse(input, options) {
1903
1987
  else {
1904
1988
  s3 = peg$FAILED;
1905
1989
  if (peg$silentFails === 0) {
1906
- peg$fail(peg$e15);
1990
+ peg$fail(peg$e17);
1907
1991
  }
1908
1992
  }
1909
1993
  if (s3 !== peg$FAILED) {
@@ -1914,7 +1998,7 @@ function peg$parse(input, options) {
1914
1998
  else {
1915
1999
  s4 = peg$FAILED;
1916
2000
  if (peg$silentFails === 0) {
1917
- peg$fail(peg$e16);
2001
+ peg$fail(peg$e18);
1918
2002
  }
1919
2003
  }
1920
2004
  if (s4 !== peg$FAILED) {
@@ -1930,7 +2014,7 @@ function peg$parse(input, options) {
1930
2014
  else {
1931
2015
  s7 = peg$FAILED;
1932
2016
  if (peg$silentFails === 0) {
1933
- peg$fail(peg$e12);
2017
+ peg$fail(peg$e14);
1934
2018
  }
1935
2019
  }
1936
2020
  if (s7 === peg$FAILED) {
@@ -1938,7 +2022,7 @@ function peg$parse(input, options) {
1938
2022
  }
1939
2023
  s6 = input.substring(s6, peg$currPos);
1940
2024
  peg$savedPos = s0;
1941
- s0 = peg$f24(s1, s3, s4, s5, s6);
2025
+ s0 = peg$f25(s1, s3, s4, s5, s6);
1942
2026
  }
1943
2027
  else {
1944
2028
  peg$currPos = s0;
@@ -1971,7 +2055,7 @@ function peg$parse(input, options) {
1971
2055
  else {
1972
2056
  s1 = peg$FAILED;
1973
2057
  if (peg$silentFails === 0) {
1974
- peg$fail(peg$e15);
2058
+ peg$fail(peg$e17);
1975
2059
  }
1976
2060
  }
1977
2061
  if (s1 !== peg$FAILED) {
@@ -1982,7 +2066,7 @@ function peg$parse(input, options) {
1982
2066
  else {
1983
2067
  s2 = peg$FAILED;
1984
2068
  if (peg$silentFails === 0) {
1985
- peg$fail(peg$e16);
2069
+ peg$fail(peg$e18);
1986
2070
  }
1987
2071
  }
1988
2072
  if (s2 !== peg$FAILED) {
@@ -1998,7 +2082,7 @@ function peg$parse(input, options) {
1998
2082
  else {
1999
2083
  s5 = peg$FAILED;
2000
2084
  if (peg$silentFails === 0) {
2001
- peg$fail(peg$e12);
2085
+ peg$fail(peg$e14);
2002
2086
  }
2003
2087
  }
2004
2088
  if (s5 === peg$FAILED) {
@@ -2006,7 +2090,7 @@ function peg$parse(input, options) {
2006
2090
  }
2007
2091
  s4 = input.substring(s4, peg$currPos);
2008
2092
  peg$savedPos = s0;
2009
- s0 = peg$f25(s1, s2, s3, s4);
2093
+ s0 = peg$f26(s1, s2, s3, s4);
2010
2094
  }
2011
2095
  else {
2012
2096
  peg$currPos = s0;
@@ -2023,13 +2107,13 @@ function peg$parse(input, options) {
2023
2107
  let s0, s1, s2;
2024
2108
  s0 = peg$currPos;
2025
2109
  if (input.charCodeAt(peg$currPos) === 61) {
2026
- s1 = peg$c11;
2110
+ s1 = peg$c12;
2027
2111
  peg$currPos++;
2028
2112
  }
2029
2113
  else {
2030
2114
  s1 = peg$FAILED;
2031
2115
  if (peg$silentFails === 0) {
2032
- peg$fail(peg$e18);
2116
+ peg$fail(peg$e20);
2033
2117
  }
2034
2118
  }
2035
2119
  if (s1 !== peg$FAILED) {
@@ -2040,12 +2124,12 @@ function peg$parse(input, options) {
2040
2124
  else {
2041
2125
  s2 = peg$FAILED;
2042
2126
  if (peg$silentFails === 0) {
2043
- peg$fail(peg$e19);
2127
+ peg$fail(peg$e21);
2044
2128
  }
2045
2129
  }
2046
2130
  if (s2 !== peg$FAILED) {
2047
2131
  peg$savedPos = s0;
2048
- s0 = peg$f26(s2);
2132
+ s0 = peg$f27(s2);
2049
2133
  }
2050
2134
  else {
2051
2135
  peg$currPos = s0;
@@ -2062,13 +2146,13 @@ function peg$parse(input, options) {
2062
2146
  let s0, s1, s2, s3, s4, s5;
2063
2147
  s0 = peg$currPos;
2064
2148
  if (input.charCodeAt(peg$currPos) === 40) {
2065
- s1 = peg$c12;
2149
+ s1 = peg$c13;
2066
2150
  peg$currPos++;
2067
2151
  }
2068
2152
  else {
2069
2153
  s1 = peg$FAILED;
2070
2154
  if (peg$silentFails === 0) {
2071
- peg$fail(peg$e20);
2155
+ peg$fail(peg$e22);
2072
2156
  }
2073
2157
  }
2074
2158
  if (s1 !== peg$FAILED) {
@@ -2077,18 +2161,18 @@ function peg$parse(input, options) {
2077
2161
  if (s3 !== peg$FAILED) {
2078
2162
  s4 = peg$parse_();
2079
2163
  if (input.charCodeAt(peg$currPos) === 41) {
2080
- s5 = peg$c13;
2164
+ s5 = peg$c14;
2081
2165
  peg$currPos++;
2082
2166
  }
2083
2167
  else {
2084
2168
  s5 = peg$FAILED;
2085
2169
  if (peg$silentFails === 0) {
2086
- peg$fail(peg$e21);
2170
+ peg$fail(peg$e23);
2087
2171
  }
2088
2172
  }
2089
2173
  if (s5 !== peg$FAILED) {
2090
2174
  peg$savedPos = s0;
2091
- s0 = peg$f27(s3);
2175
+ s0 = peg$f28(s3);
2092
2176
  }
2093
2177
  else {
2094
2178
  peg$currPos = s0;
@@ -2118,13 +2202,13 @@ function peg$parse(input, options) {
2118
2202
  let s0, s1, s2, s3, s4;
2119
2203
  s0 = peg$currPos;
2120
2204
  if (input.charCodeAt(peg$currPos) === 36) {
2121
- s1 = peg$c14;
2205
+ s1 = peg$c15;
2122
2206
  peg$currPos++;
2123
2207
  }
2124
2208
  else {
2125
2209
  s1 = peg$FAILED;
2126
2210
  if (peg$silentFails === 0) {
2127
- peg$fail(peg$e22);
2211
+ peg$fail(peg$e24);
2128
2212
  }
2129
2213
  }
2130
2214
  if (s1 !== peg$FAILED) {
@@ -2137,7 +2221,7 @@ function peg$parse(input, options) {
2137
2221
  else {
2138
2222
  s4 = peg$FAILED;
2139
2223
  if (peg$silentFails === 0) {
2140
- peg$fail(peg$e9);
2224
+ peg$fail(peg$e11);
2141
2225
  }
2142
2226
  }
2143
2227
  if (s4 !== peg$FAILED) {
@@ -2150,7 +2234,7 @@ function peg$parse(input, options) {
2150
2234
  else {
2151
2235
  s4 = peg$FAILED;
2152
2236
  if (peg$silentFails === 0) {
2153
- peg$fail(peg$e9);
2237
+ peg$fail(peg$e11);
2154
2238
  }
2155
2239
  }
2156
2240
  }
@@ -2166,7 +2250,7 @@ function peg$parse(input, options) {
2166
2250
  }
2167
2251
  if (s2 !== peg$FAILED) {
2168
2252
  peg$savedPos = s0;
2169
- s0 = peg$f28(s2);
2253
+ s0 = peg$f29(s2);
2170
2254
  }
2171
2255
  else {
2172
2256
  peg$currPos = s0;
@@ -2181,47 +2265,47 @@ function peg$parse(input, options) {
2181
2265
  }
2182
2266
  function peg$parsenag_import() {
2183
2267
  let s0;
2184
- if (input.substr(peg$currPos, 2) === peg$c15) {
2185
- s0 = peg$c15;
2268
+ if (input.substr(peg$currPos, 2) === peg$c16) {
2269
+ s0 = peg$c16;
2186
2270
  peg$currPos += 2;
2187
2271
  }
2188
2272
  else {
2189
2273
  s0 = peg$FAILED;
2190
2274
  if (peg$silentFails === 0) {
2191
- peg$fail(peg$e23);
2275
+ peg$fail(peg$e25);
2192
2276
  }
2193
2277
  }
2194
2278
  if (s0 === peg$FAILED) {
2195
- if (input.substr(peg$currPos, 2) === peg$c16) {
2196
- s0 = peg$c16;
2279
+ if (input.substr(peg$currPos, 2) === peg$c17) {
2280
+ s0 = peg$c17;
2197
2281
  peg$currPos += 2;
2198
2282
  }
2199
2283
  else {
2200
2284
  s0 = peg$FAILED;
2201
2285
  if (peg$silentFails === 0) {
2202
- peg$fail(peg$e24);
2286
+ peg$fail(peg$e26);
2203
2287
  }
2204
2288
  }
2205
2289
  if (s0 === peg$FAILED) {
2206
- if (input.substr(peg$currPos, 2) === peg$c17) {
2207
- s0 = peg$c17;
2290
+ if (input.substr(peg$currPos, 2) === peg$c18) {
2291
+ s0 = peg$c18;
2208
2292
  peg$currPos += 2;
2209
2293
  }
2210
2294
  else {
2211
2295
  s0 = peg$FAILED;
2212
2296
  if (peg$silentFails === 0) {
2213
- peg$fail(peg$e25);
2297
+ peg$fail(peg$e27);
2214
2298
  }
2215
2299
  }
2216
2300
  if (s0 === peg$FAILED) {
2217
- if (input.substr(peg$currPos, 2) === peg$c18) {
2218
- s0 = peg$c18;
2301
+ if (input.substr(peg$currPos, 2) === peg$c19) {
2302
+ s0 = peg$c19;
2219
2303
  peg$currPos += 2;
2220
2304
  }
2221
2305
  else {
2222
2306
  s0 = peg$FAILED;
2223
2307
  if (peg$silentFails === 0) {
2224
- peg$fail(peg$e26);
2308
+ peg$fail(peg$e28);
2225
2309
  }
2226
2310
  }
2227
2311
  if (s0 === peg$FAILED) {
@@ -2232,29 +2316,29 @@ function peg$parse(input, options) {
2232
2316
  else {
2233
2317
  s0 = peg$FAILED;
2234
2318
  if (peg$silentFails === 0) {
2235
- peg$fail(peg$e27);
2319
+ peg$fail(peg$e29);
2236
2320
  }
2237
2321
  }
2238
2322
  if (s0 === peg$FAILED) {
2239
- if (input.substr(peg$currPos, 3) === peg$c19) {
2240
- s0 = peg$c19;
2323
+ if (input.substr(peg$currPos, 3) === peg$c20) {
2324
+ s0 = peg$c20;
2241
2325
  peg$currPos += 3;
2242
2326
  }
2243
2327
  else {
2244
2328
  s0 = peg$FAILED;
2245
2329
  if (peg$silentFails === 0) {
2246
- peg$fail(peg$e28);
2330
+ peg$fail(peg$e30);
2247
2331
  }
2248
2332
  }
2249
2333
  if (s0 === peg$FAILED) {
2250
- if (input.substr(peg$currPos, 3) === peg$c20) {
2251
- s0 = peg$c20;
2334
+ if (input.substr(peg$currPos, 3) === peg$c21) {
2335
+ s0 = peg$c21;
2252
2336
  peg$currPos += 3;
2253
2337
  }
2254
2338
  else {
2255
2339
  s0 = peg$FAILED;
2256
2340
  if (peg$silentFails === 0) {
2257
- peg$fail(peg$e29);
2341
+ peg$fail(peg$e31);
2258
2342
  }
2259
2343
  }
2260
2344
  if (s0 === peg$FAILED) {
@@ -2265,7 +2349,7 @@ function peg$parse(input, options) {
2265
2349
  else {
2266
2350
  s0 = peg$FAILED;
2267
2351
  if (peg$silentFails === 0) {
2268
- peg$fail(peg$e30);
2352
+ peg$fail(peg$e32);
2269
2353
  }
2270
2354
  }
2271
2355
  }
@@ -2289,13 +2373,13 @@ function peg$parse(input, options) {
2289
2373
  let s0, s1, s2, s3, s4;
2290
2374
  s0 = peg$currPos;
2291
2375
  if (input.charCodeAt(peg$currPos) === 123) {
2292
- s1 = peg$c21;
2376
+ s1 = peg$c22;
2293
2377
  peg$currPos++;
2294
2378
  }
2295
2379
  else {
2296
2380
  s1 = peg$FAILED;
2297
2381
  if (peg$silentFails === 0) {
2298
- peg$fail(peg$e31);
2382
+ peg$fail(peg$e33);
2299
2383
  }
2300
2384
  }
2301
2385
  if (s1 !== peg$FAILED) {
@@ -2308,7 +2392,7 @@ function peg$parse(input, options) {
2308
2392
  else {
2309
2393
  s4 = peg$FAILED;
2310
2394
  if (peg$silentFails === 0) {
2311
- peg$fail(peg$e32);
2395
+ peg$fail(peg$e34);
2312
2396
  }
2313
2397
  }
2314
2398
  while (s4 !== peg$FAILED) {
@@ -2320,24 +2404,24 @@ function peg$parse(input, options) {
2320
2404
  else {
2321
2405
  s4 = peg$FAILED;
2322
2406
  if (peg$silentFails === 0) {
2323
- peg$fail(peg$e32);
2407
+ peg$fail(peg$e34);
2324
2408
  }
2325
2409
  }
2326
2410
  }
2327
2411
  s2 = input.substring(s2, peg$currPos);
2328
2412
  if (input.charCodeAt(peg$currPos) === 125) {
2329
- s3 = peg$c22;
2413
+ s3 = peg$c23;
2330
2414
  peg$currPos++;
2331
2415
  }
2332
2416
  else {
2333
2417
  s3 = peg$FAILED;
2334
2418
  if (peg$silentFails === 0) {
2335
- peg$fail(peg$e33);
2419
+ peg$fail(peg$e35);
2336
2420
  }
2337
2421
  }
2338
2422
  if (s3 !== peg$FAILED) {
2339
2423
  peg$savedPos = s0;
2340
- s0 = peg$f29(s2);
2424
+ s0 = peg$f30(s2);
2341
2425
  }
2342
2426
  else {
2343
2427
  peg$currPos = s0;
@@ -2354,13 +2438,13 @@ function peg$parse(input, options) {
2354
2438
  let s0, s1, s2, s3, s4, s5, s6;
2355
2439
  s0 = peg$currPos;
2356
2440
  if (input.charCodeAt(peg$currPos) === 59) {
2357
- s1 = peg$c23;
2441
+ s1 = peg$c24;
2358
2442
  peg$currPos++;
2359
2443
  }
2360
2444
  else {
2361
2445
  s1 = peg$FAILED;
2362
2446
  if (peg$silentFails === 0) {
2363
- peg$fail(peg$e34);
2447
+ peg$fail(peg$e36);
2364
2448
  }
2365
2449
  }
2366
2450
  if (s1 !== peg$FAILED) {
@@ -2376,7 +2460,7 @@ function peg$parse(input, options) {
2376
2460
  else {
2377
2461
  s6 = peg$FAILED;
2378
2462
  if (peg$silentFails === 0) {
2379
- peg$fail(peg$e35);
2463
+ peg$fail(peg$e37);
2380
2464
  }
2381
2465
  }
2382
2466
  peg$silentFails--;
@@ -2395,7 +2479,7 @@ function peg$parse(input, options) {
2395
2479
  else {
2396
2480
  s6 = peg$FAILED;
2397
2481
  if (peg$silentFails === 0) {
2398
- peg$fail(peg$e36);
2482
+ peg$fail(peg$e6);
2399
2483
  }
2400
2484
  }
2401
2485
  if (s6 !== peg$FAILED) {
@@ -2423,7 +2507,7 @@ function peg$parse(input, options) {
2423
2507
  else {
2424
2508
  s6 = peg$FAILED;
2425
2509
  if (peg$silentFails === 0) {
2426
- peg$fail(peg$e35);
2510
+ peg$fail(peg$e37);
2427
2511
  }
2428
2512
  }
2429
2513
  peg$silentFails--;
@@ -2442,7 +2526,7 @@ function peg$parse(input, options) {
2442
2526
  else {
2443
2527
  s6 = peg$FAILED;
2444
2528
  if (peg$silentFails === 0) {
2445
- peg$fail(peg$e36);
2529
+ peg$fail(peg$e6);
2446
2530
  }
2447
2531
  }
2448
2532
  if (s6 !== peg$FAILED) {
@@ -2461,7 +2545,7 @@ function peg$parse(input, options) {
2461
2545
  }
2462
2546
  s2 = input.substring(s2, peg$currPos);
2463
2547
  peg$savedPos = s0;
2464
- s0 = peg$f30(s2);
2548
+ s0 = peg$f31(s2);
2465
2549
  }
2466
2550
  else {
2467
2551
  peg$currPos = s0;
@@ -2479,7 +2563,7 @@ function peg$parse(input, options) {
2479
2563
  else {
2480
2564
  s1 = peg$FAILED;
2481
2565
  if (peg$silentFails === 0) {
2482
- peg$fail(peg$e37);
2566
+ peg$fail(peg$e38);
2483
2567
  }
2484
2568
  }
2485
2569
  if (s1 === peg$FAILED) {
@@ -2494,7 +2578,7 @@ function peg$parse(input, options) {
2494
2578
  else {
2495
2579
  s1 = peg$FAILED;
2496
2580
  if (peg$silentFails === 0) {
2497
- peg$fail(peg$e37);
2581
+ peg$fail(peg$e38);
2498
2582
  }
2499
2583
  }
2500
2584
  if (s1 === peg$FAILED) {
@@ -2507,13 +2591,13 @@ function peg$parse(input, options) {
2507
2591
  let s0, s1, s2, s3, s4, s5;
2508
2592
  s0 = peg$currPos;
2509
2593
  if (input.charCodeAt(peg$currPos) === 37) {
2510
- s1 = peg$c24;
2594
+ s1 = peg$c25;
2511
2595
  peg$currPos++;
2512
2596
  }
2513
2597
  else {
2514
2598
  s1 = peg$FAILED;
2515
2599
  if (peg$silentFails === 0) {
2516
- peg$fail(peg$e38);
2600
+ peg$fail(peg$e39);
2517
2601
  }
2518
2602
  }
2519
2603
  if (s1 !== peg$FAILED) {
@@ -2528,7 +2612,7 @@ function peg$parse(input, options) {
2528
2612
  else {
2529
2613
  s5 = peg$FAILED;
2530
2614
  if (peg$silentFails === 0) {
2531
- peg$fail(peg$e35);
2615
+ peg$fail(peg$e37);
2532
2616
  }
2533
2617
  }
2534
2618
  peg$silentFails--;
@@ -2547,7 +2631,7 @@ function peg$parse(input, options) {
2547
2631
  else {
2548
2632
  s5 = peg$FAILED;
2549
2633
  if (peg$silentFails === 0) {
2550
- peg$fail(peg$e36);
2634
+ peg$fail(peg$e6);
2551
2635
  }
2552
2636
  }
2553
2637
  if (s5 !== peg$FAILED) {
@@ -2575,7 +2659,7 @@ function peg$parse(input, options) {
2575
2659
  else {
2576
2660
  s5 = peg$FAILED;
2577
2661
  if (peg$silentFails === 0) {
2578
- peg$fail(peg$e35);
2662
+ peg$fail(peg$e37);
2579
2663
  }
2580
2664
  }
2581
2665
  peg$silentFails--;
@@ -2594,7 +2678,7 @@ function peg$parse(input, options) {
2594
2678
  else {
2595
2679
  s5 = peg$FAILED;
2596
2680
  if (peg$silentFails === 0) {
2597
- peg$fail(peg$e36);
2681
+ peg$fail(peg$e6);
2598
2682
  }
2599
2683
  }
2600
2684
  if (s5 !== peg$FAILED) {
@@ -2618,7 +2702,7 @@ function peg$parse(input, options) {
2618
2702
  else {
2619
2703
  s3 = peg$FAILED;
2620
2704
  if (peg$silentFails === 0) {
2621
- peg$fail(peg$e35);
2705
+ peg$fail(peg$e37);
2622
2706
  }
2623
2707
  }
2624
2708
  if (s3 === peg$FAILED) {