@retorquere/bibtex-parser 6.1.0 → 6.2.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/grammar.js CHANGED
@@ -207,25 +207,26 @@ function peg$parse(input, options) {
207
207
  var peg$r6 = /^[})]/;
208
208
  var peg$r7 = /^[^ \t\r\n,]/;
209
209
  var peg$r8 = /^[_:a-zA-Z0-9\-]/;
210
- var peg$r9 = /^[a-zA-Z]/;
211
- var peg$r10 = /^[^\^_${}\\]/;
212
- var peg$r11 = /^[^\^_${}"\\]/;
213
- var peg$r12 = /^[0-9]/;
214
- var peg$r13 = /^[a-zA-Z0-9]/;
215
- var peg$r14 = /^[ij]/;
216
- var peg$r15 = /^[^\r\n]/;
217
- var peg$r16 = /^[_\^]/;
218
- var peg$r17 = /^[^A-Za-z0-9\t\r\n]/;
219
- var peg$r18 = /^[A-Za-z]/;
220
- var peg$r19 = /^[^\]]/;
221
- var peg$r20 = /^[^ \t\^_${}\\]/;
222
- var peg$r21 = /^[a-zA-Z\-_]/;
223
- var peg$r22 = /^[a-zA-Z0-9\-&_:]/;
224
- var peg$r23 = /^['`"=~\^.]/;
225
- var peg$r24 = /^['`"=~\^.cbuvdrHk]/;
226
- var peg$r25 = /^[\r\n]/;
227
- var peg$r26 = /^[ \t]/;
228
- var peg$r27 = /^[ \t\n\r]/;
210
+ var peg$r9 = /^[^{}"]/;
211
+ var peg$r10 = /^[a-zA-Z]/;
212
+ var peg$r11 = /^[^\^_${}\\]/;
213
+ var peg$r12 = /^[^\^_${}"\\]/;
214
+ var peg$r13 = /^[0-9]/;
215
+ var peg$r14 = /^[a-zA-Z0-9]/;
216
+ var peg$r15 = /^[ij]/;
217
+ var peg$r16 = /^[^\r\n]/;
218
+ var peg$r17 = /^[_\^]/;
219
+ var peg$r18 = /^[^A-Za-z0-9\t\r\n]/;
220
+ var peg$r19 = /^[A-Za-z]/;
221
+ var peg$r20 = /^[^\]]/;
222
+ var peg$r21 = /^[^ \t\^_${}\\]/;
223
+ var peg$r22 = /^[a-zA-Z\-_]/;
224
+ var peg$r23 = /^[a-zA-Z0-9\-&_:]/;
225
+ var peg$r24 = /^['`"=~\^.]/;
226
+ var peg$r25 = /^['`"=~\^.cbuvdrHk]/;
227
+ var peg$r26 = /^[\r\n]/;
228
+ var peg$r27 = /^[ \t]/;
229
+ var peg$r28 = /^[ \t\n\r]/;
229
230
 
230
231
  var peg$e0 = peg$literalExpectation("@", false);
231
232
  var peg$e1 = peg$literalExpectation("comment", true);
@@ -244,49 +245,50 @@ function peg$parse(input, options) {
244
245
  var peg$e14 = peg$literalExpectation(",", false);
245
246
  var peg$e15 = peg$classExpectation(["_", ":", ["a", "z"], ["A", "Z"], ["0", "9"], "-"], false, false);
246
247
  var peg$e16 = peg$literalExpectation("\"", false);
247
- var peg$e17 = peg$literalExpectation("{\\verb", false);
248
- var peg$e18 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false);
249
- var peg$e19 = peg$classExpectation(["^", "_", "$", "{", "}", "\\"], true, false);
250
- var peg$e20 = peg$classExpectation(["^", "_", "$", "{", "}", "\"", "\\"], true, false);
251
- var peg$e21 = peg$classExpectation([["0", "9"]], false, false);
252
- var peg$e22 = peg$literalExpectation("\\begin{", false);
253
- var peg$e23 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false);
254
- var peg$e24 = peg$literalExpectation("\\end{", false);
255
- var peg$e25 = peg$literalExpectation("{\\", false);
256
- var peg$e26 = peg$literalExpectation("\\", false);
257
- var peg$e27 = peg$classExpectation(["i", "j"], false, false);
258
- var peg$e28 = peg$literalExpectation("$", false);
259
- var peg$e29 = peg$literalExpectation("$$", false);
260
- var peg$e30 = peg$literalExpectation("\\[", false);
261
- var peg$e31 = peg$literalExpectation("\\]", false);
262
- var peg$e32 = peg$literalExpectation("%", false);
263
- var peg$e33 = peg$classExpectation(["\r", "\n"], true, false);
264
- var peg$e34 = peg$classExpectation(["_", "^"], false, false);
265
- var peg$e35 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "\t", "\r", "\n"], true, false);
266
- var peg$e36 = peg$literalExpectation("newcommand", false);
267
- var peg$e37 = peg$literalExpectation("href", false);
268
- var peg$e38 = peg$literalExpectation("begin", false);
269
- var peg$e39 = peg$literalExpectation("end", false);
270
- var peg$e40 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false);
271
- var peg$e41 = peg$literalExpectation("[", false);
272
- var peg$e42 = peg$classExpectation(["]"], true, false);
273
- var peg$e43 = peg$literalExpectation("]", false);
274
- var peg$e44 = peg$classExpectation([" ", "\t", "^", "_", "$", "{", "}", "\\"], true, false);
275
- var peg$e45 = peg$classExpectation([["a", "z"], ["A", "Z"], "-", "_"], false, false);
276
- var peg$e46 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "-", "&", "_", ":"], false, false);
277
- var peg$e47 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", "."], false, false);
278
- var peg$e48 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", ".", "c", "b", "u", "v", "d", "r", "H", "k"], false, false);
279
- var peg$e49 = peg$literalExpectation("=", false);
280
- var peg$e50 = peg$literalExpectation("#", false);
281
- var peg$e51 = peg$classExpectation(["\r", "\n"], false, false);
282
- var peg$e52 = peg$otherExpectation("Mandatory Horizontal Whitespace");
283
- var peg$e53 = peg$classExpectation([" ", "\t"], false, false);
284
- var peg$e54 = peg$otherExpectation("Optional Horizontal Whitespace");
285
- var peg$e55 = peg$otherExpectation("Mandatory Vertical Whitespace");
286
- var peg$e56 = peg$otherExpectation("Optional Vertical Whitespace");
287
- var peg$e57 = peg$otherExpectation("Mandatory Whitespace");
288
- var peg$e58 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
289
- var peg$e59 = peg$otherExpectation("Optional Whitespace");
248
+ var peg$e17 = peg$classExpectation(["{", "}", "\""], true, false);
249
+ var peg$e18 = peg$literalExpectation("{\\verb", false);
250
+ var peg$e19 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false);
251
+ var peg$e20 = peg$classExpectation(["^", "_", "$", "{", "}", "\\"], true, false);
252
+ var peg$e21 = peg$classExpectation(["^", "_", "$", "{", "}", "\"", "\\"], true, false);
253
+ var peg$e22 = peg$classExpectation([["0", "9"]], false, false);
254
+ var peg$e23 = peg$literalExpectation("\\begin{", false);
255
+ var peg$e24 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false);
256
+ var peg$e25 = peg$literalExpectation("\\end{", false);
257
+ var peg$e26 = peg$literalExpectation("{\\", false);
258
+ var peg$e27 = peg$literalExpectation("\\", false);
259
+ var peg$e28 = peg$classExpectation(["i", "j"], false, false);
260
+ var peg$e29 = peg$literalExpectation("$", false);
261
+ var peg$e30 = peg$literalExpectation("$$", false);
262
+ var peg$e31 = peg$literalExpectation("\\[", false);
263
+ var peg$e32 = peg$literalExpectation("\\]", false);
264
+ var peg$e33 = peg$literalExpectation("%", false);
265
+ var peg$e34 = peg$classExpectation(["\r", "\n"], true, false);
266
+ var peg$e35 = peg$classExpectation(["_", "^"], false, false);
267
+ var peg$e36 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "\t", "\r", "\n"], true, false);
268
+ var peg$e37 = peg$literalExpectation("newcommand", false);
269
+ var peg$e38 = peg$literalExpectation("href", false);
270
+ var peg$e39 = peg$literalExpectation("begin", false);
271
+ var peg$e40 = peg$literalExpectation("end", false);
272
+ var peg$e41 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false);
273
+ var peg$e42 = peg$literalExpectation("[", false);
274
+ var peg$e43 = peg$classExpectation(["]"], true, false);
275
+ var peg$e44 = peg$literalExpectation("]", false);
276
+ var peg$e45 = peg$classExpectation([" ", "\t", "^", "_", "$", "{", "}", "\\"], true, false);
277
+ var peg$e46 = peg$classExpectation([["a", "z"], ["A", "Z"], "-", "_"], false, false);
278
+ var peg$e47 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "-", "&", "_", ":"], false, false);
279
+ var peg$e48 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", "."], false, false);
280
+ var peg$e49 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", ".", "c", "b", "u", "v", "d", "r", "H", "k"], false, false);
281
+ var peg$e50 = peg$literalExpectation("=", false);
282
+ var peg$e51 = peg$literalExpectation("#", false);
283
+ var peg$e52 = peg$classExpectation(["\r", "\n"], false, false);
284
+ var peg$e53 = peg$otherExpectation("Mandatory Horizontal Whitespace");
285
+ var peg$e54 = peg$classExpectation([" ", "\t"], false, false);
286
+ var peg$e55 = peg$otherExpectation("Optional Horizontal Whitespace");
287
+ var peg$e56 = peg$otherExpectation("Mandatory Vertical Whitespace");
288
+ var peg$e57 = peg$otherExpectation("Optional Vertical Whitespace");
289
+ var peg$e58 = peg$otherExpectation("Mandatory Whitespace");
290
+ var peg$e59 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
291
+ var peg$e60 = peg$otherExpectation("Optional Whitespace");
290
292
 
291
293
  var peg$f0 = function(r) {
292
294
  return {
@@ -401,32 +403,40 @@ function peg$parse(input, options) {
401
403
  };
402
404
  var peg$f15 = function(name) { return name.toLowerCase() };
403
405
  var peg$f16 = function(v) {
404
- v = v || {
406
+ return basicTextConversions({
405
407
  kind: 'Text',
406
408
  loc: location(),
407
409
  source: text(),
408
- value: '',
409
- }
410
- v.mode = 'verbatim'
411
- return basicTextConversions(v)
410
+ value: normalizeWhitespace((v || '').trim()),
411
+ mode: 'verbatim',
412
+ })
412
413
  };
413
414
  var peg$f17 = function(v) {
414
415
  return basicTextConversions({
415
416
  kind: 'Text',
416
417
  loc: location(),
417
418
  source: text(),
418
- value: v.join('').trim(),
419
+ value: normalizeWhitespace(v.join('').trim()),
419
420
  mode: 'verbatim',
420
421
  })
421
422
  };
422
423
  var peg$f18 = function(v) { return v };
423
- var peg$f19 = function(v) { return '{' + v.join('') + '}' };
424
+ var peg$f19 = function(v) { return '{' + v + '}' };
424
425
  var peg$f20 = function() { return math.set(false) };
425
426
  var peg$f21 = function(v) {
426
427
  return v.reduce((a, b) => a.concat(b), []);
427
428
  };
428
429
  var peg$f22 = function(v) { return v; };
429
430
  var peg$f23 = function(v) {
431
+ return basicTextConversions({
432
+ kind: 'Text',
433
+ loc: location(),
434
+ source: text(),
435
+ value: v.join('').trim(),
436
+ mode: 'verbatim',
437
+ })
438
+ };
439
+ var peg$f24 = function(v) {
430
440
  return basicTextConversions({
431
441
  kind: 'Text',
432
442
  loc: location(),
@@ -435,7 +445,7 @@ function peg$parse(input, options) {
435
445
  mode: math.on ? 'math' : 'text',
436
446
  })
437
447
  };
438
- var peg$f24 = function(v) {
448
+ var peg$f25 = function(v) {
439
449
  return {
440
450
  kind: 'Number',
441
451
  loc: location(),
@@ -443,7 +453,7 @@ function peg$parse(input, options) {
443
453
  value: parseInt(v, 10),
444
454
  }
445
455
  };
446
- var peg$f25 = function(v) {
456
+ var peg$f26 = function(v) {
447
457
  return {
448
458
  kind: 'StringReference',
449
459
  loc: location(),
@@ -451,8 +461,8 @@ function peg$parse(input, options) {
451
461
  name: v,
452
462
  }
453
463
  };
454
- var peg$f26 = function(env, v, cenv) { return env === cenv };
455
- var peg$f27 = function(env, v, cenv) {
464
+ var peg$f27 = function(env, v, cenv) { return env === cenv };
465
+ var peg$f28 = function(env, v, cenv) {
456
466
  if (markup[env]) {
457
467
  return {
458
468
  kind: 'Block',
@@ -471,7 +481,7 @@ function peg$parse(input, options) {
471
481
  }
472
482
  }
473
483
  };
474
- var peg$f28 = function(mark, char) {
484
+ var peg$f29 = function(mark, char) {
475
485
  return {
476
486
  kind: 'DiacriticCommand',
477
487
  loc: location(),
@@ -481,7 +491,7 @@ function peg$parse(input, options) {
481
491
  character: char[1] || char[0],
482
492
  }
483
493
  };
484
- var peg$f29 = function(v) {
494
+ var peg$f30 = function(v) {
485
495
  return basicTextConversions({
486
496
  kind: 'Text',
487
497
  loc: location(),
@@ -490,7 +500,7 @@ function peg$parse(input, options) {
490
500
  mode: 'verbatim',
491
501
  })
492
502
  };
493
- var peg$f30 = function(v) {
503
+ var peg$f31 = function(v) {
494
504
  const block = {
495
505
  kind: 'Block',
496
506
  loc: location(),
@@ -524,10 +534,10 @@ function peg$parse(input, options) {
524
534
 
525
535
  return handle_markup_switches(block)
526
536
  };
527
- var peg$f31 = function() { return !math.on };
528
- var peg$f32 = function(mode) { return math.set(true) };
529
- var peg$f33 = function(mode, v) { return math.set(false) };
530
- var peg$f34 = function(mode, v) {
537
+ var peg$f32 = function() { return !math.on };
538
+ var peg$f33 = function(mode) { return math.set(true) };
539
+ var peg$f34 = function(mode, v) { return math.set(false) };
540
+ var peg$f35 = function(mode, v) {
531
541
  return {
532
542
  kind: mode == '$$' ? 'DisplayMath' : 'InlineMath',
533
543
  loc: location(),
@@ -537,7 +547,7 @@ function peg$parse(input, options) {
537
547
  markup: {},
538
548
  }
539
549
  };
540
- var peg$f35 = function(v) {
550
+ var peg$f36 = function(v) {
541
551
  return {
542
552
  kind: 'LineComment',
543
553
  loc: location(),
@@ -545,7 +555,7 @@ function peg$parse(input, options) {
545
555
  value: v,
546
556
  }
547
557
  };
548
- var peg$f36 = function(mode, v) {
558
+ var peg$f37 = function(mode, v) {
549
559
  if (v.kind === 'Block') v = v.value
550
560
 
551
561
  return {
@@ -555,7 +565,7 @@ function peg$parse(input, options) {
555
565
  value: v,
556
566
  }
557
567
  };
558
- var peg$f37 = function(mark, v) {
568
+ var peg$f38 = function(mark, v) {
559
569
  return {
560
570
  kind: 'RegularCommand',
561
571
  loc: location(),
@@ -567,7 +577,7 @@ function peg$parse(input, options) {
567
577
  },
568
578
  }
569
579
  };
570
- var peg$f38 = function(v) {
580
+ var peg$f39 = function(v) {
571
581
  return {
572
582
  kind: 'SymbolCommand',
573
583
  loc: location(),
@@ -575,8 +585,8 @@ function peg$parse(input, options) {
575
585
  command: v,
576
586
  }
577
587
  };
578
- var peg$f39 = function(cmd, name) { return name.value.length == 1 && name.value[0].kind === 'RegularCommand' };
579
- var peg$f40 = function(cmd, name, optional, def) {
588
+ var peg$f40 = function(cmd, name) { return name.value.length == 1 && name.value[0].kind === 'RegularCommand' };
589
+ var peg$f41 = function(cmd, name, optional, def) {
580
590
  return {
581
591
  kind: 'RegularCommand',
582
592
  loc: location(),
@@ -588,7 +598,7 @@ function peg$parse(input, options) {
588
598
  },
589
599
  }
590
600
  };
591
- var peg$f41 = function(cmd, url, label) {
601
+ var peg$f42 = function(cmd, url, label) {
592
602
  return {
593
603
  kind: 'RegularCommand',
594
604
  loc: location(),
@@ -600,8 +610,8 @@ function peg$parse(input, options) {
600
610
  },
601
611
  }
602
612
  };
603
- var peg$f42 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 2) };
604
- var peg$f43 = function(cmd, optional, req1, req2) {
613
+ var peg$f43 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 2) };
614
+ var peg$f44 = function(cmd, optional, req1, req2) {
605
615
  return {
606
616
  kind: 'RegularCommand',
607
617
  loc: location(),
@@ -613,8 +623,8 @@ function peg$parse(input, options) {
613
623
  },
614
624
  }
615
625
  };
616
- var peg$f44 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 1) };
617
- var peg$f45 = function(cmd, optional, req) {
626
+ var peg$f45 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 1) };
627
+ var peg$f46 = function(cmd, optional, req) {
618
628
  return {
619
629
  kind: 'RegularCommand',
620
630
  loc: location(),
@@ -626,8 +636,8 @@ function peg$parse(input, options) {
626
636
  },
627
637
  }
628
638
  };
629
- var peg$f46 = function(cmd) { return (has_arguments[cmd] === 2) };
630
- var peg$f47 = function(cmd, optional, req1, req2) {
639
+ var peg$f47 = function(cmd) { return (has_arguments[cmd] === 2) };
640
+ var peg$f48 = function(cmd, optional, req1, req2) {
631
641
  return {
632
642
  kind: 'RegularCommand',
633
643
  loc: location(),
@@ -639,8 +649,8 @@ function peg$parse(input, options) {
639
649
  },
640
650
  }
641
651
  };
642
- var peg$f48 = function(cmd) { return (has_arguments[cmd] === 1) };
643
- var peg$f49 = function(cmd, optional, req) {
652
+ var peg$f49 = function(cmd) { return (has_arguments[cmd] === 1) };
653
+ var peg$f50 = function(cmd, optional, req) {
644
654
  let m
645
655
  if (req.kind === 'Block') {
646
656
  switch (cmd) {
@@ -690,7 +700,7 @@ function peg$parse(input, options) {
690
700
  }
691
701
  }
692
702
  };
693
- var peg$f50 = function(cmd, optional) {
703
+ var peg$f51 = function(cmd, optional) {
694
704
  return {
695
705
  kind: 'RegularCommand',
696
706
  loc: location(),
@@ -702,7 +712,7 @@ function peg$parse(input, options) {
702
712
  }
703
713
  }
704
714
  };
705
- var peg$f51 = function(v) {
715
+ var peg$f52 = function(v) {
706
716
  return basicTextConversions({
707
717
  kind: 'Text', // this isn't really correct but I don't need these right now
708
718
  loc: location(),
@@ -711,7 +721,7 @@ function peg$parse(input, options) {
711
721
  mode: math.on ? 'math' : 'text',
712
722
  })
713
723
  };
714
- var peg$f52 = function(v) {
724
+ var peg$f53 = function(v) {
715
725
  return basicTextConversions({
716
726
  kind: 'Text',
717
727
  loc: location(),
@@ -1669,7 +1679,7 @@ function peg$parse(input, options) {
1669
1679
  if (peg$silentFails === 0) { peg$fail(peg$e16); }
1670
1680
  }
1671
1681
  if (s1 !== peg$FAILED) {
1672
- s2 = peg$parseTextNoQuotes();
1682
+ s2 = peg$parseVerbatimString();
1673
1683
  if (s2 === peg$FAILED) {
1674
1684
  s2 = null;
1675
1685
  }
@@ -1731,7 +1741,7 @@ function peg$parse(input, options) {
1731
1741
  }
1732
1742
 
1733
1743
  function peg$parseVerbatimText() {
1734
- var s0, s1, s2, s3;
1744
+ var s0, s1, s2, s3, s4;
1735
1745
 
1736
1746
  s0 = peg$currPos;
1737
1747
  s1 = peg$currPos;
@@ -1777,12 +1787,92 @@ function peg$parse(input, options) {
1777
1787
  if (peg$silentFails === 0) { peg$fail(peg$e5); }
1778
1788
  }
1779
1789
  if (s1 !== peg$FAILED) {
1780
- s2 = [];
1781
- s3 = peg$parseVerbatimText();
1782
- while (s3 !== peg$FAILED) {
1783
- s2.push(s3);
1784
- s3 = peg$parseVerbatimText();
1790
+ s2 = peg$currPos;
1791
+ s3 = [];
1792
+ s4 = peg$parseVerbatimText();
1793
+ while (s4 !== peg$FAILED) {
1794
+ s3.push(s4);
1795
+ s4 = peg$parseVerbatimText();
1796
+ }
1797
+ s2 = input.substring(s2, peg$currPos);
1798
+ if (input.charCodeAt(peg$currPos) === 125) {
1799
+ s3 = peg$c3;
1800
+ peg$currPos++;
1801
+ } else {
1802
+ s3 = peg$FAILED;
1803
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1804
+ }
1805
+ if (s3 !== peg$FAILED) {
1806
+ peg$savedPos = s0;
1807
+ s0 = peg$f19(s2);
1808
+ } else {
1809
+ peg$currPos = s0;
1810
+ s0 = peg$FAILED;
1811
+ }
1812
+ } else {
1813
+ peg$currPos = s0;
1814
+ s0 = peg$FAILED;
1815
+ }
1816
+ }
1817
+
1818
+ return s0;
1819
+ }
1820
+
1821
+ function peg$parseVerbatimString() {
1822
+ var s0, s1, s2, s3, s4;
1823
+
1824
+ s0 = peg$currPos;
1825
+ s1 = peg$currPos;
1826
+ s2 = [];
1827
+ if (peg$r9.test(input.charAt(peg$currPos))) {
1828
+ s3 = input.charAt(peg$currPos);
1829
+ peg$currPos++;
1830
+ } else {
1831
+ s3 = peg$FAILED;
1832
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1833
+ }
1834
+ if (s3 !== peg$FAILED) {
1835
+ while (s3 !== peg$FAILED) {
1836
+ s2.push(s3);
1837
+ if (peg$r9.test(input.charAt(peg$currPos))) {
1838
+ s3 = input.charAt(peg$currPos);
1839
+ peg$currPos++;
1840
+ } else {
1841
+ s3 = peg$FAILED;
1842
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1843
+ }
1844
+ }
1845
+ } else {
1846
+ s2 = peg$FAILED;
1847
+ }
1848
+ if (s2 !== peg$FAILED) {
1849
+ s1 = input.substring(s1, peg$currPos);
1850
+ } else {
1851
+ s1 = s2;
1852
+ }
1853
+ if (s1 !== peg$FAILED) {
1854
+ peg$savedPos = s0;
1855
+ s1 = peg$f18(s1);
1856
+ }
1857
+ s0 = s1;
1858
+ if (s0 === peg$FAILED) {
1859
+ s0 = peg$currPos;
1860
+ if (input.charCodeAt(peg$currPos) === 123) {
1861
+ s1 = peg$c2;
1862
+ peg$currPos++;
1863
+ } else {
1864
+ s1 = peg$FAILED;
1865
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
1866
+ }
1867
+ if (s1 !== peg$FAILED) {
1868
+ s2 = peg$currPos;
1869
+ s3 = [];
1870
+ s4 = peg$parseVerbatimString();
1871
+ while (s4 !== peg$FAILED) {
1872
+ s3.push(s4);
1873
+ s4 = peg$parseVerbatimString();
1785
1874
  }
1875
+ s2 = input.substring(s2, peg$currPos);
1786
1876
  if (input.charCodeAt(peg$currPos) === 125) {
1787
1877
  s3 = peg$c3;
1788
1878
  peg$currPos++;
@@ -1914,17 +2004,17 @@ function peg$parse(input, options) {
1914
2004
  peg$currPos += 6;
1915
2005
  } else {
1916
2006
  s1 = peg$FAILED;
1917
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
2007
+ if (peg$silentFails === 0) { peg$fail(peg$e18); }
1918
2008
  }
1919
2009
  if (s1 !== peg$FAILED) {
1920
2010
  s2 = peg$currPos;
1921
2011
  peg$silentFails++;
1922
- if (peg$r9.test(input.charAt(peg$currPos))) {
2012
+ if (peg$r10.test(input.charAt(peg$currPos))) {
1923
2013
  s3 = input.charAt(peg$currPos);
1924
2014
  peg$currPos++;
1925
2015
  } else {
1926
2016
  s3 = peg$FAILED;
1927
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
2017
+ if (peg$silentFails === 0) { peg$fail(peg$e19); }
1928
2018
  }
1929
2019
  peg$silentFails--;
1930
2020
  if (s3 === peg$FAILED) {
@@ -1953,7 +2043,7 @@ function peg$parse(input, options) {
1953
2043
  s5 = null;
1954
2044
  }
1955
2045
  peg$savedPos = s0;
1956
- s0 = peg$f17(s3);
2046
+ s0 = peg$f23(s3);
1957
2047
  } else {
1958
2048
  peg$currPos = s0;
1959
2049
  s0 = peg$FAILED;
@@ -2074,22 +2164,22 @@ function peg$parse(input, options) {
2074
2164
 
2075
2165
  s0 = peg$currPos;
2076
2166
  s1 = [];
2077
- if (peg$r10.test(input.charAt(peg$currPos))) {
2167
+ if (peg$r11.test(input.charAt(peg$currPos))) {
2078
2168
  s2 = input.charAt(peg$currPos);
2079
2169
  peg$currPos++;
2080
2170
  } else {
2081
2171
  s2 = peg$FAILED;
2082
- if (peg$silentFails === 0) { peg$fail(peg$e19); }
2172
+ if (peg$silentFails === 0) { peg$fail(peg$e20); }
2083
2173
  }
2084
2174
  if (s2 !== peg$FAILED) {
2085
2175
  while (s2 !== peg$FAILED) {
2086
2176
  s1.push(s2);
2087
- if (peg$r10.test(input.charAt(peg$currPos))) {
2177
+ if (peg$r11.test(input.charAt(peg$currPos))) {
2088
2178
  s2 = input.charAt(peg$currPos);
2089
2179
  peg$currPos++;
2090
2180
  } else {
2091
2181
  s2 = peg$FAILED;
2092
- if (peg$silentFails === 0) { peg$fail(peg$e19); }
2182
+ if (peg$silentFails === 0) { peg$fail(peg$e20); }
2093
2183
  }
2094
2184
  }
2095
2185
  } else {
@@ -2097,7 +2187,7 @@ function peg$parse(input, options) {
2097
2187
  }
2098
2188
  if (s1 !== peg$FAILED) {
2099
2189
  peg$savedPos = s0;
2100
- s1 = peg$f23(s1);
2190
+ s1 = peg$f24(s1);
2101
2191
  }
2102
2192
  s0 = s1;
2103
2193
 
@@ -2109,22 +2199,22 @@ function peg$parse(input, options) {
2109
2199
 
2110
2200
  s0 = peg$currPos;
2111
2201
  s1 = [];
2112
- if (peg$r11.test(input.charAt(peg$currPos))) {
2202
+ if (peg$r12.test(input.charAt(peg$currPos))) {
2113
2203
  s2 = input.charAt(peg$currPos);
2114
2204
  peg$currPos++;
2115
2205
  } else {
2116
2206
  s2 = peg$FAILED;
2117
- if (peg$silentFails === 0) { peg$fail(peg$e20); }
2207
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
2118
2208
  }
2119
2209
  if (s2 !== peg$FAILED) {
2120
2210
  while (s2 !== peg$FAILED) {
2121
2211
  s1.push(s2);
2122
- if (peg$r11.test(input.charAt(peg$currPos))) {
2212
+ if (peg$r12.test(input.charAt(peg$currPos))) {
2123
2213
  s2 = input.charAt(peg$currPos);
2124
2214
  peg$currPos++;
2125
2215
  } else {
2126
2216
  s2 = peg$FAILED;
2127
- if (peg$silentFails === 0) { peg$fail(peg$e20); }
2217
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
2128
2218
  }
2129
2219
  }
2130
2220
  } else {
@@ -2132,7 +2222,7 @@ function peg$parse(input, options) {
2132
2222
  }
2133
2223
  if (s1 !== peg$FAILED) {
2134
2224
  peg$savedPos = s0;
2135
- s1 = peg$f23(s1);
2225
+ s1 = peg$f24(s1);
2136
2226
  }
2137
2227
  s0 = s1;
2138
2228
 
@@ -2145,22 +2235,22 @@ function peg$parse(input, options) {
2145
2235
  s0 = peg$currPos;
2146
2236
  s1 = peg$currPos;
2147
2237
  s2 = [];
2148
- if (peg$r12.test(input.charAt(peg$currPos))) {
2238
+ if (peg$r13.test(input.charAt(peg$currPos))) {
2149
2239
  s3 = input.charAt(peg$currPos);
2150
2240
  peg$currPos++;
2151
2241
  } else {
2152
2242
  s3 = peg$FAILED;
2153
- if (peg$silentFails === 0) { peg$fail(peg$e21); }
2243
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
2154
2244
  }
2155
2245
  if (s3 !== peg$FAILED) {
2156
2246
  while (s3 !== peg$FAILED) {
2157
2247
  s2.push(s3);
2158
- if (peg$r12.test(input.charAt(peg$currPos))) {
2248
+ if (peg$r13.test(input.charAt(peg$currPos))) {
2159
2249
  s3 = input.charAt(peg$currPos);
2160
2250
  peg$currPos++;
2161
2251
  } else {
2162
2252
  s3 = peg$FAILED;
2163
- if (peg$silentFails === 0) { peg$fail(peg$e21); }
2253
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
2164
2254
  }
2165
2255
  }
2166
2256
  } else {
@@ -2173,7 +2263,7 @@ function peg$parse(input, options) {
2173
2263
  }
2174
2264
  if (s1 !== peg$FAILED) {
2175
2265
  peg$savedPos = s0;
2176
- s1 = peg$f24(s1);
2266
+ s1 = peg$f25(s1);
2177
2267
  }
2178
2268
  s0 = s1;
2179
2269
 
@@ -2187,7 +2277,7 @@ function peg$parse(input, options) {
2187
2277
  s1 = peg$parseVariableName();
2188
2278
  if (s1 !== peg$FAILED) {
2189
2279
  peg$savedPos = s0;
2190
- s1 = peg$f25(s1);
2280
+ s1 = peg$f26(s1);
2191
2281
  }
2192
2282
  s0 = s1;
2193
2283
 
@@ -2203,27 +2293,27 @@ function peg$parse(input, options) {
2203
2293
  peg$currPos += 7;
2204
2294
  } else {
2205
2295
  s1 = peg$FAILED;
2206
- if (peg$silentFails === 0) { peg$fail(peg$e22); }
2296
+ if (peg$silentFails === 0) { peg$fail(peg$e23); }
2207
2297
  }
2208
2298
  if (s1 !== peg$FAILED) {
2209
2299
  s2 = peg$currPos;
2210
2300
  s3 = [];
2211
- if (peg$r13.test(input.charAt(peg$currPos))) {
2301
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2212
2302
  s4 = input.charAt(peg$currPos);
2213
2303
  peg$currPos++;
2214
2304
  } else {
2215
2305
  s4 = peg$FAILED;
2216
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2306
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2217
2307
  }
2218
2308
  if (s4 !== peg$FAILED) {
2219
2309
  while (s4 !== peg$FAILED) {
2220
2310
  s3.push(s4);
2221
- if (peg$r13.test(input.charAt(peg$currPos))) {
2311
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2222
2312
  s4 = input.charAt(peg$currPos);
2223
2313
  peg$currPos++;
2224
2314
  } else {
2225
2315
  s4 = peg$FAILED;
2226
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2316
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2227
2317
  }
2228
2318
  }
2229
2319
  } else {
@@ -2278,27 +2368,27 @@ function peg$parse(input, options) {
2278
2368
  peg$currPos += 5;
2279
2369
  } else {
2280
2370
  s5 = peg$FAILED;
2281
- if (peg$silentFails === 0) { peg$fail(peg$e24); }
2371
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
2282
2372
  }
2283
2373
  if (s5 !== peg$FAILED) {
2284
2374
  s6 = peg$currPos;
2285
2375
  s7 = [];
2286
- if (peg$r13.test(input.charAt(peg$currPos))) {
2376
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2287
2377
  s8 = input.charAt(peg$currPos);
2288
2378
  peg$currPos++;
2289
2379
  } else {
2290
2380
  s8 = peg$FAILED;
2291
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2381
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2292
2382
  }
2293
2383
  if (s8 !== peg$FAILED) {
2294
2384
  while (s8 !== peg$FAILED) {
2295
2385
  s7.push(s8);
2296
- if (peg$r13.test(input.charAt(peg$currPos))) {
2386
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2297
2387
  s8 = input.charAt(peg$currPos);
2298
2388
  peg$currPos++;
2299
2389
  } else {
2300
2390
  s8 = peg$FAILED;
2301
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2391
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2302
2392
  }
2303
2393
  }
2304
2394
  } else {
@@ -2319,7 +2409,7 @@ function peg$parse(input, options) {
2319
2409
  }
2320
2410
  if (s7 !== peg$FAILED) {
2321
2411
  peg$savedPos = peg$currPos;
2322
- s8 = peg$f26(s2, s4, s6);
2412
+ s8 = peg$f27(s2, s4, s6);
2323
2413
  if (s8) {
2324
2414
  s8 = undefined;
2325
2415
  } else {
@@ -2327,7 +2417,7 @@ function peg$parse(input, options) {
2327
2417
  }
2328
2418
  if (s8 !== peg$FAILED) {
2329
2419
  peg$savedPos = s0;
2330
- s0 = peg$f27(s2, s4, s6);
2420
+ s0 = peg$f28(s2, s4, s6);
2331
2421
  } else {
2332
2422
  peg$currPos = s0;
2333
2423
  s0 = peg$FAILED;
@@ -2369,18 +2459,18 @@ function peg$parse(input, options) {
2369
2459
  peg$currPos += 2;
2370
2460
  } else {
2371
2461
  s1 = peg$FAILED;
2372
- if (peg$silentFails === 0) { peg$fail(peg$e25); }
2462
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
2373
2463
  }
2374
2464
  if (s1 !== peg$FAILED) {
2375
2465
  s2 = peg$parseExtendedDiacritic();
2376
2466
  if (s2 !== peg$FAILED) {
2377
2467
  s3 = peg$parse__();
2378
- if (peg$r13.test(input.charAt(peg$currPos))) {
2468
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2379
2469
  s4 = input.charAt(peg$currPos);
2380
2470
  peg$currPos++;
2381
2471
  } else {
2382
2472
  s4 = peg$FAILED;
2383
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2473
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2384
2474
  }
2385
2475
  if (s4 === peg$FAILED) {
2386
2476
  s4 = peg$currPos;
@@ -2389,15 +2479,15 @@ function peg$parse(input, options) {
2389
2479
  peg$currPos++;
2390
2480
  } else {
2391
2481
  s5 = peg$FAILED;
2392
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
2482
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2393
2483
  }
2394
2484
  if (s5 !== peg$FAILED) {
2395
- if (peg$r14.test(input.charAt(peg$currPos))) {
2485
+ if (peg$r15.test(input.charAt(peg$currPos))) {
2396
2486
  s6 = input.charAt(peg$currPos);
2397
2487
  peg$currPos++;
2398
2488
  } else {
2399
2489
  s6 = peg$FAILED;
2400
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
2490
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2401
2491
  }
2402
2492
  if (s6 !== peg$FAILED) {
2403
2493
  s5 = [s5, s6];
@@ -2421,7 +2511,7 @@ function peg$parse(input, options) {
2421
2511
  }
2422
2512
  if (s5 !== peg$FAILED) {
2423
2513
  peg$savedPos = s0;
2424
- s0 = peg$f28(s2, s4);
2514
+ s0 = peg$f29(s2, s4);
2425
2515
  } else {
2426
2516
  peg$currPos = s0;
2427
2517
  s0 = peg$FAILED;
@@ -2445,17 +2535,17 @@ function peg$parse(input, options) {
2445
2535
  peg$currPos += 6;
2446
2536
  } else {
2447
2537
  s1 = peg$FAILED;
2448
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
2538
+ if (peg$silentFails === 0) { peg$fail(peg$e18); }
2449
2539
  }
2450
2540
  if (s1 !== peg$FAILED) {
2451
2541
  s2 = peg$currPos;
2452
2542
  peg$silentFails++;
2453
- if (peg$r9.test(input.charAt(peg$currPos))) {
2543
+ if (peg$r10.test(input.charAt(peg$currPos))) {
2454
2544
  s3 = input.charAt(peg$currPos);
2455
2545
  peg$currPos++;
2456
2546
  } else {
2457
2547
  s3 = peg$FAILED;
2458
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
2548
+ if (peg$silentFails === 0) { peg$fail(peg$e19); }
2459
2549
  }
2460
2550
  peg$silentFails--;
2461
2551
  if (s3 === peg$FAILED) {
@@ -2480,7 +2570,7 @@ function peg$parse(input, options) {
2480
2570
  }
2481
2571
  if (s4 !== peg$FAILED) {
2482
2572
  peg$savedPos = s0;
2483
- s0 = peg$f29(s3);
2573
+ s0 = peg$f30(s3);
2484
2574
  } else {
2485
2575
  peg$currPos = s0;
2486
2576
  s0 = peg$FAILED;
@@ -2542,7 +2632,7 @@ function peg$parse(input, options) {
2542
2632
  }
2543
2633
  if (s3 !== peg$FAILED) {
2544
2634
  peg$savedPos = s0;
2545
- s0 = peg$f30(s2);
2635
+ s0 = peg$f31(s2);
2546
2636
  } else {
2547
2637
  peg$currPos = s0;
2548
2638
  s0 = peg$FAILED;
@@ -2562,7 +2652,7 @@ function peg$parse(input, options) {
2562
2652
 
2563
2653
  s0 = peg$currPos;
2564
2654
  peg$savedPos = peg$currPos;
2565
- s1 = peg$f31();
2655
+ s1 = peg$f32();
2566
2656
  if (s1) {
2567
2657
  s1 = undefined;
2568
2658
  } else {
@@ -2574,7 +2664,7 @@ function peg$parse(input, options) {
2574
2664
  peg$currPos++;
2575
2665
  } else {
2576
2666
  s2 = peg$FAILED;
2577
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
2667
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
2578
2668
  }
2579
2669
  if (s2 === peg$FAILED) {
2580
2670
  if (input.substr(peg$currPos, 2) === peg$c14) {
@@ -2582,7 +2672,7 @@ function peg$parse(input, options) {
2582
2672
  peg$currPos += 2;
2583
2673
  } else {
2584
2674
  s2 = peg$FAILED;
2585
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
2675
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
2586
2676
  }
2587
2677
  if (s2 === peg$FAILED) {
2588
2678
  if (input.substr(peg$currPos, 2) === peg$c15) {
@@ -2590,13 +2680,13 @@ function peg$parse(input, options) {
2590
2680
  peg$currPos += 2;
2591
2681
  } else {
2592
2682
  s2 = peg$FAILED;
2593
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2683
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2594
2684
  }
2595
2685
  }
2596
2686
  }
2597
2687
  if (s2 !== peg$FAILED) {
2598
2688
  peg$savedPos = peg$currPos;
2599
- s3 = peg$f32(s2);
2689
+ s3 = peg$f33(s2);
2600
2690
  if (s3) {
2601
2691
  s3 = undefined;
2602
2692
  } else {
@@ -2626,7 +2716,7 @@ function peg$parse(input, options) {
2626
2716
  peg$currPos++;
2627
2717
  } else {
2628
2718
  s5 = peg$FAILED;
2629
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
2719
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
2630
2720
  }
2631
2721
  if (s5 === peg$FAILED) {
2632
2722
  if (input.substr(peg$currPos, 2) === peg$c14) {
@@ -2634,7 +2724,7 @@ function peg$parse(input, options) {
2634
2724
  peg$currPos += 2;
2635
2725
  } else {
2636
2726
  s5 = peg$FAILED;
2637
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
2727
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
2638
2728
  }
2639
2729
  if (s5 === peg$FAILED) {
2640
2730
  if (input.substr(peg$currPos, 2) === peg$c16) {
@@ -2642,13 +2732,13 @@ function peg$parse(input, options) {
2642
2732
  peg$currPos += 2;
2643
2733
  } else {
2644
2734
  s5 = peg$FAILED;
2645
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
2735
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2646
2736
  }
2647
2737
  }
2648
2738
  }
2649
2739
  if (s5 !== peg$FAILED) {
2650
2740
  peg$savedPos = peg$currPos;
2651
- s6 = peg$f33(s2, s4);
2741
+ s6 = peg$f34(s2, s4);
2652
2742
  if (s6) {
2653
2743
  s6 = undefined;
2654
2744
  } else {
@@ -2656,7 +2746,7 @@ function peg$parse(input, options) {
2656
2746
  }
2657
2747
  if (s6 !== peg$FAILED) {
2658
2748
  peg$savedPos = s0;
2659
- s0 = peg$f34(s2, s4);
2749
+ s0 = peg$f35(s2, s4);
2660
2750
  } else {
2661
2751
  peg$currPos = s0;
2662
2752
  s0 = peg$FAILED;
@@ -2690,28 +2780,28 @@ function peg$parse(input, options) {
2690
2780
  peg$currPos++;
2691
2781
  } else {
2692
2782
  s1 = peg$FAILED;
2693
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
2783
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2694
2784
  }
2695
2785
  if (s1 !== peg$FAILED) {
2696
2786
  s2 = peg$parse__h();
2697
2787
  s3 = peg$currPos;
2698
2788
  s4 = [];
2699
- if (peg$r15.test(input.charAt(peg$currPos))) {
2789
+ if (peg$r16.test(input.charAt(peg$currPos))) {
2700
2790
  s5 = input.charAt(peg$currPos);
2701
2791
  peg$currPos++;
2702
2792
  } else {
2703
2793
  s5 = peg$FAILED;
2704
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2794
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2705
2795
  }
2706
2796
  if (s5 !== peg$FAILED) {
2707
2797
  while (s5 !== peg$FAILED) {
2708
2798
  s4.push(s5);
2709
- if (peg$r15.test(input.charAt(peg$currPos))) {
2799
+ if (peg$r16.test(input.charAt(peg$currPos))) {
2710
2800
  s5 = input.charAt(peg$currPos);
2711
2801
  peg$currPos++;
2712
2802
  } else {
2713
2803
  s5 = peg$FAILED;
2714
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2804
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2715
2805
  }
2716
2806
  }
2717
2807
  } else {
@@ -2735,7 +2825,7 @@ function peg$parse(input, options) {
2735
2825
  }
2736
2826
  if (s4 !== peg$FAILED) {
2737
2827
  peg$savedPos = s0;
2738
- s0 = peg$f35(s3);
2828
+ s0 = peg$f36(s3);
2739
2829
  } else {
2740
2830
  peg$currPos = s0;
2741
2831
  s0 = peg$FAILED;
@@ -2773,19 +2863,19 @@ function peg$parse(input, options) {
2773
2863
  var s0, s1, s2, s3;
2774
2864
 
2775
2865
  s0 = peg$currPos;
2776
- if (peg$r16.test(input.charAt(peg$currPos))) {
2866
+ if (peg$r17.test(input.charAt(peg$currPos))) {
2777
2867
  s1 = input.charAt(peg$currPos);
2778
2868
  peg$currPos++;
2779
2869
  } else {
2780
2870
  s1 = peg$FAILED;
2781
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2871
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2782
2872
  }
2783
2873
  if (s1 !== peg$FAILED) {
2784
2874
  s2 = peg$parse__h();
2785
2875
  s3 = peg$parseArgument();
2786
2876
  if (s3 !== peg$FAILED) {
2787
2877
  peg$savedPos = s0;
2788
- s0 = peg$f36(s1, s3);
2878
+ s0 = peg$f37(s1, s3);
2789
2879
  } else {
2790
2880
  peg$currPos = s0;
2791
2881
  s0 = peg$FAILED;
@@ -2807,18 +2897,18 @@ function peg$parse(input, options) {
2807
2897
  peg$currPos++;
2808
2898
  } else {
2809
2899
  s1 = peg$FAILED;
2810
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
2900
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2811
2901
  }
2812
2902
  if (s1 !== peg$FAILED) {
2813
2903
  s2 = peg$parseSimpleDiacritic();
2814
2904
  if (s2 !== peg$FAILED) {
2815
2905
  s3 = peg$parse__();
2816
- if (peg$r13.test(input.charAt(peg$currPos))) {
2906
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2817
2907
  s4 = input.charAt(peg$currPos);
2818
2908
  peg$currPos++;
2819
2909
  } else {
2820
2910
  s4 = peg$FAILED;
2821
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2911
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2822
2912
  }
2823
2913
  if (s4 === peg$FAILED) {
2824
2914
  s4 = peg$currPos;
@@ -2827,15 +2917,15 @@ function peg$parse(input, options) {
2827
2917
  peg$currPos++;
2828
2918
  } else {
2829
2919
  s5 = peg$FAILED;
2830
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
2920
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2831
2921
  }
2832
2922
  if (s5 !== peg$FAILED) {
2833
- if (peg$r14.test(input.charAt(peg$currPos))) {
2923
+ if (peg$r15.test(input.charAt(peg$currPos))) {
2834
2924
  s6 = input.charAt(peg$currPos);
2835
2925
  peg$currPos++;
2836
2926
  } else {
2837
2927
  s6 = peg$FAILED;
2838
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
2928
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2839
2929
  }
2840
2930
  if (s6 !== peg$FAILED) {
2841
2931
  s5 = [s5, s6];
@@ -2851,7 +2941,7 @@ function peg$parse(input, options) {
2851
2941
  }
2852
2942
  if (s4 !== peg$FAILED) {
2853
2943
  peg$savedPos = s0;
2854
- s0 = peg$f28(s2, s4);
2944
+ s0 = peg$f29(s2, s4);
2855
2945
  } else {
2856
2946
  peg$currPos = s0;
2857
2947
  s0 = peg$FAILED;
@@ -2871,7 +2961,7 @@ function peg$parse(input, options) {
2871
2961
  peg$currPos++;
2872
2962
  } else {
2873
2963
  s1 = peg$FAILED;
2874
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
2964
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2875
2965
  }
2876
2966
  if (s1 !== peg$FAILED) {
2877
2967
  s2 = peg$parseExtendedDiacritic();
@@ -2884,12 +2974,12 @@ function peg$parse(input, options) {
2884
2974
  if (peg$silentFails === 0) { peg$fail(peg$e5); }
2885
2975
  }
2886
2976
  if (s3 !== peg$FAILED) {
2887
- if (peg$r13.test(input.charAt(peg$currPos))) {
2977
+ if (peg$r14.test(input.charAt(peg$currPos))) {
2888
2978
  s4 = input.charAt(peg$currPos);
2889
2979
  peg$currPos++;
2890
2980
  } else {
2891
2981
  s4 = peg$FAILED;
2892
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2982
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2893
2983
  }
2894
2984
  if (s4 === peg$FAILED) {
2895
2985
  s4 = peg$currPos;
@@ -2898,15 +2988,15 @@ function peg$parse(input, options) {
2898
2988
  peg$currPos++;
2899
2989
  } else {
2900
2990
  s5 = peg$FAILED;
2901
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
2991
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2902
2992
  }
2903
2993
  if (s5 !== peg$FAILED) {
2904
- if (peg$r14.test(input.charAt(peg$currPos))) {
2994
+ if (peg$r15.test(input.charAt(peg$currPos))) {
2905
2995
  s6 = input.charAt(peg$currPos);
2906
2996
  peg$currPos++;
2907
2997
  } else {
2908
2998
  s6 = peg$FAILED;
2909
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
2999
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2910
3000
  }
2911
3001
  if (s6 !== peg$FAILED) {
2912
3002
  s5 = [s5, s6];
@@ -2930,7 +3020,7 @@ function peg$parse(input, options) {
2930
3020
  }
2931
3021
  if (s5 !== peg$FAILED) {
2932
3022
  peg$savedPos = s0;
2933
- s0 = peg$f28(s2, s4);
3023
+ s0 = peg$f29(s2, s4);
2934
3024
  } else {
2935
3025
  peg$currPos = s0;
2936
3026
  s0 = peg$FAILED;
@@ -2958,7 +3048,7 @@ function peg$parse(input, options) {
2958
3048
  peg$currPos++;
2959
3049
  } else {
2960
3050
  s1 = peg$FAILED;
2961
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3051
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2962
3052
  }
2963
3053
  if (s1 !== peg$FAILED) {
2964
3054
  s2 = peg$parseExtendedDiacritic();
@@ -2983,7 +3073,7 @@ function peg$parse(input, options) {
2983
3073
  s4 = peg$parseRegularValue();
2984
3074
  if (s4 !== peg$FAILED) {
2985
3075
  peg$savedPos = s0;
2986
- s0 = peg$f37(s2, s4);
3076
+ s0 = peg$f38(s2, s4);
2987
3077
  } else {
2988
3078
  peg$currPos = s0;
2989
3079
  s0 = peg$FAILED;
@@ -3015,16 +3105,16 @@ function peg$parse(input, options) {
3015
3105
  peg$currPos++;
3016
3106
  } else {
3017
3107
  s1 = peg$FAILED;
3018
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3108
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3019
3109
  }
3020
3110
  if (s1 !== peg$FAILED) {
3021
3111
  s2 = peg$currPos;
3022
- if (peg$r17.test(input.charAt(peg$currPos))) {
3112
+ if (peg$r18.test(input.charAt(peg$currPos))) {
3023
3113
  s3 = input.charAt(peg$currPos);
3024
3114
  peg$currPos++;
3025
3115
  } else {
3026
3116
  s3 = peg$FAILED;
3027
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
3117
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
3028
3118
  }
3029
3119
  if (s3 !== peg$FAILED) {
3030
3120
  s2 = input.substring(s2, peg$currPos);
@@ -3033,7 +3123,7 @@ function peg$parse(input, options) {
3033
3123
  }
3034
3124
  if (s2 !== peg$FAILED) {
3035
3125
  peg$savedPos = s0;
3036
- s0 = peg$f38(s2);
3126
+ s0 = peg$f39(s2);
3037
3127
  } else {
3038
3128
  peg$currPos = s0;
3039
3129
  s0 = peg$FAILED;
@@ -3055,7 +3145,7 @@ function peg$parse(input, options) {
3055
3145
  peg$currPos++;
3056
3146
  } else {
3057
3147
  s1 = peg$FAILED;
3058
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3148
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3059
3149
  }
3060
3150
  if (s1 !== peg$FAILED) {
3061
3151
  if (input.substr(peg$currPos, 10) === peg$c18) {
@@ -3063,13 +3153,13 @@ function peg$parse(input, options) {
3063
3153
  peg$currPos += 10;
3064
3154
  } else {
3065
3155
  s2 = peg$FAILED;
3066
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
3156
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
3067
3157
  }
3068
3158
  if (s2 !== peg$FAILED) {
3069
3159
  s3 = peg$parseBlock();
3070
3160
  if (s3 !== peg$FAILED) {
3071
3161
  peg$savedPos = peg$currPos;
3072
- s4 = peg$f39(s2, s3);
3162
+ s4 = peg$f40(s2, s3);
3073
3163
  if (s4) {
3074
3164
  s4 = undefined;
3075
3165
  } else {
@@ -3085,7 +3175,7 @@ function peg$parse(input, options) {
3085
3175
  s6 = peg$parseArgument();
3086
3176
  if (s6 !== peg$FAILED) {
3087
3177
  peg$savedPos = s0;
3088
- s0 = peg$f40(s2, s3, s5, s6);
3178
+ s0 = peg$f41(s2, s3, s5, s6);
3089
3179
  } else {
3090
3180
  peg$currPos = s0;
3091
3181
  s0 = peg$FAILED;
@@ -3113,7 +3203,7 @@ function peg$parse(input, options) {
3113
3203
  peg$currPos++;
3114
3204
  } else {
3115
3205
  s1 = peg$FAILED;
3116
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3206
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3117
3207
  }
3118
3208
  if (s1 !== peg$FAILED) {
3119
3209
  if (input.substr(peg$currPos, 4) === peg$c19) {
@@ -3121,7 +3211,7 @@ function peg$parse(input, options) {
3121
3211
  peg$currPos += 4;
3122
3212
  } else {
3123
3213
  s2 = peg$FAILED;
3124
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
3214
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
3125
3215
  }
3126
3216
  if (s2 !== peg$FAILED) {
3127
3217
  s3 = peg$parse__h();
@@ -3147,7 +3237,7 @@ function peg$parse(input, options) {
3147
3237
  s6 = peg$parseArgument();
3148
3238
  if (s6 !== peg$FAILED) {
3149
3239
  peg$savedPos = s0;
3150
- s0 = peg$f41(s2, s5, s6);
3240
+ s0 = peg$f42(s2, s5, s6);
3151
3241
  } else {
3152
3242
  peg$currPos = s0;
3153
3243
  s0 = peg$FAILED;
@@ -3175,7 +3265,7 @@ function peg$parse(input, options) {
3175
3265
  peg$currPos++;
3176
3266
  } else {
3177
3267
  s1 = peg$FAILED;
3178
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3268
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3179
3269
  }
3180
3270
  if (s1 !== peg$FAILED) {
3181
3271
  s2 = peg$currPos;
@@ -3185,7 +3275,7 @@ function peg$parse(input, options) {
3185
3275
  peg$currPos += 5;
3186
3276
  } else {
3187
3277
  s3 = peg$FAILED;
3188
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
3278
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3189
3279
  }
3190
3280
  peg$silentFails--;
3191
3281
  if (s3 === peg$FAILED) {
@@ -3202,7 +3292,7 @@ function peg$parse(input, options) {
3202
3292
  peg$currPos += 3;
3203
3293
  } else {
3204
3294
  s4 = peg$FAILED;
3205
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
3295
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
3206
3296
  }
3207
3297
  peg$silentFails--;
3208
3298
  if (s4 === peg$FAILED) {
@@ -3214,22 +3304,22 @@ function peg$parse(input, options) {
3214
3304
  if (s3 !== peg$FAILED) {
3215
3305
  s4 = peg$currPos;
3216
3306
  s5 = [];
3217
- if (peg$r18.test(input.charAt(peg$currPos))) {
3307
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3218
3308
  s6 = input.charAt(peg$currPos);
3219
3309
  peg$currPos++;
3220
3310
  } else {
3221
3311
  s6 = peg$FAILED;
3222
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3312
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3223
3313
  }
3224
3314
  if (s6 !== peg$FAILED) {
3225
3315
  while (s6 !== peg$FAILED) {
3226
3316
  s5.push(s6);
3227
- if (peg$r18.test(input.charAt(peg$currPos))) {
3317
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3228
3318
  s6 = input.charAt(peg$currPos);
3229
3319
  peg$currPos++;
3230
3320
  } else {
3231
3321
  s6 = peg$FAILED;
3232
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3322
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3233
3323
  }
3234
3324
  }
3235
3325
  } else {
@@ -3242,7 +3332,7 @@ function peg$parse(input, options) {
3242
3332
  }
3243
3333
  if (s4 !== peg$FAILED) {
3244
3334
  peg$savedPos = peg$currPos;
3245
- s5 = peg$f42(s4);
3335
+ s5 = peg$f43(s4);
3246
3336
  if (s5) {
3247
3337
  s5 = undefined;
3248
3338
  } else {
@@ -3278,7 +3368,7 @@ function peg$parse(input, options) {
3278
3368
  s10 = peg$parseVerbatimFieldValue();
3279
3369
  if (s10 !== peg$FAILED) {
3280
3370
  peg$savedPos = s0;
3281
- s0 = peg$f43(s4, s6, s9, s10);
3371
+ s0 = peg$f44(s4, s6, s9, s10);
3282
3372
  } else {
3283
3373
  peg$currPos = s0;
3284
3374
  s0 = peg$FAILED;
@@ -3318,7 +3408,7 @@ function peg$parse(input, options) {
3318
3408
  peg$currPos++;
3319
3409
  } else {
3320
3410
  s1 = peg$FAILED;
3321
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3411
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3322
3412
  }
3323
3413
  if (s1 !== peg$FAILED) {
3324
3414
  s2 = peg$currPos;
@@ -3328,7 +3418,7 @@ function peg$parse(input, options) {
3328
3418
  peg$currPos += 5;
3329
3419
  } else {
3330
3420
  s3 = peg$FAILED;
3331
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
3421
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3332
3422
  }
3333
3423
  peg$silentFails--;
3334
3424
  if (s3 === peg$FAILED) {
@@ -3345,7 +3435,7 @@ function peg$parse(input, options) {
3345
3435
  peg$currPos += 3;
3346
3436
  } else {
3347
3437
  s4 = peg$FAILED;
3348
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
3438
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
3349
3439
  }
3350
3440
  peg$silentFails--;
3351
3441
  if (s4 === peg$FAILED) {
@@ -3357,22 +3447,22 @@ function peg$parse(input, options) {
3357
3447
  if (s3 !== peg$FAILED) {
3358
3448
  s4 = peg$currPos;
3359
3449
  s5 = [];
3360
- if (peg$r18.test(input.charAt(peg$currPos))) {
3450
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3361
3451
  s6 = input.charAt(peg$currPos);
3362
3452
  peg$currPos++;
3363
3453
  } else {
3364
3454
  s6 = peg$FAILED;
3365
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3455
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3366
3456
  }
3367
3457
  if (s6 !== peg$FAILED) {
3368
3458
  while (s6 !== peg$FAILED) {
3369
3459
  s5.push(s6);
3370
- if (peg$r18.test(input.charAt(peg$currPos))) {
3460
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3371
3461
  s6 = input.charAt(peg$currPos);
3372
3462
  peg$currPos++;
3373
3463
  } else {
3374
3464
  s6 = peg$FAILED;
3375
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3465
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3376
3466
  }
3377
3467
  }
3378
3468
  } else {
@@ -3385,7 +3475,7 @@ function peg$parse(input, options) {
3385
3475
  }
3386
3476
  if (s4 !== peg$FAILED) {
3387
3477
  peg$savedPos = peg$currPos;
3388
- s5 = peg$f44(s4);
3478
+ s5 = peg$f45(s4);
3389
3479
  if (s5) {
3390
3480
  s5 = undefined;
3391
3481
  } else {
@@ -3419,7 +3509,7 @@ function peg$parse(input, options) {
3419
3509
  s9 = peg$parseVerbatimFieldValue();
3420
3510
  if (s9 !== peg$FAILED) {
3421
3511
  peg$savedPos = s0;
3422
- s0 = peg$f45(s4, s6, s9);
3512
+ s0 = peg$f46(s4, s6, s9);
3423
3513
  } else {
3424
3514
  peg$currPos = s0;
3425
3515
  s0 = peg$FAILED;
@@ -3455,7 +3545,7 @@ function peg$parse(input, options) {
3455
3545
  peg$currPos++;
3456
3546
  } else {
3457
3547
  s1 = peg$FAILED;
3458
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3548
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3459
3549
  }
3460
3550
  if (s1 !== peg$FAILED) {
3461
3551
  s2 = peg$currPos;
@@ -3465,7 +3555,7 @@ function peg$parse(input, options) {
3465
3555
  peg$currPos += 5;
3466
3556
  } else {
3467
3557
  s3 = peg$FAILED;
3468
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
3558
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3469
3559
  }
3470
3560
  peg$silentFails--;
3471
3561
  if (s3 === peg$FAILED) {
@@ -3482,7 +3572,7 @@ function peg$parse(input, options) {
3482
3572
  peg$currPos += 3;
3483
3573
  } else {
3484
3574
  s4 = peg$FAILED;
3485
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
3575
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
3486
3576
  }
3487
3577
  peg$silentFails--;
3488
3578
  if (s4 === peg$FAILED) {
@@ -3494,22 +3584,22 @@ function peg$parse(input, options) {
3494
3584
  if (s3 !== peg$FAILED) {
3495
3585
  s4 = peg$currPos;
3496
3586
  s5 = [];
3497
- if (peg$r18.test(input.charAt(peg$currPos))) {
3587
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3498
3588
  s6 = input.charAt(peg$currPos);
3499
3589
  peg$currPos++;
3500
3590
  } else {
3501
3591
  s6 = peg$FAILED;
3502
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3592
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3503
3593
  }
3504
3594
  if (s6 !== peg$FAILED) {
3505
3595
  while (s6 !== peg$FAILED) {
3506
3596
  s5.push(s6);
3507
- if (peg$r18.test(input.charAt(peg$currPos))) {
3597
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3508
3598
  s6 = input.charAt(peg$currPos);
3509
3599
  peg$currPos++;
3510
3600
  } else {
3511
3601
  s6 = peg$FAILED;
3512
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3602
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3513
3603
  }
3514
3604
  }
3515
3605
  } else {
@@ -3522,7 +3612,7 @@ function peg$parse(input, options) {
3522
3612
  }
3523
3613
  if (s4 !== peg$FAILED) {
3524
3614
  peg$savedPos = peg$currPos;
3525
- s5 = peg$f46(s4);
3615
+ s5 = peg$f47(s4);
3526
3616
  if (s5) {
3527
3617
  s5 = undefined;
3528
3618
  } else {
@@ -3541,7 +3631,7 @@ function peg$parse(input, options) {
3541
3631
  s9 = peg$parseArgument();
3542
3632
  if (s9 !== peg$FAILED) {
3543
3633
  peg$savedPos = s0;
3544
- s0 = peg$f47(s4, s6, s8, s9);
3634
+ s0 = peg$f48(s4, s6, s8, s9);
3545
3635
  } else {
3546
3636
  peg$currPos = s0;
3547
3637
  s0 = peg$FAILED;
@@ -3577,7 +3667,7 @@ function peg$parse(input, options) {
3577
3667
  peg$currPos++;
3578
3668
  } else {
3579
3669
  s1 = peg$FAILED;
3580
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3670
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3581
3671
  }
3582
3672
  if (s1 !== peg$FAILED) {
3583
3673
  s2 = peg$currPos;
@@ -3587,7 +3677,7 @@ function peg$parse(input, options) {
3587
3677
  peg$currPos += 5;
3588
3678
  } else {
3589
3679
  s3 = peg$FAILED;
3590
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
3680
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3591
3681
  }
3592
3682
  peg$silentFails--;
3593
3683
  if (s3 === peg$FAILED) {
@@ -3604,7 +3694,7 @@ function peg$parse(input, options) {
3604
3694
  peg$currPos += 3;
3605
3695
  } else {
3606
3696
  s4 = peg$FAILED;
3607
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
3697
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
3608
3698
  }
3609
3699
  peg$silentFails--;
3610
3700
  if (s4 === peg$FAILED) {
@@ -3616,22 +3706,22 @@ function peg$parse(input, options) {
3616
3706
  if (s3 !== peg$FAILED) {
3617
3707
  s4 = peg$currPos;
3618
3708
  s5 = [];
3619
- if (peg$r18.test(input.charAt(peg$currPos))) {
3709
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3620
3710
  s6 = input.charAt(peg$currPos);
3621
3711
  peg$currPos++;
3622
3712
  } else {
3623
3713
  s6 = peg$FAILED;
3624
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3714
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3625
3715
  }
3626
3716
  if (s6 !== peg$FAILED) {
3627
3717
  while (s6 !== peg$FAILED) {
3628
3718
  s5.push(s6);
3629
- if (peg$r18.test(input.charAt(peg$currPos))) {
3719
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3630
3720
  s6 = input.charAt(peg$currPos);
3631
3721
  peg$currPos++;
3632
3722
  } else {
3633
3723
  s6 = peg$FAILED;
3634
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3724
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3635
3725
  }
3636
3726
  }
3637
3727
  } else {
@@ -3644,7 +3734,7 @@ function peg$parse(input, options) {
3644
3734
  }
3645
3735
  if (s4 !== peg$FAILED) {
3646
3736
  peg$savedPos = peg$currPos;
3647
- s5 = peg$f48(s4);
3737
+ s5 = peg$f49(s4);
3648
3738
  if (s5) {
3649
3739
  s5 = undefined;
3650
3740
  } else {
@@ -3661,7 +3751,7 @@ function peg$parse(input, options) {
3661
3751
  s8 = peg$parseArgument();
3662
3752
  if (s8 !== peg$FAILED) {
3663
3753
  peg$savedPos = s0;
3664
- s0 = peg$f49(s4, s6, s8);
3754
+ s0 = peg$f50(s4, s6, s8);
3665
3755
  } else {
3666
3756
  peg$currPos = s0;
3667
3757
  s0 = peg$FAILED;
@@ -3693,7 +3783,7 @@ function peg$parse(input, options) {
3693
3783
  peg$currPos++;
3694
3784
  } else {
3695
3785
  s1 = peg$FAILED;
3696
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
3786
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3697
3787
  }
3698
3788
  if (s1 !== peg$FAILED) {
3699
3789
  s2 = peg$currPos;
@@ -3703,7 +3793,7 @@ function peg$parse(input, options) {
3703
3793
  peg$currPos += 5;
3704
3794
  } else {
3705
3795
  s3 = peg$FAILED;
3706
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
3796
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3707
3797
  }
3708
3798
  peg$silentFails--;
3709
3799
  if (s3 === peg$FAILED) {
@@ -3720,7 +3810,7 @@ function peg$parse(input, options) {
3720
3810
  peg$currPos += 3;
3721
3811
  } else {
3722
3812
  s4 = peg$FAILED;
3723
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
3813
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
3724
3814
  }
3725
3815
  peg$silentFails--;
3726
3816
  if (s4 === peg$FAILED) {
@@ -3732,22 +3822,22 @@ function peg$parse(input, options) {
3732
3822
  if (s3 !== peg$FAILED) {
3733
3823
  s4 = peg$currPos;
3734
3824
  s5 = [];
3735
- if (peg$r18.test(input.charAt(peg$currPos))) {
3825
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3736
3826
  s6 = input.charAt(peg$currPos);
3737
3827
  peg$currPos++;
3738
3828
  } else {
3739
3829
  s6 = peg$FAILED;
3740
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3830
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3741
3831
  }
3742
3832
  if (s6 !== peg$FAILED) {
3743
3833
  while (s6 !== peg$FAILED) {
3744
3834
  s5.push(s6);
3745
- if (peg$r18.test(input.charAt(peg$currPos))) {
3835
+ if (peg$r19.test(input.charAt(peg$currPos))) {
3746
3836
  s6 = input.charAt(peg$currPos);
3747
3837
  peg$currPos++;
3748
3838
  } else {
3749
3839
  s6 = peg$FAILED;
3750
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
3840
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3751
3841
  }
3752
3842
  }
3753
3843
  } else {
@@ -3767,7 +3857,7 @@ function peg$parse(input, options) {
3767
3857
  }
3768
3858
  s6 = peg$parse__();
3769
3859
  peg$savedPos = s0;
3770
- s0 = peg$f50(s4, s5);
3860
+ s0 = peg$f51(s4, s5);
3771
3861
  } else {
3772
3862
  peg$currPos = s0;
3773
3863
  s0 = peg$FAILED;
@@ -3803,28 +3893,28 @@ function peg$parse(input, options) {
3803
3893
  peg$currPos++;
3804
3894
  } else {
3805
3895
  s1 = peg$FAILED;
3806
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
3896
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
3807
3897
  }
3808
3898
  if (s1 !== peg$FAILED) {
3809
3899
  s2 = peg$parse__h();
3810
3900
  s3 = peg$currPos;
3811
3901
  s4 = [];
3812
- if (peg$r19.test(input.charAt(peg$currPos))) {
3902
+ if (peg$r20.test(input.charAt(peg$currPos))) {
3813
3903
  s5 = input.charAt(peg$currPos);
3814
3904
  peg$currPos++;
3815
3905
  } else {
3816
3906
  s5 = peg$FAILED;
3817
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
3907
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
3818
3908
  }
3819
3909
  if (s5 !== peg$FAILED) {
3820
3910
  while (s5 !== peg$FAILED) {
3821
3911
  s4.push(s5);
3822
- if (peg$r19.test(input.charAt(peg$currPos))) {
3912
+ if (peg$r20.test(input.charAt(peg$currPos))) {
3823
3913
  s5 = input.charAt(peg$currPos);
3824
3914
  peg$currPos++;
3825
3915
  } else {
3826
3916
  s5 = peg$FAILED;
3827
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
3917
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
3828
3918
  }
3829
3919
  }
3830
3920
  } else {
@@ -3842,11 +3932,11 @@ function peg$parse(input, options) {
3842
3932
  peg$currPos++;
3843
3933
  } else {
3844
3934
  s5 = peg$FAILED;
3845
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
3935
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
3846
3936
  }
3847
3937
  if (s5 !== peg$FAILED) {
3848
3938
  peg$savedPos = s0;
3849
- s0 = peg$f51(s3);
3939
+ s0 = peg$f52(s3);
3850
3940
  } else {
3851
3941
  peg$currPos = s0;
3852
3942
  s0 = peg$FAILED;
@@ -3868,16 +3958,16 @@ function peg$parse(input, options) {
3868
3958
 
3869
3959
  s0 = peg$currPos;
3870
3960
  s1 = peg$parse__h();
3871
- if (peg$r20.test(input.charAt(peg$currPos))) {
3961
+ if (peg$r21.test(input.charAt(peg$currPos))) {
3872
3962
  s2 = input.charAt(peg$currPos);
3873
3963
  peg$currPos++;
3874
3964
  } else {
3875
3965
  s2 = peg$FAILED;
3876
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
3966
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
3877
3967
  }
3878
3968
  if (s2 !== peg$FAILED) {
3879
3969
  peg$savedPos = s0;
3880
- s0 = peg$f52(s2);
3970
+ s0 = peg$f53(s2);
3881
3971
  } else {
3882
3972
  peg$currPos = s0;
3883
3973
  s0 = peg$FAILED;
@@ -3903,30 +3993,30 @@ function peg$parse(input, options) {
3903
3993
 
3904
3994
  s0 = peg$currPos;
3905
3995
  s1 = peg$currPos;
3906
- if (peg$r21.test(input.charAt(peg$currPos))) {
3996
+ if (peg$r22.test(input.charAt(peg$currPos))) {
3907
3997
  s2 = input.charAt(peg$currPos);
3908
3998
  peg$currPos++;
3909
3999
  } else {
3910
4000
  s2 = peg$FAILED;
3911
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
4001
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
3912
4002
  }
3913
4003
  if (s2 !== peg$FAILED) {
3914
4004
  s3 = [];
3915
- if (peg$r22.test(input.charAt(peg$currPos))) {
4005
+ if (peg$r23.test(input.charAt(peg$currPos))) {
3916
4006
  s4 = input.charAt(peg$currPos);
3917
4007
  peg$currPos++;
3918
4008
  } else {
3919
4009
  s4 = peg$FAILED;
3920
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
4010
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
3921
4011
  }
3922
4012
  while (s4 !== peg$FAILED) {
3923
4013
  s3.push(s4);
3924
- if (peg$r22.test(input.charAt(peg$currPos))) {
4014
+ if (peg$r23.test(input.charAt(peg$currPos))) {
3925
4015
  s4 = input.charAt(peg$currPos);
3926
4016
  peg$currPos++;
3927
4017
  } else {
3928
4018
  s4 = peg$FAILED;
3929
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
4019
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
3930
4020
  }
3931
4021
  }
3932
4022
  s2 = [s2, s3];
@@ -3947,12 +4037,12 @@ function peg$parse(input, options) {
3947
4037
  function peg$parseSimpleDiacritic() {
3948
4038
  var s0;
3949
4039
 
3950
- if (peg$r23.test(input.charAt(peg$currPos))) {
4040
+ if (peg$r24.test(input.charAt(peg$currPos))) {
3951
4041
  s0 = input.charAt(peg$currPos);
3952
4042
  peg$currPos++;
3953
4043
  } else {
3954
4044
  s0 = peg$FAILED;
3955
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
4045
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
3956
4046
  }
3957
4047
 
3958
4048
  return s0;
@@ -3961,12 +4051,12 @@ function peg$parse(input, options) {
3961
4051
  function peg$parseExtendedDiacritic() {
3962
4052
  var s0;
3963
4053
 
3964
- if (peg$r24.test(input.charAt(peg$currPos))) {
4054
+ if (peg$r25.test(input.charAt(peg$currPos))) {
3965
4055
  s0 = input.charAt(peg$currPos);
3966
4056
  peg$currPos++;
3967
4057
  } else {
3968
4058
  s0 = peg$FAILED;
3969
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
4059
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
3970
4060
  }
3971
4061
 
3972
4062
  return s0;
@@ -3982,7 +4072,7 @@ function peg$parse(input, options) {
3982
4072
  peg$currPos++;
3983
4073
  } else {
3984
4074
  s2 = peg$FAILED;
3985
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
4075
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
3986
4076
  }
3987
4077
  if (s2 !== peg$FAILED) {
3988
4078
  s3 = peg$parse__();
@@ -4040,7 +4130,7 @@ function peg$parse(input, options) {
4040
4130
  peg$currPos++;
4041
4131
  } else {
4042
4132
  s2 = peg$FAILED;
4043
- if (peg$silentFails === 0) { peg$fail(peg$e50); }
4133
+ if (peg$silentFails === 0) { peg$fail(peg$e51); }
4044
4134
  }
4045
4135
  if (s2 !== peg$FAILED) {
4046
4136
  s3 = peg$parse__();
@@ -4057,12 +4147,12 @@ function peg$parse(input, options) {
4057
4147
  function peg$parseEOL() {
4058
4148
  var s0;
4059
4149
 
4060
- if (peg$r25.test(input.charAt(peg$currPos))) {
4150
+ if (peg$r26.test(input.charAt(peg$currPos))) {
4061
4151
  s0 = input.charAt(peg$currPos);
4062
4152
  peg$currPos++;
4063
4153
  } else {
4064
4154
  s0 = peg$FAILED;
4065
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
4155
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
4066
4156
  }
4067
4157
 
4068
4158
  return s0;
@@ -4073,22 +4163,22 @@ function peg$parse(input, options) {
4073
4163
 
4074
4164
  peg$silentFails++;
4075
4165
  s0 = [];
4076
- if (peg$r26.test(input.charAt(peg$currPos))) {
4166
+ if (peg$r27.test(input.charAt(peg$currPos))) {
4077
4167
  s1 = input.charAt(peg$currPos);
4078
4168
  peg$currPos++;
4079
4169
  } else {
4080
4170
  s1 = peg$FAILED;
4081
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
4171
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
4082
4172
  }
4083
4173
  if (s1 !== peg$FAILED) {
4084
4174
  while (s1 !== peg$FAILED) {
4085
4175
  s0.push(s1);
4086
- if (peg$r26.test(input.charAt(peg$currPos))) {
4176
+ if (peg$r27.test(input.charAt(peg$currPos))) {
4087
4177
  s1 = input.charAt(peg$currPos);
4088
4178
  peg$currPos++;
4089
4179
  } else {
4090
4180
  s1 = peg$FAILED;
4091
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
4181
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
4092
4182
  }
4093
4183
  }
4094
4184
  } else {
@@ -4097,7 +4187,7 @@ function peg$parse(input, options) {
4097
4187
  peg$silentFails--;
4098
4188
  if (s0 === peg$FAILED) {
4099
4189
  s1 = peg$FAILED;
4100
- if (peg$silentFails === 0) { peg$fail(peg$e52); }
4190
+ if (peg$silentFails === 0) { peg$fail(peg$e53); }
4101
4191
  }
4102
4192
 
4103
4193
  return s0;
@@ -4108,26 +4198,26 @@ function peg$parse(input, options) {
4108
4198
 
4109
4199
  peg$silentFails++;
4110
4200
  s0 = [];
4111
- if (peg$r26.test(input.charAt(peg$currPos))) {
4201
+ if (peg$r27.test(input.charAt(peg$currPos))) {
4112
4202
  s1 = input.charAt(peg$currPos);
4113
4203
  peg$currPos++;
4114
4204
  } else {
4115
4205
  s1 = peg$FAILED;
4116
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
4206
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
4117
4207
  }
4118
4208
  while (s1 !== peg$FAILED) {
4119
4209
  s0.push(s1);
4120
- if (peg$r26.test(input.charAt(peg$currPos))) {
4210
+ if (peg$r27.test(input.charAt(peg$currPos))) {
4121
4211
  s1 = input.charAt(peg$currPos);
4122
4212
  peg$currPos++;
4123
4213
  } else {
4124
4214
  s1 = peg$FAILED;
4125
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
4215
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
4126
4216
  }
4127
4217
  }
4128
4218
  peg$silentFails--;
4129
4219
  s1 = peg$FAILED;
4130
- if (peg$silentFails === 0) { peg$fail(peg$e54); }
4220
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
4131
4221
 
4132
4222
  return s0;
4133
4223
  }
@@ -4137,22 +4227,22 @@ function peg$parse(input, options) {
4137
4227
 
4138
4228
  peg$silentFails++;
4139
4229
  s0 = [];
4140
- if (peg$r25.test(input.charAt(peg$currPos))) {
4230
+ if (peg$r26.test(input.charAt(peg$currPos))) {
4141
4231
  s1 = input.charAt(peg$currPos);
4142
4232
  peg$currPos++;
4143
4233
  } else {
4144
4234
  s1 = peg$FAILED;
4145
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
4235
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
4146
4236
  }
4147
4237
  if (s1 !== peg$FAILED) {
4148
4238
  while (s1 !== peg$FAILED) {
4149
4239
  s0.push(s1);
4150
- if (peg$r25.test(input.charAt(peg$currPos))) {
4240
+ if (peg$r26.test(input.charAt(peg$currPos))) {
4151
4241
  s1 = input.charAt(peg$currPos);
4152
4242
  peg$currPos++;
4153
4243
  } else {
4154
4244
  s1 = peg$FAILED;
4155
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
4245
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
4156
4246
  }
4157
4247
  }
4158
4248
  } else {
@@ -4161,7 +4251,7 @@ function peg$parse(input, options) {
4161
4251
  peg$silentFails--;
4162
4252
  if (s0 === peg$FAILED) {
4163
4253
  s1 = peg$FAILED;
4164
- if (peg$silentFails === 0) { peg$fail(peg$e55); }
4254
+ if (peg$silentFails === 0) { peg$fail(peg$e56); }
4165
4255
  }
4166
4256
 
4167
4257
  return s0;
@@ -4172,26 +4262,26 @@ function peg$parse(input, options) {
4172
4262
 
4173
4263
  peg$silentFails++;
4174
4264
  s0 = [];
4175
- if (peg$r25.test(input.charAt(peg$currPos))) {
4265
+ if (peg$r26.test(input.charAt(peg$currPos))) {
4176
4266
  s1 = input.charAt(peg$currPos);
4177
4267
  peg$currPos++;
4178
4268
  } else {
4179
4269
  s1 = peg$FAILED;
4180
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
4270
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
4181
4271
  }
4182
4272
  while (s1 !== peg$FAILED) {
4183
4273
  s0.push(s1);
4184
- if (peg$r25.test(input.charAt(peg$currPos))) {
4274
+ if (peg$r26.test(input.charAt(peg$currPos))) {
4185
4275
  s1 = input.charAt(peg$currPos);
4186
4276
  peg$currPos++;
4187
4277
  } else {
4188
4278
  s1 = peg$FAILED;
4189
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
4279
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
4190
4280
  }
4191
4281
  }
4192
4282
  peg$silentFails--;
4193
4283
  s1 = peg$FAILED;
4194
- if (peg$silentFails === 0) { peg$fail(peg$e56); }
4284
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
4195
4285
 
4196
4286
  return s0;
4197
4287
  }
@@ -4201,22 +4291,22 @@ function peg$parse(input, options) {
4201
4291
 
4202
4292
  peg$silentFails++;
4203
4293
  s0 = [];
4204
- if (peg$r27.test(input.charAt(peg$currPos))) {
4294
+ if (peg$r28.test(input.charAt(peg$currPos))) {
4205
4295
  s1 = input.charAt(peg$currPos);
4206
4296
  peg$currPos++;
4207
4297
  } else {
4208
4298
  s1 = peg$FAILED;
4209
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
4299
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
4210
4300
  }
4211
4301
  if (s1 !== peg$FAILED) {
4212
4302
  while (s1 !== peg$FAILED) {
4213
4303
  s0.push(s1);
4214
- if (peg$r27.test(input.charAt(peg$currPos))) {
4304
+ if (peg$r28.test(input.charAt(peg$currPos))) {
4215
4305
  s1 = input.charAt(peg$currPos);
4216
4306
  peg$currPos++;
4217
4307
  } else {
4218
4308
  s1 = peg$FAILED;
4219
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
4309
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
4220
4310
  }
4221
4311
  }
4222
4312
  } else {
@@ -4225,7 +4315,7 @@ function peg$parse(input, options) {
4225
4315
  peg$silentFails--;
4226
4316
  if (s0 === peg$FAILED) {
4227
4317
  s1 = peg$FAILED;
4228
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
4318
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
4229
4319
  }
4230
4320
 
4231
4321
  return s0;
@@ -4236,26 +4326,26 @@ function peg$parse(input, options) {
4236
4326
 
4237
4327
  peg$silentFails++;
4238
4328
  s0 = [];
4239
- if (peg$r27.test(input.charAt(peg$currPos))) {
4329
+ if (peg$r28.test(input.charAt(peg$currPos))) {
4240
4330
  s1 = input.charAt(peg$currPos);
4241
4331
  peg$currPos++;
4242
4332
  } else {
4243
4333
  s1 = peg$FAILED;
4244
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
4334
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
4245
4335
  }
4246
4336
  while (s1 !== peg$FAILED) {
4247
4337
  s0.push(s1);
4248
- if (peg$r27.test(input.charAt(peg$currPos))) {
4338
+ if (peg$r28.test(input.charAt(peg$currPos))) {
4249
4339
  s1 = input.charAt(peg$currPos);
4250
4340
  peg$currPos++;
4251
4341
  } else {
4252
4342
  s1 = peg$FAILED;
4253
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
4343
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
4254
4344
  }
4255
4345
  }
4256
4346
  peg$silentFails--;
4257
4347
  s1 = peg$FAILED;
4258
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
4348
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
4259
4349
 
4260
4350
  return s0;
4261
4351
  }
@@ -4313,6 +4403,8 @@ function peg$parse(input, options) {
4313
4403
  }
4314
4404
 
4315
4405
  function normalizeWhitespace(textArr) {
4406
+ if (typeof textArr === 'string') textArr = Array.from(textArr)
4407
+
4316
4408
  return textArr.reduce((prev, curr) => {
4317
4409
  if (/\s/.test(curr)) {
4318
4410
  if (/\s/.test(prev[prev.length - 1])) {