@knowvah/dot-engine 2.3.1 → 2.4.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.
Files changed (112) hide show
  1. package/dist/common/arith.d.ts +12 -0
  2. package/dist/common/arith.d.ts.map +1 -1
  3. package/dist/common/edge-in-box.d.ts +31 -0
  4. package/dist/common/edge-in-box.d.ts.map +1 -0
  5. package/dist/common/htmltable-emit.d.ts +1 -1
  6. package/dist/common/htmltable-emit.d.ts.map +1 -1
  7. package/dist/common/make-label.d.ts +3 -1
  8. package/dist/common/make-label.d.ts.map +1 -1
  9. package/dist/common/poly-gencode.d.ts +12 -1
  10. package/dist/common/poly-gencode.d.ts.map +1 -1
  11. package/dist/gvc/device.d.ts.map +1 -1
  12. package/dist/gvc/emit-gates.d.ts +35 -0
  13. package/dist/gvc/emit-gates.d.ts.map +1 -0
  14. package/dist/gvc/job.d.ts +4 -0
  15. package/dist/gvc/job.d.ts.map +1 -1
  16. package/dist/gvc/viewport.d.ts +13 -0
  17. package/dist/gvc/viewport.d.ts.map +1 -1
  18. package/dist/index.js +813 -542
  19. package/dist/index.js.map +4 -4
  20. package/dist/layout/circo/blockpath.d.ts +1 -38
  21. package/dist/layout/circo/blockpath.d.ts.map +1 -1
  22. package/dist/layout/circo/crossings.d.ts +59 -0
  23. package/dist/layout/circo/crossings.d.ts.map +1 -0
  24. package/dist/layout/dot/edge-route-chain.d.ts +5 -3
  25. package/dist/layout/dot/edge-route-chain.d.ts.map +1 -1
  26. package/dist/layout/dot/edge-route.d.ts.map +1 -1
  27. package/dist/layout/dot/index.d.ts +10 -2
  28. package/dist/layout/dot/index.d.ts.map +1 -1
  29. package/dist/layout/dot/ortho-adapter.d.ts +6 -2
  30. package/dist/layout/dot/ortho-adapter.d.ts.map +1 -1
  31. package/dist/layout/dot/pack-components.d.ts +4 -1
  32. package/dist/layout/dot/pack-components.d.ts.map +1 -1
  33. package/dist/layout/dot/splines-flat-multi.d.ts +4 -4
  34. package/dist/layout/dot/splines-flat.d.ts +1 -11
  35. package/dist/layout/dot/splines-flat.d.ts.map +1 -1
  36. package/dist/layout/dot/splines-route.d.ts.map +1 -1
  37. package/dist/layout/neato/constraint-adjust.d.ts +32 -0
  38. package/dist/layout/neato/constraint-adjust.d.ts.map +1 -1
  39. package/dist/layout/neato/multispline.d.ts.map +1 -1
  40. package/dist/layout/neato/splines.d.ts.map +1 -1
  41. package/dist/layout/pack/poly-place.d.ts.map +1 -1
  42. package/dist/layout/sfdp/__fixtures__/pcp-rotate-native.d.ts +23 -0
  43. package/dist/layout/sfdp/__fixtures__/pcp-rotate-native.d.ts.map +1 -0
  44. package/dist/layout/sfdp/spring-driver.d.ts +6 -0
  45. package/dist/layout/sfdp/spring-driver.d.ts.map +1 -1
  46. package/dist/ortho/index.d.ts +4 -1
  47. package/dist/ortho/index.d.ts.map +1 -1
  48. package/dist/ortho/maze.d.ts +5 -2
  49. package/dist/ortho/maze.d.ts.map +1 -1
  50. package/dist/ortho/partition.d.ts +8 -1
  51. package/dist/ortho/partition.d.ts.map +1 -1
  52. package/dist/ortho/trap-segment.d.ts +2 -1
  53. package/dist/ortho/trap-segment.d.ts.map +1 -1
  54. package/dist/ortho/trapezoid.d.ts.map +1 -1
  55. package/dist/parser/index.d.ts +0 -7
  56. package/dist/parser/index.d.ts.map +1 -1
  57. package/dist/parser/number-scan.d.ts +31 -0
  58. package/dist/parser/number-scan.d.ts.map +1 -0
  59. package/dist/render/dot/edge-draw.d.ts +12 -0
  60. package/dist/render/dot/edge-draw.d.ts.map +1 -1
  61. package/dist/render/svg-graph.d.ts +6 -5
  62. package/dist/render/svg-graph.d.ts.map +1 -1
  63. package/dist/render/svg.d.ts +2 -21
  64. package/dist/render/svg.d.ts.map +1 -1
  65. package/dist/render.js +813 -542
  66. package/dist/render.js.map +4 -4
  67. package/dist/xdot/parse.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/src/common/arith.ts +25 -0
  70. package/src/common/edge-in-box.ts +54 -0
  71. package/src/common/graph-init.ts +3 -3
  72. package/src/common/htmltable-emit.ts +4 -2
  73. package/src/common/make-label.ts +3 -1
  74. package/src/common/poly-gencode.ts +18 -4
  75. package/src/gvc/device.ts +8 -41
  76. package/src/gvc/edge-labels.ts +30 -13
  77. package/src/gvc/emit-gates.ts +89 -0
  78. package/src/gvc/job.ts +4 -0
  79. package/src/gvc/viewport.ts +29 -0
  80. package/src/layout/circo/blockpath.ts +6 -125
  81. package/src/layout/circo/crossings.ts +171 -0
  82. package/src/layout/dot/__fixtures__/2784.dot +1 -0
  83. package/src/layout/dot/__fixtures__/2784.native-16.1.svg +48 -0
  84. package/src/layout/dot/edge-route-chain.ts +11 -5
  85. package/src/layout/dot/edge-route.ts +2 -1
  86. package/src/layout/dot/index.ts +14 -4
  87. package/src/layout/dot/ortho-adapter.ts +7 -3
  88. package/src/layout/dot/pack-components.ts +11 -4
  89. package/src/layout/dot/splines-flat-multi.ts +4 -4
  90. package/src/layout/dot/splines-flat.ts +5 -32
  91. package/src/layout/dot/splines-route.ts +10 -2
  92. package/src/layout/dot/splines.ts +6 -6
  93. package/src/layout/neato/constraint-adjust.ts +10 -4
  94. package/src/layout/neato/multispline.ts +26 -9
  95. package/src/layout/neato/splines.ts +7 -7
  96. package/src/layout/pack/poly-place.ts +9 -2
  97. package/src/layout/sfdp/__fixtures__/pcp-rotate-native.ts +94 -0
  98. package/src/layout/sfdp/spring-driver.ts +45 -13
  99. package/src/ortho/index.ts +22 -13
  100. package/src/ortho/maze.ts +8 -2
  101. package/src/ortho/partition.ts +17 -2
  102. package/src/ortho/trap-segment.ts +47 -24
  103. package/src/ortho/trapezoid.ts +24 -15
  104. package/src/parser/dot.js +334 -343
  105. package/src/parser/dot.pegjs +19 -5
  106. package/src/parser/index.ts +15 -0
  107. package/src/parser/number-scan.ts +118 -0
  108. package/src/render/dot/edge-draw.ts +25 -0
  109. package/src/render/svg-graph.ts +77 -47
  110. package/src/render/svg-helpers.ts +2 -2
  111. package/src/render/svg.ts +4 -41
  112. package/src/xdot/parse.ts +19 -5
package/src/parser/dot.js CHANGED
@@ -167,9 +167,9 @@ function peg$parse(input, options) {
167
167
  const peg$c0 = "{";
168
168
  const peg$c1 = "}";
169
169
  const peg$c2 = ";";
170
- const peg$c3 = "[";
171
- const peg$c4 = "]";
172
- const peg$c5 = "=";
170
+ const peg$c3 = "=";
171
+ const peg$c4 = "[";
172
+ const peg$c5 = "]";
173
173
  const peg$c6 = ":";
174
174
  const peg$c7 = "->";
175
175
  const peg$c8 = "--";
@@ -194,33 +194,31 @@ function peg$parse(input, options) {
194
194
  const peg$r3 = /^[A-Za-z_\x80-\uFFFF]/;
195
195
  const peg$r4 = /^[A-Za-z_0-9\x80-\uFFFF]/;
196
196
  const peg$r5 = /^[0-9]/;
197
- const peg$r6 = /^[eE]/;
198
- const peg$r7 = /^[+\-]/;
199
- const peg$r8 = /^[Ss]/;
200
- const peg$r9 = /^[Tt]/;
201
- const peg$r10 = /^[Rr]/;
202
- const peg$r11 = /^[Ii]/;
203
- const peg$r12 = /^[Cc]/;
204
- const peg$r13 = /^[Gg]/;
205
- const peg$r14 = /^[Aa]/;
206
- const peg$r15 = /^[Pp]/;
207
- const peg$r16 = /^[Hh]/;
208
- const peg$r17 = /^[Dd]/;
209
- const peg$r18 = /^[Nn]/;
210
- const peg$r19 = /^[Oo]/;
211
- const peg$r20 = /^[Ee]/;
212
- const peg$r21 = /^[Uu]/;
213
- const peg$r22 = /^[Bb]/;
214
- const peg$r23 = /^[ \t\r\n]/;
215
- const peg$r24 = /^[^\n]/;
197
+ const peg$r6 = /^[Ss]/;
198
+ const peg$r7 = /^[Tt]/;
199
+ const peg$r8 = /^[Rr]/;
200
+ const peg$r9 = /^[Ii]/;
201
+ const peg$r10 = /^[Cc]/;
202
+ const peg$r11 = /^[Gg]/;
203
+ const peg$r12 = /^[Aa]/;
204
+ const peg$r13 = /^[Pp]/;
205
+ const peg$r14 = /^[Hh]/;
206
+ const peg$r15 = /^[Dd]/;
207
+ const peg$r16 = /^[Nn]/;
208
+ const peg$r17 = /^[Oo]/;
209
+ const peg$r18 = /^[Ee]/;
210
+ const peg$r19 = /^[Uu]/;
211
+ const peg$r20 = /^[Bb]/;
212
+ const peg$r21 = /^[ \t\r\n]/;
213
+ const peg$r22 = /^[^\n]/;
216
214
 
217
215
  const peg$e0 = peg$literalExpectation("{", false);
218
216
  const peg$e1 = peg$literalExpectation("}", false);
219
217
  const peg$e2 = peg$literalExpectation(";", false);
220
- const peg$e3 = peg$literalExpectation("[", false);
221
- const peg$e4 = peg$literalExpectation("]", false);
222
- const peg$e5 = peg$classExpectation([";", ","], false, false, false);
223
- const peg$e6 = peg$literalExpectation("=", false);
218
+ const peg$e3 = peg$literalExpectation("=", false);
219
+ const peg$e4 = peg$literalExpectation("[", false);
220
+ const peg$e5 = peg$literalExpectation("]", false);
221
+ const peg$e6 = peg$classExpectation([";", ","], false, false, false);
224
222
  const peg$e7 = peg$literalExpectation(":", false);
225
223
  const peg$e8 = peg$otherExpectation("edge operator");
226
224
  const peg$e9 = peg$literalExpectation("->", false);
@@ -240,30 +238,28 @@ function peg$parse(input, options) {
240
238
  const peg$e23 = peg$literalExpectation("-", false);
241
239
  const peg$e24 = peg$classExpectation([["0", "9"]], false, false, false);
242
240
  const peg$e25 = peg$literalExpectation(".", false);
243
- const peg$e26 = peg$classExpectation(["e", "E"], false, false, false);
244
- const peg$e27 = peg$classExpectation(["+", "-"], false, false, false);
245
- const peg$e28 = peg$classExpectation(["S", "s"], false, false, false);
246
- const peg$e29 = peg$classExpectation(["T", "t"], false, false, false);
247
- const peg$e30 = peg$classExpectation(["R", "r"], false, false, false);
248
- const peg$e31 = peg$classExpectation(["I", "i"], false, false, false);
249
- const peg$e32 = peg$classExpectation(["C", "c"], false, false, false);
250
- const peg$e33 = peg$classExpectation(["G", "g"], false, false, false);
251
- const peg$e34 = peg$classExpectation(["A", "a"], false, false, false);
252
- const peg$e35 = peg$classExpectation(["P", "p"], false, false, false);
253
- const peg$e36 = peg$classExpectation(["H", "h"], false, false, false);
254
- const peg$e37 = peg$classExpectation(["D", "d"], false, false, false);
255
- const peg$e38 = peg$classExpectation(["N", "n"], false, false, false);
256
- const peg$e39 = peg$classExpectation(["O", "o"], false, false, false);
257
- const peg$e40 = peg$classExpectation(["E", "e"], false, false, false);
258
- const peg$e41 = peg$classExpectation(["U", "u"], false, false, false);
259
- const peg$e42 = peg$classExpectation(["B", "b"], false, false, false);
260
- const peg$e43 = peg$classExpectation([" ", "\t", "\r", "\n"], false, false, false);
261
- const peg$e44 = peg$literalExpectation("/*", false);
262
- const peg$e45 = peg$literalExpectation("*/", false);
263
- const peg$e46 = peg$literalExpectation("//", false);
264
- const peg$e47 = peg$classExpectation(["\n"], true, false, false);
265
- const peg$e48 = peg$literalExpectation("\n", false);
266
- const peg$e49 = peg$literalExpectation("#", false);
241
+ const peg$e26 = peg$classExpectation(["S", "s"], false, false, false);
242
+ const peg$e27 = peg$classExpectation(["T", "t"], false, false, false);
243
+ const peg$e28 = peg$classExpectation(["R", "r"], false, false, false);
244
+ const peg$e29 = peg$classExpectation(["I", "i"], false, false, false);
245
+ const peg$e30 = peg$classExpectation(["C", "c"], false, false, false);
246
+ const peg$e31 = peg$classExpectation(["G", "g"], false, false, false);
247
+ const peg$e32 = peg$classExpectation(["A", "a"], false, false, false);
248
+ const peg$e33 = peg$classExpectation(["P", "p"], false, false, false);
249
+ const peg$e34 = peg$classExpectation(["H", "h"], false, false, false);
250
+ const peg$e35 = peg$classExpectation(["D", "d"], false, false, false);
251
+ const peg$e36 = peg$classExpectation(["N", "n"], false, false, false);
252
+ const peg$e37 = peg$classExpectation(["O", "o"], false, false, false);
253
+ const peg$e38 = peg$classExpectation(["E", "e"], false, false, false);
254
+ const peg$e39 = peg$classExpectation(["U", "u"], false, false, false);
255
+ const peg$e40 = peg$classExpectation(["B", "b"], false, false, false);
256
+ const peg$e41 = peg$classExpectation([" ", "\t", "\r", "\n"], false, false, false);
257
+ const peg$e42 = peg$literalExpectation("/*", false);
258
+ const peg$e43 = peg$literalExpectation("*/", false);
259
+ const peg$e44 = peg$literalExpectation("//", false);
260
+ const peg$e45 = peg$classExpectation(["\n"], true, false, false);
261
+ const peg$e46 = peg$literalExpectation("\n", false);
262
+ const peg$e47 = peg$literalExpectation("#", false);
267
263
 
268
264
  function peg$f0(s, t, id, stmts) {
269
265
  return {
@@ -285,17 +281,24 @@ function peg$parse(input, options) {
285
281
  function peg$f9(stmts) { return stmts; }
286
282
  function peg$f10(s) { return s; }
287
283
  function peg$f11(s) { return s; }
288
- function peg$f12(t, attrs) { return { type: "attr", target: t, attrs: attrs }; }
284
+ function peg$f12(t, m, attrs) {
285
+ // grammar.y:attrstmt calls nomacros() when a macro name is present;
286
+ // the attributes are still applied unchanged.
287
+ if (m) console.error("Warning: attribute macros not implemented");
288
+ return { type: "attr", target: t, attrs: attrs };
289
+ }
289
290
  function peg$f13(a) { return { type: "assign", key: a.key, value: a.value }; }
290
- function peg$f14() { return "graph"; }
291
- function peg$f15() { return "node"; }
292
- function peg$f16() { return "edge"; }
293
- function peg$f17(defs, rest) { return defs.concat(rest); }
294
- function peg$f18() { return []; }
295
- function peg$f19(a) { return a; }
296
- function peg$f20(pairs) { return pairs; }
297
- function peg$f21(k, v) { return { key: k, value: v }; }
298
- function peg$f22(head, chain, attrs) {
291
+ function peg$f14() { return true; }
292
+ function peg$f15() { return false; }
293
+ function peg$f16() { return "graph"; }
294
+ function peg$f17() { return "node"; }
295
+ function peg$f18() { return "edge"; }
296
+ function peg$f19(defs, rest) { return defs.concat(rest); }
297
+ function peg$f20() { return []; }
298
+ function peg$f21(a) { return a; }
299
+ function peg$f22(pairs) { return pairs; }
300
+ function peg$f23(k, v) { return { key: k, value: v }; }
301
+ function peg$f24(head, chain, attrs) {
299
302
  if (chain.length > 0) {
300
303
  const nodes = [head].concat(chain);
301
304
  return { type: "edge", nodes: nodes, attrs: attrs };
@@ -309,28 +312,28 @@ function peg$parse(input, options) {
309
312
  return { type: "node", id: head, attrs: attrs };
310
313
  }
311
314
  }
312
- function peg$f23(s) { return s; }
313
- function peg$f24(n) { return n; }
314
- function peg$f25(id, port, compass) { return { id: id, port: port, compass: compass }; }
315
- function peg$f26(id, port) { return { id: id, port: port, compass: null }; }
316
- function peg$f27(id) { return { id: id, port: null, compass: null }; }
317
- function peg$f28(s, rest) { return [s].concat(rest); }
318
- function peg$f29() { return []; }
319
- function peg$f30(id, stmts) { return { type: "subgraph", id: id, stmts: stmts }; }
320
- function peg$f31(stmts) { return { type: "subgraph", id: null, stmts: stmts }; }
321
- function peg$f32(stmts) { return { type: "subgraph", id: null, stmts: stmts }; }
322
- function peg$f33(first, s) { return s; }
323
- function peg$f34(first, rest) { return rest.length > 0 ? first + rest.join("") : first; }
324
- function peg$f35(chars) { return chars.join(""); }
325
- function peg$f36() { return '"'; }
326
- function peg$f37() { return ''; }
327
- function peg$f38(c) { return '\\' + c; }
328
- function peg$f39(content) { return "\u0001" + content; }
329
- function peg$f40(chars) { return chars.join(""); }
330
- function peg$f41(nested, content) { return "<" + content + ">"; }
331
- function peg$f42(n) { return n; }
332
- function peg$f43(first, rest) { return first + rest.join(""); }
333
- function peg$f44(s) { return Array.isArray(s) ? s.flat(Infinity).filter(x => x !== null && x !== undefined).join("") : String(s); }
315
+ function peg$f25(s) { return s; }
316
+ function peg$f26(n) { return n; }
317
+ function peg$f27(id, port, compass) { return { id: id, port: port, compass: compass }; }
318
+ function peg$f28(id, port) { return { id: id, port: port, compass: null }; }
319
+ function peg$f29(id) { return { id: id, port: null, compass: null }; }
320
+ function peg$f30(s, rest) { return [s].concat(rest); }
321
+ function peg$f31() { return []; }
322
+ function peg$f32(id, stmts) { return { type: "subgraph", id: id, stmts: stmts }; }
323
+ function peg$f33(stmts) { return { type: "subgraph", id: null, stmts: stmts }; }
324
+ function peg$f34(stmts) { return { type: "subgraph", id: null, stmts: stmts }; }
325
+ function peg$f35(first, s) { return s; }
326
+ function peg$f36(first, rest) { return rest.length > 0 ? first + rest.join("") : first; }
327
+ function peg$f37(chars) { return chars.join(""); }
328
+ function peg$f38() { return '"'; }
329
+ function peg$f39() { return ''; }
330
+ function peg$f40(c) { return '\\' + c; }
331
+ function peg$f41(content) { return "\u0001" + content; }
332
+ function peg$f42(chars) { return chars.join(""); }
333
+ function peg$f43(nested, content) { return "<" + content + ">"; }
334
+ function peg$f44(n) { return n; }
335
+ function peg$f45(first, rest) { return first + rest.join(""); }
336
+ function peg$f46(s) { return Array.isArray(s) ? s.flat(Infinity).filter(x => x !== null && x !== undefined).join("") : String(s); }
334
337
  let peg$currPos = options.peg$currPos | 0;
335
338
  let peg$savedPos = peg$currPos;
336
339
  const peg$posDetailsCache = [{ line: 1, column: 1 }];
@@ -742,16 +745,22 @@ function peg$parse(input, options) {
742
745
  }
743
746
 
744
747
  function peg$parseAttrStmt() {
745
- let s0, s1, s2, s3;
748
+ let s0, s1, s2, s3, s4;
746
749
 
747
750
  s0 = peg$currPos;
748
751
  s1 = peg$parseAttrType();
749
752
  if (s1 !== peg$FAILED) {
750
753
  s2 = peg$parse_();
751
- s3 = peg$parseAttrListReq();
754
+ s3 = peg$parseOptMacroName();
752
755
  if (s3 !== peg$FAILED) {
753
- peg$savedPos = s0;
754
- s0 = peg$f12(s1, s3);
756
+ s4 = peg$parseAttrListReq();
757
+ if (s4 !== peg$FAILED) {
758
+ peg$savedPos = s0;
759
+ s0 = peg$f12(s1, s3, s4);
760
+ } else {
761
+ peg$currPos = s0;
762
+ s0 = peg$FAILED;
763
+ }
755
764
  } else {
756
765
  peg$currPos = s0;
757
766
  s0 = peg$FAILED;
@@ -773,6 +782,43 @@ function peg$parse(input, options) {
773
782
  return s0;
774
783
  }
775
784
 
785
+ function peg$parseOptMacroName() {
786
+ let s0, s1, s2, s3, s4;
787
+
788
+ s0 = peg$currPos;
789
+ s1 = peg$parseAtom();
790
+ if (s1 !== peg$FAILED) {
791
+ s2 = peg$parse_();
792
+ if (input.charCodeAt(peg$currPos) === 61) {
793
+ s3 = peg$c3;
794
+ peg$currPos++;
795
+ } else {
796
+ s3 = peg$FAILED;
797
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
798
+ }
799
+ if (s3 !== peg$FAILED) {
800
+ s4 = peg$parse_();
801
+ peg$savedPos = s0;
802
+ s0 = peg$f14();
803
+ } else {
804
+ peg$currPos = s0;
805
+ s0 = peg$FAILED;
806
+ }
807
+ } else {
808
+ peg$currPos = s0;
809
+ s0 = peg$FAILED;
810
+ }
811
+ if (s0 === peg$FAILED) {
812
+ s0 = peg$currPos;
813
+ s1 = '';
814
+ peg$savedPos = s0;
815
+ s1 = peg$f15();
816
+ s0 = s1;
817
+ }
818
+
819
+ return s0;
820
+ }
821
+
776
822
  function peg$parseAttrType() {
777
823
  let s0, s1;
778
824
 
@@ -780,7 +826,7 @@ function peg$parse(input, options) {
780
826
  s1 = peg$parseGraphKw();
781
827
  if (s1 !== peg$FAILED) {
782
828
  peg$savedPos = s0;
783
- s1 = peg$f14();
829
+ s1 = peg$f16();
784
830
  }
785
831
  s0 = s1;
786
832
  if (s0 === peg$FAILED) {
@@ -788,7 +834,7 @@ function peg$parse(input, options) {
788
834
  s1 = peg$parseNodeKw();
789
835
  if (s1 !== peg$FAILED) {
790
836
  peg$savedPos = s0;
791
- s1 = peg$f15();
837
+ s1 = peg$f17();
792
838
  }
793
839
  s0 = s1;
794
840
  if (s0 === peg$FAILED) {
@@ -796,7 +842,7 @@ function peg$parse(input, options) {
796
842
  s1 = peg$parseEdgeKw();
797
843
  if (s1 !== peg$FAILED) {
798
844
  peg$savedPos = s0;
799
- s1 = peg$f16();
845
+ s1 = peg$f18();
800
846
  }
801
847
  s0 = s1;
802
848
  }
@@ -811,28 +857,28 @@ function peg$parse(input, options) {
811
857
  s0 = peg$currPos;
812
858
  s1 = peg$parse_();
813
859
  if (input.charCodeAt(peg$currPos) === 91) {
814
- s2 = peg$c3;
860
+ s2 = peg$c4;
815
861
  peg$currPos++;
816
862
  } else {
817
863
  s2 = peg$FAILED;
818
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
864
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
819
865
  }
820
866
  if (s2 !== peg$FAILED) {
821
867
  s3 = peg$parse_();
822
868
  s4 = peg$parseAttrDefs();
823
869
  s5 = peg$parse_();
824
870
  if (input.charCodeAt(peg$currPos) === 93) {
825
- s6 = peg$c4;
871
+ s6 = peg$c5;
826
872
  peg$currPos++;
827
873
  } else {
828
874
  s6 = peg$FAILED;
829
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
875
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
830
876
  }
831
877
  if (s6 !== peg$FAILED) {
832
878
  s7 = peg$parseAttrList();
833
879
  if (s7 !== peg$FAILED) {
834
880
  peg$savedPos = s0;
835
- s0 = peg$f17(s4, s7);
881
+ s0 = peg$f19(s4, s7);
836
882
  } else {
837
883
  peg$currPos = s0;
838
884
  s0 = peg$FAILED;
@@ -857,7 +903,7 @@ function peg$parse(input, options) {
857
903
  s0 = peg$currPos;
858
904
  s1 = '';
859
905
  peg$savedPos = s0;
860
- s1 = peg$f18();
906
+ s1 = peg$f20();
861
907
  s0 = s1;
862
908
  }
863
909
 
@@ -879,7 +925,7 @@ function peg$parse(input, options) {
879
925
  peg$currPos++;
880
926
  } else {
881
927
  s6 = peg$FAILED;
882
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
928
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
883
929
  }
884
930
  if (s6 !== peg$FAILED) {
885
931
  s7 = peg$parse_();
@@ -893,7 +939,7 @@ function peg$parse(input, options) {
893
939
  s5 = null;
894
940
  }
895
941
  peg$savedPos = s2;
896
- s2 = peg$f19(s3);
942
+ s2 = peg$f21(s3);
897
943
  } else {
898
944
  peg$currPos = s2;
899
945
  s2 = peg$FAILED;
@@ -910,7 +956,7 @@ function peg$parse(input, options) {
910
956
  peg$currPos++;
911
957
  } else {
912
958
  s6 = peg$FAILED;
913
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
959
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
914
960
  }
915
961
  if (s6 !== peg$FAILED) {
916
962
  s7 = peg$parse_();
@@ -924,14 +970,14 @@ function peg$parse(input, options) {
924
970
  s5 = null;
925
971
  }
926
972
  peg$savedPos = s2;
927
- s2 = peg$f19(s3);
973
+ s2 = peg$f21(s3);
928
974
  } else {
929
975
  peg$currPos = s2;
930
976
  s2 = peg$FAILED;
931
977
  }
932
978
  }
933
979
  peg$savedPos = s0;
934
- s1 = peg$f20(s1);
980
+ s1 = peg$f22(s1);
935
981
  s0 = s1;
936
982
 
937
983
  return s0;
@@ -945,18 +991,18 @@ function peg$parse(input, options) {
945
991
  if (s1 !== peg$FAILED) {
946
992
  s2 = peg$parse_();
947
993
  if (input.charCodeAt(peg$currPos) === 61) {
948
- s3 = peg$c5;
994
+ s3 = peg$c3;
949
995
  peg$currPos++;
950
996
  } else {
951
997
  s3 = peg$FAILED;
952
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
998
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
953
999
  }
954
1000
  if (s3 !== peg$FAILED) {
955
1001
  s4 = peg$parse_();
956
1002
  s5 = peg$parseAtom();
957
1003
  if (s5 !== peg$FAILED) {
958
1004
  peg$savedPos = s0;
959
- s0 = peg$f21(s1, s5);
1005
+ s0 = peg$f23(s1, s5);
960
1006
  } else {
961
1007
  peg$currPos = s0;
962
1008
  s0 = peg$FAILED;
@@ -986,7 +1032,7 @@ function peg$parse(input, options) {
986
1032
  s5 = peg$parseAttrList();
987
1033
  if (s5 !== peg$FAILED) {
988
1034
  peg$savedPos = s0;
989
- s0 = peg$f22(s1, s3, s5);
1035
+ s0 = peg$f24(s1, s3, s5);
990
1036
  } else {
991
1037
  peg$currPos = s0;
992
1038
  s0 = peg$FAILED;
@@ -1010,7 +1056,7 @@ function peg$parse(input, options) {
1010
1056
  s1 = peg$parseSubgraph();
1011
1057
  if (s1 !== peg$FAILED) {
1012
1058
  peg$savedPos = s0;
1013
- s1 = peg$f23(s1);
1059
+ s1 = peg$f25(s1);
1014
1060
  }
1015
1061
  s0 = s1;
1016
1062
  if (s0 === peg$FAILED) {
@@ -1018,7 +1064,7 @@ function peg$parse(input, options) {
1018
1064
  s1 = peg$parseNode();
1019
1065
  if (s1 !== peg$FAILED) {
1020
1066
  peg$savedPos = s0;
1021
- s1 = peg$f24(s1);
1067
+ s1 = peg$f26(s1);
1022
1068
  }
1023
1069
  s0 = s1;
1024
1070
  }
@@ -1057,7 +1103,7 @@ function peg$parse(input, options) {
1057
1103
  s9 = peg$parseAtom();
1058
1104
  if (s9 !== peg$FAILED) {
1059
1105
  peg$savedPos = s0;
1060
- s0 = peg$f25(s1, s5, s9);
1106
+ s0 = peg$f27(s1, s5, s9);
1061
1107
  } else {
1062
1108
  peg$currPos = s0;
1063
1109
  s0 = peg$FAILED;
@@ -1095,7 +1141,7 @@ function peg$parse(input, options) {
1095
1141
  s5 = peg$parseAtom();
1096
1142
  if (s5 !== peg$FAILED) {
1097
1143
  peg$savedPos = s0;
1098
- s0 = peg$f26(s1, s5);
1144
+ s0 = peg$f28(s1, s5);
1099
1145
  } else {
1100
1146
  peg$currPos = s0;
1101
1147
  s0 = peg$FAILED;
@@ -1113,7 +1159,7 @@ function peg$parse(input, options) {
1113
1159
  s1 = peg$parseAtom();
1114
1160
  if (s1 !== peg$FAILED) {
1115
1161
  peg$savedPos = s0;
1116
- s1 = peg$f27(s1);
1162
+ s1 = peg$f29(s1);
1117
1163
  }
1118
1164
  s0 = s1;
1119
1165
  }
@@ -1135,7 +1181,7 @@ function peg$parse(input, options) {
1135
1181
  s5 = peg$parseEdgeChain();
1136
1182
  if (s5 !== peg$FAILED) {
1137
1183
  peg$savedPos = s0;
1138
- s0 = peg$f28(s3, s5);
1184
+ s0 = peg$f30(s3, s5);
1139
1185
  } else {
1140
1186
  peg$currPos = s0;
1141
1187
  s0 = peg$FAILED;
@@ -1152,7 +1198,7 @@ function peg$parse(input, options) {
1152
1198
  s0 = peg$currPos;
1153
1199
  s1 = '';
1154
1200
  peg$savedPos = s0;
1155
- s1 = peg$f29();
1201
+ s1 = peg$f31();
1156
1202
  s0 = s1;
1157
1203
  }
1158
1204
 
@@ -1219,7 +1265,7 @@ function peg$parse(input, options) {
1219
1265
  }
1220
1266
  if (s9 !== peg$FAILED) {
1221
1267
  peg$savedPos = s0;
1222
- s0 = peg$f30(s3, s7);
1268
+ s0 = peg$f32(s3, s7);
1223
1269
  } else {
1224
1270
  peg$currPos = s0;
1225
1271
  s0 = peg$FAILED;
@@ -1266,7 +1312,7 @@ function peg$parse(input, options) {
1266
1312
  }
1267
1313
  if (s7 !== peg$FAILED) {
1268
1314
  peg$savedPos = s0;
1269
- s0 = peg$f31(s5);
1315
+ s0 = peg$f33(s5);
1270
1316
  } else {
1271
1317
  peg$currPos = s0;
1272
1318
  s0 = peg$FAILED;
@@ -1306,7 +1352,7 @@ function peg$parse(input, options) {
1306
1352
  }
1307
1353
  if (s5 !== peg$FAILED) {
1308
1354
  peg$savedPos = s0;
1309
- s0 = peg$f32(s3);
1355
+ s0 = peg$f34(s3);
1310
1356
  } else {
1311
1357
  peg$currPos = s0;
1312
1358
  s0 = peg$FAILED;
@@ -1346,7 +1392,7 @@ function peg$parse(input, options) {
1346
1392
  s7 = peg$parseQAtom();
1347
1393
  if (s7 !== peg$FAILED) {
1348
1394
  peg$savedPos = s3;
1349
- s3 = peg$f33(s1, s7);
1395
+ s3 = peg$f35(s1, s7);
1350
1396
  } else {
1351
1397
  peg$currPos = s3;
1352
1398
  s3 = peg$FAILED;
@@ -1371,7 +1417,7 @@ function peg$parse(input, options) {
1371
1417
  s7 = peg$parseQAtom();
1372
1418
  if (s7 !== peg$FAILED) {
1373
1419
  peg$savedPos = s3;
1374
- s3 = peg$f33(s1, s7);
1420
+ s3 = peg$f35(s1, s7);
1375
1421
  } else {
1376
1422
  peg$currPos = s3;
1377
1423
  s3 = peg$FAILED;
@@ -1382,7 +1428,7 @@ function peg$parse(input, options) {
1382
1428
  }
1383
1429
  }
1384
1430
  peg$savedPos = s0;
1385
- s0 = peg$f34(s1, s2);
1431
+ s0 = peg$f36(s1, s2);
1386
1432
  } else {
1387
1433
  peg$currPos = s0;
1388
1434
  s0 = peg$FAILED;
@@ -1432,7 +1478,7 @@ function peg$parse(input, options) {
1432
1478
  }
1433
1479
  if (s3 !== peg$FAILED) {
1434
1480
  peg$savedPos = s0;
1435
- s0 = peg$f35(s2);
1481
+ s0 = peg$f37(s2);
1436
1482
  } else {
1437
1483
  peg$currPos = s0;
1438
1484
  s0 = peg$FAILED;
@@ -1458,7 +1504,7 @@ function peg$parse(input, options) {
1458
1504
  }
1459
1505
  if (s1 !== peg$FAILED) {
1460
1506
  peg$savedPos = s0;
1461
- s1 = peg$f36();
1507
+ s1 = peg$f38();
1462
1508
  }
1463
1509
  s0 = s1;
1464
1510
  if (s0 === peg$FAILED) {
@@ -1472,7 +1518,7 @@ function peg$parse(input, options) {
1472
1518
  }
1473
1519
  if (s1 !== peg$FAILED) {
1474
1520
  peg$savedPos = s0;
1475
- s1 = peg$f37();
1521
+ s1 = peg$f39();
1476
1522
  }
1477
1523
  s0 = s1;
1478
1524
  if (s0 === peg$FAILED) {
@@ -1494,7 +1540,7 @@ function peg$parse(input, options) {
1494
1540
  }
1495
1541
  if (s2 !== peg$FAILED) {
1496
1542
  peg$savedPos = s0;
1497
- s0 = peg$f38(s2);
1543
+ s0 = peg$f40(s2);
1498
1544
  } else {
1499
1545
  peg$currPos = s0;
1500
1546
  s0 = peg$FAILED;
@@ -1540,7 +1586,7 @@ function peg$parse(input, options) {
1540
1586
  }
1541
1587
  if (s3 !== peg$FAILED) {
1542
1588
  peg$savedPos = s0;
1543
- s0 = peg$f39(s2);
1589
+ s0 = peg$f41(s2);
1544
1590
  } else {
1545
1591
  peg$currPos = s0;
1546
1592
  s0 = peg$FAILED;
@@ -1564,7 +1610,7 @@ function peg$parse(input, options) {
1564
1610
  s2 = peg$parseHtmlChar();
1565
1611
  }
1566
1612
  peg$savedPos = s0;
1567
- s1 = peg$f40(s1);
1613
+ s1 = peg$f42(s1);
1568
1614
  s0 = s1;
1569
1615
 
1570
1616
  return s0;
@@ -1593,7 +1639,7 @@ function peg$parse(input, options) {
1593
1639
  }
1594
1640
  if (s3 !== peg$FAILED) {
1595
1641
  peg$savedPos = s0;
1596
- s0 = peg$f41(s1, s2);
1642
+ s0 = peg$f43(s1, s2);
1597
1643
  } else {
1598
1644
  peg$currPos = s0;
1599
1645
  s0 = peg$FAILED;
@@ -1639,7 +1685,7 @@ function peg$parse(input, options) {
1639
1685
  s2 = peg$parseName();
1640
1686
  if (s2 !== peg$FAILED) {
1641
1687
  peg$savedPos = s0;
1642
- s0 = peg$f42(s2);
1688
+ s0 = peg$f44(s2);
1643
1689
  } else {
1644
1690
  peg$currPos = s0;
1645
1691
  s0 = peg$FAILED;
@@ -1684,7 +1730,7 @@ function peg$parse(input, options) {
1684
1730
  }
1685
1731
  }
1686
1732
  peg$savedPos = s0;
1687
- s0 = peg$f43(s1, s2);
1733
+ s0 = peg$f45(s1, s2);
1688
1734
  } else {
1689
1735
  peg$currPos = s0;
1690
1736
  s0 = peg$FAILED;
@@ -1819,62 +1865,7 @@ function peg$parse(input, options) {
1819
1865
  }
1820
1866
  }
1821
1867
  if (s3 !== peg$FAILED) {
1822
- s4 = peg$currPos;
1823
- s5 = input.charAt(peg$currPos);
1824
- if (peg$r6.test(s5)) {
1825
- peg$currPos++;
1826
- } else {
1827
- s5 = peg$FAILED;
1828
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1829
- }
1830
- if (s5 !== peg$FAILED) {
1831
- s6 = input.charAt(peg$currPos);
1832
- if (peg$r7.test(s6)) {
1833
- peg$currPos++;
1834
- } else {
1835
- s6 = peg$FAILED;
1836
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
1837
- }
1838
- if (s6 === peg$FAILED) {
1839
- s6 = null;
1840
- }
1841
- s7 = [];
1842
- s8 = input.charAt(peg$currPos);
1843
- if (peg$r5.test(s8)) {
1844
- peg$currPos++;
1845
- } else {
1846
- s8 = peg$FAILED;
1847
- if (peg$silentFails === 0) { peg$fail(peg$e24); }
1848
- }
1849
- if (s8 !== peg$FAILED) {
1850
- while (s8 !== peg$FAILED) {
1851
- s7.push(s8);
1852
- s8 = input.charAt(peg$currPos);
1853
- if (peg$r5.test(s8)) {
1854
- peg$currPos++;
1855
- } else {
1856
- s8 = peg$FAILED;
1857
- if (peg$silentFails === 0) { peg$fail(peg$e24); }
1858
- }
1859
- }
1860
- } else {
1861
- s7 = peg$FAILED;
1862
- }
1863
- if (s7 !== peg$FAILED) {
1864
- s5 = [s5, s6, s7];
1865
- s4 = s5;
1866
- } else {
1867
- peg$currPos = s4;
1868
- s4 = peg$FAILED;
1869
- }
1870
- } else {
1871
- peg$currPos = s4;
1872
- s4 = peg$FAILED;
1873
- }
1874
- if (s4 === peg$FAILED) {
1875
- s4 = null;
1876
- }
1877
- s2 = [s2, s3, s4];
1868
+ s2 = [s2, s3];
1878
1869
  s1 = s2;
1879
1870
  } else {
1880
1871
  peg$currPos = s1;
@@ -1882,7 +1873,7 @@ function peg$parse(input, options) {
1882
1873
  }
1883
1874
  if (s1 !== peg$FAILED) {
1884
1875
  peg$savedPos = s0;
1885
- s1 = peg$f44(s1);
1876
+ s1 = peg$f46(s1);
1886
1877
  }
1887
1878
  s0 = s1;
1888
1879
 
@@ -1894,51 +1885,51 @@ function peg$parse(input, options) {
1894
1885
 
1895
1886
  s0 = peg$currPos;
1896
1887
  s1 = input.charAt(peg$currPos);
1897
- if (peg$r8.test(s1)) {
1888
+ if (peg$r6.test(s1)) {
1898
1889
  peg$currPos++;
1899
1890
  } else {
1900
1891
  s1 = peg$FAILED;
1901
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
1892
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
1902
1893
  }
1903
1894
  if (s1 !== peg$FAILED) {
1904
1895
  s2 = input.charAt(peg$currPos);
1905
- if (peg$r9.test(s2)) {
1896
+ if (peg$r7.test(s2)) {
1906
1897
  peg$currPos++;
1907
1898
  } else {
1908
1899
  s2 = peg$FAILED;
1909
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1900
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1910
1901
  }
1911
1902
  if (s2 !== peg$FAILED) {
1912
1903
  s3 = input.charAt(peg$currPos);
1913
- if (peg$r10.test(s3)) {
1904
+ if (peg$r8.test(s3)) {
1914
1905
  peg$currPos++;
1915
1906
  } else {
1916
1907
  s3 = peg$FAILED;
1917
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
1908
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
1918
1909
  }
1919
1910
  if (s3 !== peg$FAILED) {
1920
1911
  s4 = input.charAt(peg$currPos);
1921
- if (peg$r11.test(s4)) {
1912
+ if (peg$r9.test(s4)) {
1922
1913
  peg$currPos++;
1923
1914
  } else {
1924
1915
  s4 = peg$FAILED;
1925
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
1916
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
1926
1917
  }
1927
1918
  if (s4 !== peg$FAILED) {
1928
1919
  s5 = input.charAt(peg$currPos);
1929
- if (peg$r12.test(s5)) {
1920
+ if (peg$r10.test(s5)) {
1930
1921
  peg$currPos++;
1931
1922
  } else {
1932
1923
  s5 = peg$FAILED;
1933
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
1924
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
1934
1925
  }
1935
1926
  if (s5 !== peg$FAILED) {
1936
1927
  s6 = input.charAt(peg$currPos);
1937
- if (peg$r9.test(s6)) {
1928
+ if (peg$r7.test(s6)) {
1938
1929
  peg$currPos++;
1939
1930
  } else {
1940
1931
  s6 = peg$FAILED;
1941
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1932
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1942
1933
  }
1943
1934
  if (s6 !== peg$FAILED) {
1944
1935
  s7 = peg$currPos;
@@ -1991,43 +1982,43 @@ function peg$parse(input, options) {
1991
1982
 
1992
1983
  s0 = peg$currPos;
1993
1984
  s1 = input.charAt(peg$currPos);
1994
- if (peg$r13.test(s1)) {
1985
+ if (peg$r11.test(s1)) {
1995
1986
  peg$currPos++;
1996
1987
  } else {
1997
1988
  s1 = peg$FAILED;
1998
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
1989
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
1999
1990
  }
2000
1991
  if (s1 !== peg$FAILED) {
2001
1992
  s2 = input.charAt(peg$currPos);
2002
- if (peg$r10.test(s2)) {
1993
+ if (peg$r8.test(s2)) {
2003
1994
  peg$currPos++;
2004
1995
  } else {
2005
1996
  s2 = peg$FAILED;
2006
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
1997
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2007
1998
  }
2008
1999
  if (s2 !== peg$FAILED) {
2009
2000
  s3 = input.charAt(peg$currPos);
2010
- if (peg$r14.test(s3)) {
2001
+ if (peg$r12.test(s3)) {
2011
2002
  peg$currPos++;
2012
2003
  } else {
2013
2004
  s3 = peg$FAILED;
2014
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2005
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2015
2006
  }
2016
2007
  if (s3 !== peg$FAILED) {
2017
2008
  s4 = input.charAt(peg$currPos);
2018
- if (peg$r15.test(s4)) {
2009
+ if (peg$r13.test(s4)) {
2019
2010
  peg$currPos++;
2020
2011
  } else {
2021
2012
  s4 = peg$FAILED;
2022
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2013
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2023
2014
  }
2024
2015
  if (s4 !== peg$FAILED) {
2025
2016
  s5 = input.charAt(peg$currPos);
2026
- if (peg$r16.test(s5)) {
2017
+ if (peg$r14.test(s5)) {
2027
2018
  peg$currPos++;
2028
2019
  } else {
2029
2020
  s5 = peg$FAILED;
2030
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2021
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2031
2022
  }
2032
2023
  if (s5 !== peg$FAILED) {
2033
2024
  s6 = peg$currPos;
@@ -2076,59 +2067,59 @@ function peg$parse(input, options) {
2076
2067
 
2077
2068
  s0 = peg$currPos;
2078
2069
  s1 = input.charAt(peg$currPos);
2079
- if (peg$r17.test(s1)) {
2070
+ if (peg$r15.test(s1)) {
2080
2071
  peg$currPos++;
2081
2072
  } else {
2082
2073
  s1 = peg$FAILED;
2083
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2074
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2084
2075
  }
2085
2076
  if (s1 !== peg$FAILED) {
2086
2077
  s2 = input.charAt(peg$currPos);
2087
- if (peg$r11.test(s2)) {
2078
+ if (peg$r9.test(s2)) {
2088
2079
  peg$currPos++;
2089
2080
  } else {
2090
2081
  s2 = peg$FAILED;
2091
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
2082
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
2092
2083
  }
2093
2084
  if (s2 !== peg$FAILED) {
2094
2085
  s3 = input.charAt(peg$currPos);
2095
- if (peg$r13.test(s3)) {
2086
+ if (peg$r11.test(s3)) {
2096
2087
  peg$currPos++;
2097
2088
  } else {
2098
2089
  s3 = peg$FAILED;
2099
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2090
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2100
2091
  }
2101
2092
  if (s3 !== peg$FAILED) {
2102
2093
  s4 = input.charAt(peg$currPos);
2103
- if (peg$r10.test(s4)) {
2094
+ if (peg$r8.test(s4)) {
2104
2095
  peg$currPos++;
2105
2096
  } else {
2106
2097
  s4 = peg$FAILED;
2107
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2098
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2108
2099
  }
2109
2100
  if (s4 !== peg$FAILED) {
2110
2101
  s5 = input.charAt(peg$currPos);
2111
- if (peg$r14.test(s5)) {
2102
+ if (peg$r12.test(s5)) {
2112
2103
  peg$currPos++;
2113
2104
  } else {
2114
2105
  s5 = peg$FAILED;
2115
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2106
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2116
2107
  }
2117
2108
  if (s5 !== peg$FAILED) {
2118
2109
  s6 = input.charAt(peg$currPos);
2119
- if (peg$r15.test(s6)) {
2110
+ if (peg$r13.test(s6)) {
2120
2111
  peg$currPos++;
2121
2112
  } else {
2122
2113
  s6 = peg$FAILED;
2123
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2114
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2124
2115
  }
2125
2116
  if (s6 !== peg$FAILED) {
2126
2117
  s7 = input.charAt(peg$currPos);
2127
- if (peg$r16.test(s7)) {
2118
+ if (peg$r14.test(s7)) {
2128
2119
  peg$currPos++;
2129
2120
  } else {
2130
2121
  s7 = peg$FAILED;
2131
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2122
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2132
2123
  }
2133
2124
  if (s7 !== peg$FAILED) {
2134
2125
  s8 = peg$currPos;
@@ -2185,35 +2176,35 @@ function peg$parse(input, options) {
2185
2176
 
2186
2177
  s0 = peg$currPos;
2187
2178
  s1 = input.charAt(peg$currPos);
2188
- if (peg$r18.test(s1)) {
2179
+ if (peg$r16.test(s1)) {
2189
2180
  peg$currPos++;
2190
2181
  } else {
2191
2182
  s1 = peg$FAILED;
2192
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2183
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
2193
2184
  }
2194
2185
  if (s1 !== peg$FAILED) {
2195
2186
  s2 = input.charAt(peg$currPos);
2196
- if (peg$r19.test(s2)) {
2187
+ if (peg$r17.test(s2)) {
2197
2188
  peg$currPos++;
2198
2189
  } else {
2199
2190
  s2 = peg$FAILED;
2200
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
2191
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
2201
2192
  }
2202
2193
  if (s2 !== peg$FAILED) {
2203
2194
  s3 = input.charAt(peg$currPos);
2204
- if (peg$r17.test(s3)) {
2195
+ if (peg$r15.test(s3)) {
2205
2196
  peg$currPos++;
2206
2197
  } else {
2207
2198
  s3 = peg$FAILED;
2208
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2199
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2209
2200
  }
2210
2201
  if (s3 !== peg$FAILED) {
2211
2202
  s4 = input.charAt(peg$currPos);
2212
- if (peg$r20.test(s4)) {
2203
+ if (peg$r18.test(s4)) {
2213
2204
  peg$currPos++;
2214
2205
  } else {
2215
2206
  s4 = peg$FAILED;
2216
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2207
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2217
2208
  }
2218
2209
  if (s4 !== peg$FAILED) {
2219
2210
  s5 = peg$currPos;
@@ -2258,35 +2249,35 @@ function peg$parse(input, options) {
2258
2249
 
2259
2250
  s0 = peg$currPos;
2260
2251
  s1 = input.charAt(peg$currPos);
2261
- if (peg$r20.test(s1)) {
2252
+ if (peg$r18.test(s1)) {
2262
2253
  peg$currPos++;
2263
2254
  } else {
2264
2255
  s1 = peg$FAILED;
2265
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2256
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2266
2257
  }
2267
2258
  if (s1 !== peg$FAILED) {
2268
2259
  s2 = input.charAt(peg$currPos);
2269
- if (peg$r17.test(s2)) {
2260
+ if (peg$r15.test(s2)) {
2270
2261
  peg$currPos++;
2271
2262
  } else {
2272
2263
  s2 = peg$FAILED;
2273
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2264
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2274
2265
  }
2275
2266
  if (s2 !== peg$FAILED) {
2276
2267
  s3 = input.charAt(peg$currPos);
2277
- if (peg$r13.test(s3)) {
2268
+ if (peg$r11.test(s3)) {
2278
2269
  peg$currPos++;
2279
2270
  } else {
2280
2271
  s3 = peg$FAILED;
2281
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2272
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2282
2273
  }
2283
2274
  if (s3 !== peg$FAILED) {
2284
2275
  s4 = input.charAt(peg$currPos);
2285
- if (peg$r20.test(s4)) {
2276
+ if (peg$r18.test(s4)) {
2286
2277
  peg$currPos++;
2287
2278
  } else {
2288
2279
  s4 = peg$FAILED;
2289
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2280
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2290
2281
  }
2291
2282
  if (s4 !== peg$FAILED) {
2292
2283
  s5 = peg$currPos;
@@ -2331,67 +2322,67 @@ function peg$parse(input, options) {
2331
2322
 
2332
2323
  s0 = peg$currPos;
2333
2324
  s1 = input.charAt(peg$currPos);
2334
- if (peg$r8.test(s1)) {
2325
+ if (peg$r6.test(s1)) {
2335
2326
  peg$currPos++;
2336
2327
  } else {
2337
2328
  s1 = peg$FAILED;
2338
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
2329
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
2339
2330
  }
2340
2331
  if (s1 !== peg$FAILED) {
2341
2332
  s2 = input.charAt(peg$currPos);
2342
- if (peg$r21.test(s2)) {
2333
+ if (peg$r19.test(s2)) {
2343
2334
  peg$currPos++;
2344
2335
  } else {
2345
2336
  s2 = peg$FAILED;
2346
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
2337
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
2347
2338
  }
2348
2339
  if (s2 !== peg$FAILED) {
2349
2340
  s3 = input.charAt(peg$currPos);
2350
- if (peg$r22.test(s3)) {
2341
+ if (peg$r20.test(s3)) {
2351
2342
  peg$currPos++;
2352
2343
  } else {
2353
2344
  s3 = peg$FAILED;
2354
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
2345
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
2355
2346
  }
2356
2347
  if (s3 !== peg$FAILED) {
2357
2348
  s4 = input.charAt(peg$currPos);
2358
- if (peg$r13.test(s4)) {
2349
+ if (peg$r11.test(s4)) {
2359
2350
  peg$currPos++;
2360
2351
  } else {
2361
2352
  s4 = peg$FAILED;
2362
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2353
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2363
2354
  }
2364
2355
  if (s4 !== peg$FAILED) {
2365
2356
  s5 = input.charAt(peg$currPos);
2366
- if (peg$r10.test(s5)) {
2357
+ if (peg$r8.test(s5)) {
2367
2358
  peg$currPos++;
2368
2359
  } else {
2369
2360
  s5 = peg$FAILED;
2370
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2361
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2371
2362
  }
2372
2363
  if (s5 !== peg$FAILED) {
2373
2364
  s6 = input.charAt(peg$currPos);
2374
- if (peg$r14.test(s6)) {
2365
+ if (peg$r12.test(s6)) {
2375
2366
  peg$currPos++;
2376
2367
  } else {
2377
2368
  s6 = peg$FAILED;
2378
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2369
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2379
2370
  }
2380
2371
  if (s6 !== peg$FAILED) {
2381
2372
  s7 = input.charAt(peg$currPos);
2382
- if (peg$r15.test(s7)) {
2373
+ if (peg$r13.test(s7)) {
2383
2374
  peg$currPos++;
2384
2375
  } else {
2385
2376
  s7 = peg$FAILED;
2386
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2377
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2387
2378
  }
2388
2379
  if (s7 !== peg$FAILED) {
2389
2380
  s8 = input.charAt(peg$currPos);
2390
- if (peg$r16.test(s8)) {
2381
+ if (peg$r14.test(s8)) {
2391
2382
  peg$currPos++;
2392
2383
  } else {
2393
2384
  s8 = peg$FAILED;
2394
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2385
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2395
2386
  }
2396
2387
  if (s8 !== peg$FAILED) {
2397
2388
  s9 = peg$currPos;
@@ -2467,51 +2458,51 @@ function peg$parse(input, options) {
2467
2458
  s0 = peg$currPos;
2468
2459
  s1 = peg$currPos;
2469
2460
  s2 = input.charAt(peg$currPos);
2470
- if (peg$r8.test(s2)) {
2461
+ if (peg$r6.test(s2)) {
2471
2462
  peg$currPos++;
2472
2463
  } else {
2473
2464
  s2 = peg$FAILED;
2474
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
2465
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
2475
2466
  }
2476
2467
  if (s2 !== peg$FAILED) {
2477
2468
  s3 = input.charAt(peg$currPos);
2478
- if (peg$r9.test(s3)) {
2469
+ if (peg$r7.test(s3)) {
2479
2470
  peg$currPos++;
2480
2471
  } else {
2481
2472
  s3 = peg$FAILED;
2482
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
2473
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2483
2474
  }
2484
2475
  if (s3 !== peg$FAILED) {
2485
2476
  s4 = input.charAt(peg$currPos);
2486
- if (peg$r10.test(s4)) {
2477
+ if (peg$r8.test(s4)) {
2487
2478
  peg$currPos++;
2488
2479
  } else {
2489
2480
  s4 = peg$FAILED;
2490
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2481
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2491
2482
  }
2492
2483
  if (s4 !== peg$FAILED) {
2493
2484
  s5 = input.charAt(peg$currPos);
2494
- if (peg$r11.test(s5)) {
2485
+ if (peg$r9.test(s5)) {
2495
2486
  peg$currPos++;
2496
2487
  } else {
2497
2488
  s5 = peg$FAILED;
2498
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
2489
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
2499
2490
  }
2500
2491
  if (s5 !== peg$FAILED) {
2501
2492
  s6 = input.charAt(peg$currPos);
2502
- if (peg$r12.test(s6)) {
2493
+ if (peg$r10.test(s6)) {
2503
2494
  peg$currPos++;
2504
2495
  } else {
2505
2496
  s6 = peg$FAILED;
2506
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
2497
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
2507
2498
  }
2508
2499
  if (s6 !== peg$FAILED) {
2509
2500
  s7 = input.charAt(peg$currPos);
2510
- if (peg$r9.test(s7)) {
2501
+ if (peg$r7.test(s7)) {
2511
2502
  peg$currPos++;
2512
2503
  } else {
2513
2504
  s7 = peg$FAILED;
2514
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
2505
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2515
2506
  }
2516
2507
  if (s7 !== peg$FAILED) {
2517
2508
  s2 = [s2, s3, s4, s5, s6, s7];
@@ -2543,59 +2534,59 @@ function peg$parse(input, options) {
2543
2534
  if (s1 === peg$FAILED) {
2544
2535
  s1 = peg$currPos;
2545
2536
  s2 = input.charAt(peg$currPos);
2546
- if (peg$r17.test(s2)) {
2537
+ if (peg$r15.test(s2)) {
2547
2538
  peg$currPos++;
2548
2539
  } else {
2549
2540
  s2 = peg$FAILED;
2550
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2541
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2551
2542
  }
2552
2543
  if (s2 !== peg$FAILED) {
2553
2544
  s3 = input.charAt(peg$currPos);
2554
- if (peg$r11.test(s3)) {
2545
+ if (peg$r9.test(s3)) {
2555
2546
  peg$currPos++;
2556
2547
  } else {
2557
2548
  s3 = peg$FAILED;
2558
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
2549
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
2559
2550
  }
2560
2551
  if (s3 !== peg$FAILED) {
2561
2552
  s4 = input.charAt(peg$currPos);
2562
- if (peg$r13.test(s4)) {
2553
+ if (peg$r11.test(s4)) {
2563
2554
  peg$currPos++;
2564
2555
  } else {
2565
2556
  s4 = peg$FAILED;
2566
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2557
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2567
2558
  }
2568
2559
  if (s4 !== peg$FAILED) {
2569
2560
  s5 = input.charAt(peg$currPos);
2570
- if (peg$r10.test(s5)) {
2561
+ if (peg$r8.test(s5)) {
2571
2562
  peg$currPos++;
2572
2563
  } else {
2573
2564
  s5 = peg$FAILED;
2574
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2565
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2575
2566
  }
2576
2567
  if (s5 !== peg$FAILED) {
2577
2568
  s6 = input.charAt(peg$currPos);
2578
- if (peg$r14.test(s6)) {
2569
+ if (peg$r12.test(s6)) {
2579
2570
  peg$currPos++;
2580
2571
  } else {
2581
2572
  s6 = peg$FAILED;
2582
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2573
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2583
2574
  }
2584
2575
  if (s6 !== peg$FAILED) {
2585
2576
  s7 = input.charAt(peg$currPos);
2586
- if (peg$r15.test(s7)) {
2577
+ if (peg$r13.test(s7)) {
2587
2578
  peg$currPos++;
2588
2579
  } else {
2589
2580
  s7 = peg$FAILED;
2590
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2581
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2591
2582
  }
2592
2583
  if (s7 !== peg$FAILED) {
2593
2584
  s8 = input.charAt(peg$currPos);
2594
- if (peg$r16.test(s8)) {
2585
+ if (peg$r14.test(s8)) {
2595
2586
  peg$currPos++;
2596
2587
  } else {
2597
2588
  s8 = peg$FAILED;
2598
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2589
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2599
2590
  }
2600
2591
  if (s8 !== peg$FAILED) {
2601
2592
  s2 = [s2, s3, s4, s5, s6, s7, s8];
@@ -2631,43 +2622,43 @@ function peg$parse(input, options) {
2631
2622
  if (s1 === peg$FAILED) {
2632
2623
  s1 = peg$currPos;
2633
2624
  s2 = input.charAt(peg$currPos);
2634
- if (peg$r13.test(s2)) {
2625
+ if (peg$r11.test(s2)) {
2635
2626
  peg$currPos++;
2636
2627
  } else {
2637
2628
  s2 = peg$FAILED;
2638
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2629
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2639
2630
  }
2640
2631
  if (s2 !== peg$FAILED) {
2641
2632
  s3 = input.charAt(peg$currPos);
2642
- if (peg$r10.test(s3)) {
2633
+ if (peg$r8.test(s3)) {
2643
2634
  peg$currPos++;
2644
2635
  } else {
2645
2636
  s3 = peg$FAILED;
2646
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2637
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2647
2638
  }
2648
2639
  if (s3 !== peg$FAILED) {
2649
2640
  s4 = input.charAt(peg$currPos);
2650
- if (peg$r14.test(s4)) {
2641
+ if (peg$r12.test(s4)) {
2651
2642
  peg$currPos++;
2652
2643
  } else {
2653
2644
  s4 = peg$FAILED;
2654
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2645
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2655
2646
  }
2656
2647
  if (s4 !== peg$FAILED) {
2657
2648
  s5 = input.charAt(peg$currPos);
2658
- if (peg$r15.test(s5)) {
2649
+ if (peg$r13.test(s5)) {
2659
2650
  peg$currPos++;
2660
2651
  } else {
2661
2652
  s5 = peg$FAILED;
2662
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2653
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2663
2654
  }
2664
2655
  if (s5 !== peg$FAILED) {
2665
2656
  s6 = input.charAt(peg$currPos);
2666
- if (peg$r16.test(s6)) {
2657
+ if (peg$r14.test(s6)) {
2667
2658
  peg$currPos++;
2668
2659
  } else {
2669
2660
  s6 = peg$FAILED;
2670
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2661
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2671
2662
  }
2672
2663
  if (s6 !== peg$FAILED) {
2673
2664
  s2 = [s2, s3, s4, s5, s6];
@@ -2695,35 +2686,35 @@ function peg$parse(input, options) {
2695
2686
  if (s1 === peg$FAILED) {
2696
2687
  s1 = peg$currPos;
2697
2688
  s2 = input.charAt(peg$currPos);
2698
- if (peg$r18.test(s2)) {
2689
+ if (peg$r16.test(s2)) {
2699
2690
  peg$currPos++;
2700
2691
  } else {
2701
2692
  s2 = peg$FAILED;
2702
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2693
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
2703
2694
  }
2704
2695
  if (s2 !== peg$FAILED) {
2705
2696
  s3 = input.charAt(peg$currPos);
2706
- if (peg$r19.test(s3)) {
2697
+ if (peg$r17.test(s3)) {
2707
2698
  peg$currPos++;
2708
2699
  } else {
2709
2700
  s3 = peg$FAILED;
2710
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
2701
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
2711
2702
  }
2712
2703
  if (s3 !== peg$FAILED) {
2713
2704
  s4 = input.charAt(peg$currPos);
2714
- if (peg$r17.test(s4)) {
2705
+ if (peg$r15.test(s4)) {
2715
2706
  peg$currPos++;
2716
2707
  } else {
2717
2708
  s4 = peg$FAILED;
2718
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2709
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2719
2710
  }
2720
2711
  if (s4 !== peg$FAILED) {
2721
2712
  s5 = input.charAt(peg$currPos);
2722
- if (peg$r20.test(s5)) {
2713
+ if (peg$r18.test(s5)) {
2723
2714
  peg$currPos++;
2724
2715
  } else {
2725
2716
  s5 = peg$FAILED;
2726
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2717
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2727
2718
  }
2728
2719
  if (s5 !== peg$FAILED) {
2729
2720
  s2 = [s2, s3, s4, s5];
@@ -2747,35 +2738,35 @@ function peg$parse(input, options) {
2747
2738
  if (s1 === peg$FAILED) {
2748
2739
  s1 = peg$currPos;
2749
2740
  s2 = input.charAt(peg$currPos);
2750
- if (peg$r20.test(s2)) {
2741
+ if (peg$r18.test(s2)) {
2751
2742
  peg$currPos++;
2752
2743
  } else {
2753
2744
  s2 = peg$FAILED;
2754
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2745
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2755
2746
  }
2756
2747
  if (s2 !== peg$FAILED) {
2757
2748
  s3 = input.charAt(peg$currPos);
2758
- if (peg$r17.test(s3)) {
2749
+ if (peg$r15.test(s3)) {
2759
2750
  peg$currPos++;
2760
2751
  } else {
2761
2752
  s3 = peg$FAILED;
2762
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2753
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2763
2754
  }
2764
2755
  if (s3 !== peg$FAILED) {
2765
2756
  s4 = input.charAt(peg$currPos);
2766
- if (peg$r13.test(s4)) {
2757
+ if (peg$r11.test(s4)) {
2767
2758
  peg$currPos++;
2768
2759
  } else {
2769
2760
  s4 = peg$FAILED;
2770
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2761
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2771
2762
  }
2772
2763
  if (s4 !== peg$FAILED) {
2773
2764
  s5 = input.charAt(peg$currPos);
2774
- if (peg$r20.test(s5)) {
2765
+ if (peg$r18.test(s5)) {
2775
2766
  peg$currPos++;
2776
2767
  } else {
2777
2768
  s5 = peg$FAILED;
2778
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2769
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2779
2770
  }
2780
2771
  if (s5 !== peg$FAILED) {
2781
2772
  s2 = [s2, s3, s4, s5];
@@ -2799,67 +2790,67 @@ function peg$parse(input, options) {
2799
2790
  if (s1 === peg$FAILED) {
2800
2791
  s1 = peg$currPos;
2801
2792
  s2 = input.charAt(peg$currPos);
2802
- if (peg$r8.test(s2)) {
2793
+ if (peg$r6.test(s2)) {
2803
2794
  peg$currPos++;
2804
2795
  } else {
2805
2796
  s2 = peg$FAILED;
2806
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
2797
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
2807
2798
  }
2808
2799
  if (s2 !== peg$FAILED) {
2809
2800
  s3 = input.charAt(peg$currPos);
2810
- if (peg$r21.test(s3)) {
2801
+ if (peg$r19.test(s3)) {
2811
2802
  peg$currPos++;
2812
2803
  } else {
2813
2804
  s3 = peg$FAILED;
2814
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
2805
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
2815
2806
  }
2816
2807
  if (s3 !== peg$FAILED) {
2817
2808
  s4 = input.charAt(peg$currPos);
2818
- if (peg$r22.test(s4)) {
2809
+ if (peg$r20.test(s4)) {
2819
2810
  peg$currPos++;
2820
2811
  } else {
2821
2812
  s4 = peg$FAILED;
2822
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
2813
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
2823
2814
  }
2824
2815
  if (s4 !== peg$FAILED) {
2825
2816
  s5 = input.charAt(peg$currPos);
2826
- if (peg$r13.test(s5)) {
2817
+ if (peg$r11.test(s5)) {
2827
2818
  peg$currPos++;
2828
2819
  } else {
2829
2820
  s5 = peg$FAILED;
2830
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2821
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2831
2822
  }
2832
2823
  if (s5 !== peg$FAILED) {
2833
2824
  s6 = input.charAt(peg$currPos);
2834
- if (peg$r10.test(s6)) {
2825
+ if (peg$r8.test(s6)) {
2835
2826
  peg$currPos++;
2836
2827
  } else {
2837
2828
  s6 = peg$FAILED;
2838
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2829
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2839
2830
  }
2840
2831
  if (s6 !== peg$FAILED) {
2841
2832
  s7 = input.charAt(peg$currPos);
2842
- if (peg$r14.test(s7)) {
2833
+ if (peg$r12.test(s7)) {
2843
2834
  peg$currPos++;
2844
2835
  } else {
2845
2836
  s7 = peg$FAILED;
2846
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2837
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2847
2838
  }
2848
2839
  if (s7 !== peg$FAILED) {
2849
2840
  s8 = input.charAt(peg$currPos);
2850
- if (peg$r15.test(s8)) {
2841
+ if (peg$r13.test(s8)) {
2851
2842
  peg$currPos++;
2852
2843
  } else {
2853
2844
  s8 = peg$FAILED;
2854
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2845
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2855
2846
  }
2856
2847
  if (s8 !== peg$FAILED) {
2857
2848
  s9 = input.charAt(peg$currPos);
2858
- if (peg$r16.test(s9)) {
2849
+ if (peg$r14.test(s9)) {
2859
2850
  peg$currPos++;
2860
2851
  } else {
2861
2852
  s9 = peg$FAILED;
2862
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2853
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2863
2854
  }
2864
2855
  if (s9 !== peg$FAILED) {
2865
2856
  s2 = [s2, s3, s4, s5, s6, s7, s8, s9];
@@ -2933,21 +2924,21 @@ function peg$parse(input, options) {
2933
2924
  s0 = [];
2934
2925
  s1 = [];
2935
2926
  s2 = input.charAt(peg$currPos);
2936
- if (peg$r23.test(s2)) {
2927
+ if (peg$r21.test(s2)) {
2937
2928
  peg$currPos++;
2938
2929
  } else {
2939
2930
  s2 = peg$FAILED;
2940
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
2931
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2941
2932
  }
2942
2933
  if (s2 !== peg$FAILED) {
2943
2934
  while (s2 !== peg$FAILED) {
2944
2935
  s1.push(s2);
2945
2936
  s2 = input.charAt(peg$currPos);
2946
- if (peg$r23.test(s2)) {
2937
+ if (peg$r21.test(s2)) {
2947
2938
  peg$currPos++;
2948
2939
  } else {
2949
2940
  s2 = peg$FAILED;
2950
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
2941
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2951
2942
  }
2952
2943
  }
2953
2944
  } else {
@@ -2966,21 +2957,21 @@ function peg$parse(input, options) {
2966
2957
  s0.push(s1);
2967
2958
  s1 = [];
2968
2959
  s2 = input.charAt(peg$currPos);
2969
- if (peg$r23.test(s2)) {
2960
+ if (peg$r21.test(s2)) {
2970
2961
  peg$currPos++;
2971
2962
  } else {
2972
2963
  s2 = peg$FAILED;
2973
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
2964
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2974
2965
  }
2975
2966
  if (s2 !== peg$FAILED) {
2976
2967
  while (s2 !== peg$FAILED) {
2977
2968
  s1.push(s2);
2978
2969
  s2 = input.charAt(peg$currPos);
2979
- if (peg$r23.test(s2)) {
2970
+ if (peg$r21.test(s2)) {
2980
2971
  peg$currPos++;
2981
2972
  } else {
2982
2973
  s2 = peg$FAILED;
2983
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
2974
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2984
2975
  }
2985
2976
  }
2986
2977
  } else {
@@ -3009,7 +3000,7 @@ function peg$parse(input, options) {
3009
3000
  peg$currPos += 2;
3010
3001
  } else {
3011
3002
  s1 = peg$FAILED;
3012
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
3003
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
3013
3004
  }
3014
3005
  if (s1 !== peg$FAILED) {
3015
3006
  s2 = [];
@@ -3021,7 +3012,7 @@ function peg$parse(input, options) {
3021
3012
  peg$currPos += 2;
3022
3013
  } else {
3023
3014
  s5 = peg$FAILED;
3024
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
3015
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
3025
3016
  }
3026
3017
  peg$silentFails--;
3027
3018
  if (s5 === peg$FAILED) {
@@ -3059,7 +3050,7 @@ function peg$parse(input, options) {
3059
3050
  peg$currPos += 2;
3060
3051
  } else {
3061
3052
  s5 = peg$FAILED;
3062
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
3053
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
3063
3054
  }
3064
3055
  peg$silentFails--;
3065
3056
  if (s5 === peg$FAILED) {
@@ -3093,7 +3084,7 @@ function peg$parse(input, options) {
3093
3084
  peg$currPos += 2;
3094
3085
  } else {
3095
3086
  s3 = peg$FAILED;
3096
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
3087
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
3097
3088
  }
3098
3089
  if (s3 !== peg$FAILED) {
3099
3090
  s1 = [s1, s2, s3];
@@ -3119,25 +3110,25 @@ function peg$parse(input, options) {
3119
3110
  peg$currPos += 2;
3120
3111
  } else {
3121
3112
  s1 = peg$FAILED;
3122
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
3113
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
3123
3114
  }
3124
3115
  if (s1 !== peg$FAILED) {
3125
3116
  s2 = [];
3126
3117
  s3 = input.charAt(peg$currPos);
3127
- if (peg$r24.test(s3)) {
3118
+ if (peg$r22.test(s3)) {
3128
3119
  peg$currPos++;
3129
3120
  } else {
3130
3121
  s3 = peg$FAILED;
3131
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
3122
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
3132
3123
  }
3133
3124
  while (s3 !== peg$FAILED) {
3134
3125
  s2.push(s3);
3135
3126
  s3 = input.charAt(peg$currPos);
3136
- if (peg$r24.test(s3)) {
3127
+ if (peg$r22.test(s3)) {
3137
3128
  peg$currPos++;
3138
3129
  } else {
3139
3130
  s3 = peg$FAILED;
3140
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
3131
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
3141
3132
  }
3142
3133
  }
3143
3134
  if (input.charCodeAt(peg$currPos) === 10) {
@@ -3145,7 +3136,7 @@ function peg$parse(input, options) {
3145
3136
  peg$currPos++;
3146
3137
  } else {
3147
3138
  s3 = peg$FAILED;
3148
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
3139
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
3149
3140
  }
3150
3141
  if (s3 === peg$FAILED) {
3151
3142
  s3 = peg$currPos;
@@ -3189,25 +3180,25 @@ function peg$parse(input, options) {
3189
3180
  peg$currPos++;
3190
3181
  } else {
3191
3182
  s1 = peg$FAILED;
3192
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
3183
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
3193
3184
  }
3194
3185
  if (s1 !== peg$FAILED) {
3195
3186
  s2 = [];
3196
3187
  s3 = input.charAt(peg$currPos);
3197
- if (peg$r24.test(s3)) {
3188
+ if (peg$r22.test(s3)) {
3198
3189
  peg$currPos++;
3199
3190
  } else {
3200
3191
  s3 = peg$FAILED;
3201
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
3192
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
3202
3193
  }
3203
3194
  while (s3 !== peg$FAILED) {
3204
3195
  s2.push(s3);
3205
3196
  s3 = input.charAt(peg$currPos);
3206
- if (peg$r24.test(s3)) {
3197
+ if (peg$r22.test(s3)) {
3207
3198
  peg$currPos++;
3208
3199
  } else {
3209
3200
  s3 = peg$FAILED;
3210
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
3201
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
3211
3202
  }
3212
3203
  }
3213
3204
  if (input.charCodeAt(peg$currPos) === 10) {
@@ -3215,7 +3206,7 @@ function peg$parse(input, options) {
3215
3206
  peg$currPos++;
3216
3207
  } else {
3217
3208
  s3 = peg$FAILED;
3218
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
3209
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
3219
3210
  }
3220
3211
  if (s3 === peg$FAILED) {
3221
3212
  s3 = peg$currPos;