@dbml/core 2.3.1 → 2.4.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.
Files changed (40) hide show
  1. package/lib/export/DbmlExporter.js +11 -6
  2. package/lib/export/MysqlExporter.js +127 -48
  3. package/lib/export/PostgresExporter.js +142 -55
  4. package/lib/export/SqlServerExporter.js +130 -52
  5. package/lib/export/utils.js +40 -0
  6. package/lib/model_structure/database.js +53 -12
  7. package/lib/model_structure/endpoint.js +2 -2
  8. package/lib/model_structure/field.js +31 -1
  9. package/lib/model_structure/ref.js +1 -2
  10. package/lib/model_structure/schema.js +3 -19
  11. package/lib/model_structure/tableGroup.js +1 -1
  12. package/lib/model_structure/utils.js +5 -0
  13. package/lib/parse/dbml/parser.pegjs +74 -24
  14. package/lib/parse/dbmlParser.js +1275 -886
  15. package/lib/parse/mssql/fk_definition/actions.js +10 -3
  16. package/lib/parse/mssql/keyword_parsers.js +12 -1
  17. package/lib/parse/mssql/statements/actions.js +37 -6
  18. package/lib/parse/mssql/statements/index.js +1 -1
  19. package/lib/parse/mssql/statements/statement_types/alter_table/actions.js +11 -5
  20. package/lib/parse/mssql/statements/statement_types/comments/actions.js +57 -0
  21. package/lib/parse/mssql/statements/statement_types/comments/index.js +97 -0
  22. package/lib/parse/mssql/statements/statement_types/create_index/actions.js +6 -1
  23. package/lib/parse/mssql/statements/statement_types/create_table/actions.js +11 -9
  24. package/lib/parse/mssql/statements/statement_types/index.js +4 -1
  25. package/lib/parse/mssql/utils.js +15 -0
  26. package/lib/parse/mysql/parser.pegjs +55 -20
  27. package/lib/parse/mysqlParser.js +479 -308
  28. package/lib/parse/postgresParser.js +15 -14
  29. package/lib/parse/postgresql/Base_rules.pegjs +24 -3
  30. package/lib/parse/postgresql/Commands/Alter_table/Alter_table.pegjs +49 -4
  31. package/lib/parse/postgresql/Commands/Comment.pegjs +18 -6
  32. package/lib/parse/postgresql/Commands/Create_table/Create_table_normal.pegjs +5 -3
  33. package/lib/parse/postgresql/Commands/Create_table/Create_table_of.pegjs +1 -1
  34. package/lib/parse/postgresql/Commands/Create_table/Create_table_partition_of.pegjs +1 -1
  35. package/lib/parse/postgresql/Commands/Create_type/Create_type_enum.pegjs +2 -2
  36. package/lib/parse/postgresql/Commands/Ignore_syntax.pegjs +10 -1
  37. package/lib/parse/postgresql/InitializerUtils.pegjs +14 -2
  38. package/lib/parse/postgresql/Keywords.pegjs +5 -1
  39. package/lib/parse/postgresql/parser.pegjs +22 -8
  40. package/package.json +2 -2
@@ -259,9 +259,10 @@ function peg$parse(input, options) {
259
259
  value: value.value
260
260
  };
261
261
  },
262
- peg$c21 = function peg$c21(name, body) {
262
+ peg$c21 = function peg$c21(schemaName, name, body) {
263
263
  return {
264
264
  name: name,
265
+ schemaName: schemaName,
265
266
  tables: body,
266
267
  token: location()
267
268
  };
@@ -269,12 +270,16 @@ function peg$parse(input, options) {
269
270
  peg$c22 = function peg$c22(tables) {
270
271
  return tables.map(function (t) {
271
272
  return {
272
- name: t[0]
273
+ name: t[1],
274
+ schemaName: t[0]
273
275
  };
274
276
  });
275
277
  },
276
278
  peg$c23 = function peg$c23(r) {
277
- return r;
279
+ var schemaName = r.endpoints[0].schemaName;
280
+ return _objectSpread(_objectSpread({}, r), {}, {
281
+ schemaName: schemaName
282
+ });
278
283
  },
279
284
  peg$c24 = function peg$c24(name, body) {
280
285
  var ref = {
@@ -285,18 +290,19 @@ function peg$parse(input, options) {
285
290
  Object.assign(ref, body.settings);
286
291
  return ref;
287
292
  },
288
- peg$c25 = ".",
289
- peg$c26 = peg$literalExpectation(".", false),
290
- peg$c27 = function peg$c27(table1, field1, relation, table2, field2, ref_settings) {
293
+ peg$c25 = function peg$c25(field1, relation, field2, ref_settings) {
294
+ var rel = getRelations(relation);
291
295
  var endpoints = [{
292
- tableName: table1,
293
- fieldNames: field1,
294
- relation: relation === ">" ? "*" : "1",
296
+ schemaName: field1.schemaName,
297
+ tableName: field1.tableName,
298
+ fieldNames: field1.fieldNames,
299
+ relation: rel[0],
295
300
  token: location()
296
301
  }, {
297
- tableName: table2,
298
- fieldNames: field2,
299
- relation: relation === "<" ? "*" : "1",
302
+ schemaName: field2.schemaName,
303
+ tableName: field2.tableName,
304
+ fieldNames: field2.fieldNames,
305
+ relation: rel[1],
300
306
  token: location()
301
307
  }];
302
308
  return {
@@ -304,28 +310,28 @@ function peg$parse(input, options) {
304
310
  settings: ref_settings
305
311
  };
306
312
  },
307
- peg$c28 = function peg$c28(field) {
313
+ peg$c26 = function peg$c26(field) {
308
314
  if (typeof field === "string") field = [field];
309
315
  return field;
310
316
  },
311
- peg$c29 = function peg$c29(field) {
317
+ peg$c27 = function peg$c27(field) {
312
318
  return field;
313
319
  },
314
- peg$c30 = "(",
315
- peg$c31 = peg$literalExpectation("(", false),
316
- peg$c32 = ")",
317
- peg$c33 = peg$literalExpectation(")", false),
318
- peg$c34 = function peg$c34(first, rest) {
320
+ peg$c28 = "(",
321
+ peg$c29 = peg$literalExpectation("(", false),
322
+ peg$c30 = ")",
323
+ peg$c31 = peg$literalExpectation(")", false),
324
+ peg$c32 = function peg$c32(first, rest) {
319
325
  var arrField = [first].concat(rest.map(function (el) {
320
326
  return el[3];
321
327
  }));
322
328
  return arrField;
323
329
  },
324
- peg$c35 = "[",
325
- peg$c36 = peg$literalExpectation("[", false),
326
- peg$c37 = "]",
327
- peg$c38 = peg$literalExpectation("]", false),
328
- peg$c39 = function peg$c39(first, rest) {
330
+ peg$c33 = "[",
331
+ peg$c34 = peg$literalExpectation("[", false),
332
+ peg$c35 = "]",
333
+ peg$c36 = peg$literalExpectation("]", false),
334
+ peg$c37 = function peg$c37(first, rest) {
329
335
  var arrSettings = [first].concat(rest.map(function (el) {
330
336
  return el[1];
331
337
  }));
@@ -341,44 +347,48 @@ function peg$parse(input, options) {
341
347
  });
342
348
  return res;
343
349
  },
344
- peg$c40 = function peg$c40(v) {
350
+ peg$c38 = function peg$c38(v) {
345
351
  return {
346
352
  type: 'update',
347
353
  value: v
348
354
  };
349
355
  },
350
- peg$c41 = function peg$c41(v) {
356
+ peg$c39 = function peg$c39(v) {
351
357
  return {
352
358
  type: 'delete',
353
359
  value: v
354
360
  };
355
361
  },
356
- peg$c42 = "update:",
357
- peg$c43 = peg$literalExpectation("update:", true),
358
- peg$c44 = function peg$c44(val) {
362
+ peg$c40 = "update:",
363
+ peg$c41 = peg$literalExpectation("update:", true),
364
+ peg$c42 = function peg$c42(val) {
359
365
  return val;
360
366
  },
361
- peg$c45 = "delete:",
362
- peg$c46 = peg$literalExpectation("delete:", true),
363
- peg$c47 = function peg$c47(name, alias, table_settings, body) {
367
+ peg$c43 = "delete:",
368
+ peg$c44 = peg$literalExpectation("delete:", true),
369
+ peg$c45 = function peg$c45(schemaName, name, alias, table_settings, body) {
364
370
  var fields = body.fields || [];
365
371
  var indexes = body.indexes || []; // Handle list of partial inline_refs
366
372
 
367
373
  var refs = [];
368
374
  fields.forEach(function (field) {
369
375
  (field.inline_refs || []).forEach(function (iref) {
376
+ var rel = getRelations(iref.relation);
370
377
  var endpoints = [{
378
+ schemaName: iref.schemaName,
371
379
  tableName: iref.tableName,
372
380
  fieldNames: iref.fieldNames,
373
- relation: iref.relation === "<" ? "*" : "1",
381
+ relation: rel[1],
374
382
  token: iref.token
375
383
  }, {
384
+ schemaName: schemaName,
376
385
  tableName: name,
377
386
  fieldNames: [field.name],
378
- relation: iref.relation === ">" ? "*" : "1",
387
+ relation: rel[0],
379
388
  token: iref.token
380
389
  }];
381
390
  var ref = {
391
+ schemaName: schemaName,
382
392
  name: null,
383
393
  // no name
384
394
  endpoints: endpoints,
@@ -388,8 +398,23 @@ function peg$parse(input, options) {
388
398
  });
389
399
  });
390
400
 
401
+ if (alias) {
402
+ if (data.aliases.find(function (a) {
403
+ return a.name === alias;
404
+ })) error("Alias \"".concat(alias, "\" is already defined"));
405
+ data.aliases.push({
406
+ name: alias,
407
+ kind: 'table',
408
+ value: {
409
+ tableName: name,
410
+ schemaName: schemaName
411
+ }
412
+ });
413
+ }
414
+
391
415
  var res = _objectSpread({
392
416
  name: name,
417
+ schemaName: schemaName,
393
418
  alias: alias,
394
419
  fields: fields,
395
420
  token: location(),
@@ -404,7 +429,7 @@ function peg$parse(input, options) {
404
429
 
405
430
  return res;
406
431
  },
407
- peg$c48 = function peg$c48(fields, elements) {
432
+ peg$c46 = function peg$c46(fields, elements) {
408
433
  // concat all indexes
409
434
  var indexes = _.flatMap(elements.filter(function (ele) {
410
435
  return ele.type === 'indexes';
@@ -448,16 +473,18 @@ function peg$parse(input, options) {
448
473
  note: note ? note.value : null
449
474
  };
450
475
  },
451
- peg$c49 = function peg$c49(indexes) {
476
+ peg$c47 = function peg$c47(indexes) {
452
477
  return {
453
478
  type: 'indexes',
454
479
  value: indexes
455
480
  };
456
481
  },
457
- peg$c50 = function peg$c50(name, type, constrains, field_settings) {
482
+ peg$c48 = function peg$c48(name, typeSchemaName, type, constrains, field_settings) {
458
483
  var field = {
459
484
  name: name,
460
- type: type,
485
+ type: _objectSpread({
486
+ schemaName: typeSchemaName
487
+ }, type),
461
488
  token: location(),
462
489
  inline_refs: []
463
490
  };
@@ -471,19 +498,20 @@ function peg$parse(input, options) {
471
498
 
472
499
  return field;
473
500
  },
474
- peg$c51 = function peg$c51(name, body) {
501
+ peg$c49 = function peg$c49(schemaName, name, body) {
475
502
  return {
476
503
  name: name,
504
+ schemaName: schemaName,
477
505
  token: location(),
478
506
  values: body.enum_values
479
507
  };
480
508
  },
481
- peg$c52 = function peg$c52(enum_values) {
509
+ peg$c50 = function peg$c50(enum_values) {
482
510
  return {
483
511
  enum_values: enum_values
484
512
  };
485
513
  },
486
- peg$c53 = function peg$c53(name, enum_setting) {
514
+ peg$c51 = function peg$c51(name, enum_setting) {
487
515
  var enum_value = {
488
516
  name: name,
489
517
  token: location()
@@ -491,12 +519,12 @@ function peg$parse(input, options) {
491
519
  Object.assign(enum_value, enum_setting);
492
520
  return enum_value;
493
521
  },
494
- peg$c54 = function peg$c54(v) {
522
+ peg$c52 = function peg$c52(v) {
495
523
  return {
496
524
  note: v
497
525
  };
498
526
  },
499
- peg$c55 = function peg$c55(first, rest) {
527
+ peg$c53 = function peg$c53(first, rest) {
500
528
  var arrSettings = [first].concat(rest.map(function (el) {
501
529
  return el[1];
502
530
  }));
@@ -540,7 +568,7 @@ function peg$parse(input, options) {
540
568
  });
541
569
  return res;
542
570
  },
543
- peg$c56 = function peg$c56(first, rest) {
571
+ peg$c54 = function peg$c54(first, rest) {
544
572
  var settings = [first].concat(_toConsumableArray(rest.map(function (el) {
545
573
  return el[1];
546
574
  })));
@@ -558,52 +586,52 @@ function peg$parse(input, options) {
558
586
  });
559
587
  return result;
560
588
  },
561
- peg$c57 = function peg$c57(v) {
589
+ peg$c55 = function peg$c55(v) {
562
590
  return {
563
591
  type: 'note',
564
592
  value: v
565
593
  };
566
594
  },
567
- peg$c58 = function peg$c58(c) {
595
+ peg$c56 = function peg$c56(c) {
568
596
  return c;
569
597
  },
570
- peg$c59 = "not null",
571
- peg$c60 = peg$literalExpectation("not null", true),
572
- peg$c61 = function peg$c61(a) {
598
+ peg$c57 = "not null",
599
+ peg$c58 = peg$literalExpectation("not null", true),
600
+ peg$c59 = function peg$c59(a) {
573
601
  return a;
574
602
  },
575
- peg$c62 = "null",
576
- peg$c63 = peg$literalExpectation("null", true),
577
- peg$c64 = "primary key",
578
- peg$c65 = peg$literalExpectation("primary key", true),
579
- peg$c66 = "pk",
580
- peg$c67 = peg$literalExpectation("pk", true),
581
- peg$c68 = "unique",
582
- peg$c69 = peg$literalExpectation("unique", true),
583
- peg$c70 = "increment",
584
- peg$c71 = peg$literalExpectation("increment", false),
585
- peg$c72 = function peg$c72(v) {
603
+ peg$c60 = "null",
604
+ peg$c61 = peg$literalExpectation("null", true),
605
+ peg$c62 = "primary key",
606
+ peg$c63 = peg$literalExpectation("primary key", true),
607
+ peg$c64 = "pk",
608
+ peg$c65 = peg$literalExpectation("pk", true),
609
+ peg$c66 = "unique",
610
+ peg$c67 = peg$literalExpectation("unique", true),
611
+ peg$c68 = "increment",
612
+ peg$c69 = peg$literalExpectation("increment", false),
613
+ peg$c70 = function peg$c70(v) {
586
614
  return {
587
615
  type: 'ref_inline',
588
616
  value: v
589
617
  };
590
618
  },
591
- peg$c73 = function peg$c73(v) {
619
+ peg$c71 = function peg$c71(v) {
592
620
  return {
593
621
  type: 'default',
594
622
  value: v
595
623
  };
596
624
  },
597
- peg$c74 = function peg$c74(body) {
625
+ peg$c72 = function peg$c72(body) {
598
626
  return body;
599
627
  },
600
- peg$c75 = function peg$c75(index) {
628
+ peg$c73 = function peg$c73(index) {
601
629
  return index;
602
630
  },
603
- peg$c76 = function peg$c76(index) {
631
+ peg$c74 = function peg$c74(index) {
604
632
  return index;
605
633
  },
606
- peg$c77 = function peg$c77(syntax, index_settings) {
634
+ peg$c75 = function peg$c75(syntax, index_settings) {
607
635
  var index = {
608
636
  columns: [syntax],
609
637
  token: location()
@@ -611,7 +639,7 @@ function peg$parse(input, options) {
611
639
  Object.assign(index, index_settings);
612
640
  return index;
613
641
  },
614
- peg$c78 = function peg$c78(syntax, index_settings) {
642
+ peg$c76 = function peg$c76(syntax, index_settings) {
615
643
  var index = {
616
644
  columns: syntax,
617
645
  token: location()
@@ -619,35 +647,35 @@ function peg$parse(input, options) {
619
647
  Object.assign(index, index_settings);
620
648
  return index;
621
649
  },
622
- peg$c79 = function peg$c79(column) {
650
+ peg$c77 = function peg$c77(column) {
623
651
  var singleIndex = {
624
652
  value: column,
625
653
  type: 'column'
626
654
  };
627
655
  return singleIndex;
628
656
  },
629
- peg$c80 = "`",
630
- peg$c81 = peg$literalExpectation("`", false),
631
- peg$c82 = /^[^`]/,
632
- peg$c83 = peg$classExpectation(["`"], true, false),
633
- peg$c84 = function peg$c84(text) {
657
+ peg$c78 = "`",
658
+ peg$c79 = peg$literalExpectation("`", false),
659
+ peg$c80 = /^[^`]/,
660
+ peg$c81 = peg$classExpectation(["`"], true, false),
661
+ peg$c82 = function peg$c82(text) {
634
662
  return {
635
663
  value: text.join(""),
636
664
  type: 'expression'
637
665
  };
638
666
  },
639
- peg$c85 = function peg$c85(first, rest) {
667
+ peg$c83 = function peg$c83(first, rest) {
640
668
  var arrIndex = [first].concat(rest.map(function (el) {
641
669
  return el[2];
642
670
  }));
643
671
  return arrIndex;
644
672
  },
645
- peg$c86 = function peg$c86() {
673
+ peg$c84 = function peg$c84() {
646
674
  return {
647
675
  pk: true
648
676
  };
649
677
  },
650
- peg$c87 = function peg$c87(first, rest) {
678
+ peg$c85 = function peg$c85(first, rest) {
651
679
  var arrSettings = [first].concat(rest.map(function (el) {
652
680
  return el[1];
653
681
  }));
@@ -661,120 +689,161 @@ function peg$parse(input, options) {
661
689
  });
662
690
  return res;
663
691
  },
664
- peg$c88 = function peg$c88(v) {
692
+ peg$c86 = function peg$c86(v) {
665
693
  return {
666
694
  type: 'name',
667
695
  value: v
668
696
  };
669
697
  },
670
- peg$c89 = function peg$c89(v) {
698
+ peg$c87 = function peg$c87(v) {
671
699
  return {
672
700
  type: 'type',
673
701
  value: v
674
702
  };
675
703
  },
676
- peg$c90 = "name:",
677
- peg$c91 = peg$literalExpectation("name:", true),
678
- peg$c92 = function peg$c92(val) {
704
+ peg$c88 = "name:",
705
+ peg$c89 = peg$literalExpectation("name:", true),
706
+ peg$c90 = function peg$c90(val) {
679
707
  return val.value;
680
708
  },
681
- peg$c93 = function peg$c93(note) {
709
+ peg$c91 = function peg$c91(note) {
682
710
  return note;
683
711
  },
684
- peg$c94 = "note",
685
- peg$c95 = peg$literalExpectation("note", true),
686
- peg$c96 = "note:",
687
- peg$c97 = peg$literalExpectation("note:", true),
688
- peg$c98 = "type:",
689
- peg$c99 = peg$literalExpectation("type:", true),
690
- peg$c100 = "ref:",
691
- peg$c101 = peg$literalExpectation("ref:", false),
692
- peg$c102 = function peg$c102(relation, table2, field2) {
712
+ peg$c92 = "note",
713
+ peg$c93 = peg$literalExpectation("note", true),
714
+ peg$c94 = "note:",
715
+ peg$c95 = peg$literalExpectation("note:", true),
716
+ peg$c96 = "type:",
717
+ peg$c97 = peg$literalExpectation("type:", true),
718
+ peg$c98 = "ref:",
719
+ peg$c99 = peg$literalExpectation("ref:", false),
720
+ peg$c100 = function peg$c100(relation, field) {
693
721
  return {
694
- tableName: table2,
695
- fieldNames: [field2],
722
+ schemaName: field.schemaName,
723
+ tableName: field.tableName,
724
+ fieldNames: [field.fieldName],
696
725
  relation: relation,
697
726
  token: location()
698
727
  };
699
728
  },
700
- peg$c103 = "default:",
701
- peg$c104 = peg$literalExpectation("default:", true),
702
- peg$c105 = function peg$c105(val) {
729
+ peg$c101 = "default:",
730
+ peg$c102 = peg$literalExpectation("default:", true),
731
+ peg$c103 = function peg$c103(val) {
703
732
  return val;
704
733
  },
705
- peg$c106 = "as",
706
- peg$c107 = peg$literalExpectation("as", false),
707
- peg$c108 = function peg$c108(alias) {
734
+ peg$c104 = "as",
735
+ peg$c105 = peg$literalExpectation("as", false),
736
+ peg$c106 = function peg$c106(alias) {
708
737
  return alias;
709
738
  },
710
- peg$c109 = function peg$c109(s, color) {
739
+ peg$c107 = function peg$c107(s, color) {
711
740
  return s + color.join('');
712
741
  },
713
- peg$c110 = peg$otherExpectation("project"),
714
- peg$c111 = "project",
715
- peg$c112 = peg$literalExpectation("project", true),
716
- peg$c113 = peg$otherExpectation("table"),
717
- peg$c114 = "table",
718
- peg$c115 = peg$literalExpectation("table", true),
719
- peg$c116 = peg$literalExpectation("as", true),
720
- peg$c117 = peg$otherExpectation("references"),
721
- peg$c118 = "ref",
722
- peg$c119 = peg$literalExpectation("ref", true),
723
- peg$c120 = peg$otherExpectation("unique"),
724
- peg$c121 = function peg$c121() {
742
+ peg$c108 = peg$otherExpectation("project"),
743
+ peg$c109 = "project",
744
+ peg$c110 = peg$literalExpectation("project", true),
745
+ peg$c111 = peg$otherExpectation("table"),
746
+ peg$c112 = "table",
747
+ peg$c113 = peg$literalExpectation("table", true),
748
+ peg$c114 = peg$literalExpectation("as", true),
749
+ peg$c115 = peg$otherExpectation("references"),
750
+ peg$c116 = "ref",
751
+ peg$c117 = peg$literalExpectation("ref", true),
752
+ peg$c118 = peg$otherExpectation("unique"),
753
+ peg$c119 = function peg$c119() {
725
754
  return {
726
755
  unique: true
727
756
  };
728
757
  },
729
- peg$c122 = peg$otherExpectation("PK"),
730
- peg$c123 = function peg$c123() {
758
+ peg$c120 = peg$otherExpectation("PK"),
759
+ peg$c121 = function peg$c121() {
731
760
  return {
732
761
  pk: true
733
762
  };
734
763
  },
735
- peg$c124 = peg$otherExpectation("indexes"),
736
- peg$c125 = "indexes",
737
- peg$c126 = peg$literalExpectation("indexes", true),
738
- peg$c127 = peg$otherExpectation("btree"),
739
- peg$c128 = "btree",
740
- peg$c129 = peg$literalExpectation("btree", true),
741
- peg$c130 = peg$otherExpectation("hash"),
742
- peg$c131 = "hash",
743
- peg$c132 = peg$literalExpectation("hash", true),
744
- peg$c133 = peg$otherExpectation("enum"),
745
- peg$c134 = "enum",
746
- peg$c135 = peg$literalExpectation("enum", true),
747
- peg$c136 = "headercolor",
748
- peg$c137 = peg$literalExpectation("headercolor", true),
749
- peg$c138 = peg$otherExpectation("Table Group"),
750
- peg$c139 = "tablegroup",
751
- peg$c140 = peg$literalExpectation("TableGroup", true),
752
- peg$c141 = peg$otherExpectation("no action"),
753
- peg$c142 = "no action",
754
- peg$c143 = peg$literalExpectation("no action", true),
755
- peg$c144 = peg$otherExpectation("restrict"),
756
- peg$c145 = "restrict",
757
- peg$c146 = peg$literalExpectation("restrict", true),
758
- peg$c147 = peg$otherExpectation("cascade"),
759
- peg$c148 = "cascade",
760
- peg$c149 = peg$literalExpectation("cascade", true),
761
- peg$c150 = peg$otherExpectation("set null"),
762
- peg$c151 = "set null",
763
- peg$c152 = peg$literalExpectation("set null", true),
764
- peg$c153 = peg$otherExpectation("set default"),
765
- peg$c154 = "set default",
766
- peg$c155 = peg$literalExpectation("set default", true),
767
- peg$c156 = peg$otherExpectation(">, - or <"),
768
- peg$c157 = /^[>\-<]/,
769
- peg$c158 = peg$classExpectation([">", "-", "<"], false, false),
770
- peg$c159 = peg$otherExpectation("valid name"),
771
- peg$c160 = function peg$c160(c) {
764
+ peg$c122 = peg$otherExpectation("indexes"),
765
+ peg$c123 = "indexes",
766
+ peg$c124 = peg$literalExpectation("indexes", true),
767
+ peg$c125 = peg$otherExpectation("btree"),
768
+ peg$c126 = "btree",
769
+ peg$c127 = peg$literalExpectation("btree", true),
770
+ peg$c128 = peg$otherExpectation("hash"),
771
+ peg$c129 = "hash",
772
+ peg$c130 = peg$literalExpectation("hash", true),
773
+ peg$c131 = peg$otherExpectation("enum"),
774
+ peg$c132 = "enum",
775
+ peg$c133 = peg$literalExpectation("enum", true),
776
+ peg$c134 = "headercolor",
777
+ peg$c135 = peg$literalExpectation("headercolor", true),
778
+ peg$c136 = peg$otherExpectation("Table Group"),
779
+ peg$c137 = "tablegroup",
780
+ peg$c138 = peg$literalExpectation("TableGroup", true),
781
+ peg$c139 = peg$otherExpectation("no action"),
782
+ peg$c140 = "no action",
783
+ peg$c141 = peg$literalExpectation("no action", true),
784
+ peg$c142 = peg$otherExpectation("restrict"),
785
+ peg$c143 = "restrict",
786
+ peg$c144 = peg$literalExpectation("restrict", true),
787
+ peg$c145 = peg$otherExpectation("cascade"),
788
+ peg$c146 = "cascade",
789
+ peg$c147 = peg$literalExpectation("cascade", true),
790
+ peg$c148 = peg$otherExpectation("set null"),
791
+ peg$c149 = "set null",
792
+ peg$c150 = peg$literalExpectation("set null", true),
793
+ peg$c151 = peg$otherExpectation("set default"),
794
+ peg$c152 = "set default",
795
+ peg$c153 = peg$literalExpectation("set default", true),
796
+ peg$c154 = peg$otherExpectation("<>, >, - or <"),
797
+ peg$c155 = "<>",
798
+ peg$c156 = peg$literalExpectation("<>", false),
799
+ peg$c157 = ">",
800
+ peg$c158 = peg$literalExpectation(">", false),
801
+ peg$c159 = "<",
802
+ peg$c160 = peg$literalExpectation("<", false),
803
+ peg$c161 = "-",
804
+ peg$c162 = peg$literalExpectation("-", false),
805
+ peg$c163 = peg$otherExpectation("valid name"),
806
+ peg$c164 = function peg$c164(c) {
772
807
  return c.join("");
773
808
  },
774
- peg$c161 = /^[^"\n]/,
775
- peg$c162 = peg$classExpectation(["\"", "\n"], true, false),
776
- peg$c163 = peg$otherExpectation("type"),
777
- peg$c164 = function peg$c164(type_name, args) {
809
+ peg$c165 = /^[^"\n]/,
810
+ peg$c166 = peg$classExpectation(["\"", "\n"], true, false),
811
+ peg$c167 = peg$otherExpectation("schema name"),
812
+ peg$c168 = ".",
813
+ peg$c169 = peg$literalExpectation(".", false),
814
+ peg$c170 = function peg$c170(name) {
815
+ return name;
816
+ },
817
+ peg$c171 = function peg$c171(schemaName, tableName, fieldNames) {
818
+ return {
819
+ schemaName: schemaName,
820
+ tableName: tableName,
821
+ fieldNames: fieldNames
822
+ };
823
+ },
824
+ peg$c172 = function peg$c172(tableName, fieldNames) {
825
+ return {
826
+ schemaName: null,
827
+ tableName: tableName,
828
+ fieldNames: fieldNames
829
+ };
830
+ },
831
+ peg$c173 = function peg$c173(schemaName, tableName, fieldName) {
832
+ return {
833
+ schemaName: schemaName,
834
+ tableName: tableName,
835
+ fieldName: fieldName
836
+ };
837
+ },
838
+ peg$c174 = function peg$c174(tableName, fieldName) {
839
+ return {
840
+ schemaName: null,
841
+ tableName: tableName,
842
+ fieldName: fieldName
843
+ };
844
+ },
845
+ peg$c175 = peg$otherExpectation("type"),
846
+ peg$c176 = function peg$c176(type_name, args) {
778
847
  args = args ? args[3] : null;
779
848
 
780
849
  if (type_name.toLowerCase() !== 'enum') {
@@ -786,76 +855,76 @@ function peg$parse(input, options) {
786
855
  args: args
787
856
  };
788
857
  },
789
- peg$c165 = peg$otherExpectation("expression"),
790
- peg$c166 = function peg$c166(factors) {
858
+ peg$c177 = peg$otherExpectation("expression"),
859
+ peg$c178 = function peg$c178(factors) {
791
860
  return _.flattenDeep(factors).join("");
792
861
  },
793
- peg$c167 = ",",
794
- peg$c168 = peg$literalExpectation(",", false),
795
- peg$c169 = ");",
796
- peg$c170 = peg$literalExpectation(");", false),
797
- peg$c171 = peg$anyExpectation(),
798
- peg$c172 = function peg$c172(factors) {
862
+ peg$c179 = ",",
863
+ peg$c180 = peg$literalExpectation(",", false),
864
+ peg$c181 = ");",
865
+ peg$c182 = peg$literalExpectation(");", false),
866
+ peg$c183 = peg$anyExpectation(),
867
+ peg$c184 = function peg$c184(factors) {
799
868
  return _.flattenDeep(factors).join("");
800
869
  },
801
- peg$c173 = /^[',.a-z0-9_+-`]/i,
802
- peg$c174 = peg$classExpectation(["'", ",", ".", ["a", "z"], ["0", "9"], "_", ["+", "`"]], false, true),
803
- peg$c175 = /^['.a-z0-9_+\-]/i,
804
- peg$c176 = peg$classExpectation(["'", ".", ["a", "z"], ["0", "9"], "_", "+", "-"], false, true),
805
- peg$c177 = function peg$c177() {
870
+ peg$c185 = /^[',.a-z0-9_+-`]/i,
871
+ peg$c186 = peg$classExpectation(["'", ",", ".", ["a", "z"], ["0", "9"], "_", ["+", "`"]], false, true),
872
+ peg$c187 = /^['.a-z0-9_+\-]/i,
873
+ peg$c188 = peg$classExpectation(["'", ".", ["a", "z"], ["0", "9"], "_", "+", "-"], false, true),
874
+ peg$c189 = function peg$c189() {
806
875
  return text();
807
876
  },
808
- peg$c178 = /^[[\]]/,
809
- peg$c179 = peg$classExpectation(["[", "]"], false, false),
810
- peg$c180 = peg$otherExpectation("letter, number or underscore"),
811
- peg$c181 = /^[a-z0-9_]/i,
812
- peg$c182 = peg$classExpectation([["a", "z"], ["0", "9"], "_"], false, true),
813
- peg$c183 = /^[0-9a-fA-F]/,
814
- peg$c184 = peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false),
815
- peg$c185 = function peg$c185(c) {
877
+ peg$c190 = /^[[\]]/,
878
+ peg$c191 = peg$classExpectation(["[", "]"], false, false),
879
+ peg$c192 = peg$otherExpectation("letter, number or underscore"),
880
+ peg$c193 = /^[a-z0-9_]/i,
881
+ peg$c194 = peg$classExpectation([["a", "z"], ["0", "9"], "_"], false, true),
882
+ peg$c195 = /^[0-9a-fA-F]/,
883
+ peg$c196 = peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false),
884
+ peg$c197 = function peg$c197(c) {
816
885
  return c.toLowerCase();
817
886
  },
818
- peg$c186 = "\"",
819
- peg$c187 = peg$literalExpectation("\"", false),
820
- peg$c188 = peg$otherExpectation("endline"),
821
- peg$c189 = "\t",
822
- peg$c190 = peg$literalExpectation("\t", false),
823
- peg$c191 = "//",
824
- peg$c192 = peg$literalExpectation("//", false),
825
- peg$c193 = /^[^\n]/,
826
- peg$c194 = peg$classExpectation(["\n"], true, false),
827
- peg$c195 = "/*",
828
- peg$c196 = peg$literalExpectation("/*", false),
829
- peg$c197 = "*/",
830
- peg$c198 = peg$literalExpectation("*/", false),
831
- peg$c199 = peg$otherExpectation("comment"),
832
- peg$c200 = peg$otherExpectation("newline"),
833
- peg$c201 = "\r\n",
834
- peg$c202 = peg$literalExpectation("\r\n", false),
835
- peg$c203 = "\n",
836
- peg$c204 = peg$literalExpectation("\n", false),
837
- peg$c205 = peg$otherExpectation("whitespace"),
838
- peg$c206 = /^[ \t\r\n\r]/,
839
- peg$c207 = peg$classExpectation([" ", "\t", "\r", "\n", "\r"], false, false),
840
- peg$c208 = /^[ \t\r\n\r"]/,
841
- peg$c209 = peg$classExpectation([" ", "\t", "\r", "\n", "\r", "\""], false, false),
842
- peg$c210 = " ",
843
- peg$c211 = peg$literalExpectation(" ", false),
844
- peg$c212 = "#",
845
- peg$c213 = peg$literalExpectation("#", false),
846
- peg$c214 = function peg$c214() {
887
+ peg$c198 = "\"",
888
+ peg$c199 = peg$literalExpectation("\"", false),
889
+ peg$c200 = peg$otherExpectation("endline"),
890
+ peg$c201 = "\t",
891
+ peg$c202 = peg$literalExpectation("\t", false),
892
+ peg$c203 = "//",
893
+ peg$c204 = peg$literalExpectation("//", false),
894
+ peg$c205 = /^[^\n]/,
895
+ peg$c206 = peg$classExpectation(["\n"], true, false),
896
+ peg$c207 = "/*",
897
+ peg$c208 = peg$literalExpectation("/*", false),
898
+ peg$c209 = "*/",
899
+ peg$c210 = peg$literalExpectation("*/", false),
900
+ peg$c211 = peg$otherExpectation("comment"),
901
+ peg$c212 = peg$otherExpectation("newline"),
902
+ peg$c213 = "\r\n",
903
+ peg$c214 = peg$literalExpectation("\r\n", false),
904
+ peg$c215 = "\n",
905
+ peg$c216 = peg$literalExpectation("\n", false),
906
+ peg$c217 = peg$otherExpectation("whitespace"),
907
+ peg$c218 = /^[ \t\r\n\r]/,
908
+ peg$c219 = peg$classExpectation([" ", "\t", "\r", "\n", "\r"], false, false),
909
+ peg$c220 = /^[ \t\r\n\r"]/,
910
+ peg$c221 = peg$classExpectation([" ", "\t", "\r", "\n", "\r", "\""], false, false),
911
+ peg$c222 = " ",
912
+ peg$c223 = peg$literalExpectation(" ", false),
913
+ peg$c224 = "#",
914
+ peg$c225 = peg$literalExpectation("#", false),
915
+ peg$c226 = function peg$c226() {
847
916
  return "#";
848
917
  },
849
- peg$c215 = peg$otherExpectation("string"),
850
- peg$c216 = function peg$c216(chars) {
918
+ peg$c227 = peg$otherExpectation("string"),
919
+ peg$c228 = function peg$c228(chars) {
851
920
  return {
852
921
  value: chars.join(''),
853
922
  type: 'string'
854
923
  };
855
924
  },
856
- peg$c217 = "'''",
857
- peg$c218 = peg$literalExpectation("'''", false),
858
- peg$c219 = function peg$c219(chars) {
925
+ peg$c229 = "'''",
926
+ peg$c230 = peg$literalExpectation("'''", false),
927
+ peg$c231 = function peg$c231(chars) {
859
928
  var str = chars.join(''); // // replace line continuation using look around, but this is not compatible with firefox, safari.
860
929
  // str = str.replace(/(?<!\\)\\(?!\\)(?:\n|\r\n)?/g, '');
861
930
  // str = str.replace(/\\\\/, '\\');
@@ -899,53 +968,53 @@ function peg$parse(input, options) {
899
968
  type: 'string'
900
969
  };
901
970
  },
902
- peg$c220 = "'",
903
- peg$c221 = peg$literalExpectation("'", false),
904
- peg$c222 = "\\",
905
- peg$c223 = peg$literalExpectation("\\", false),
906
- peg$c224 = function peg$c224() {
971
+ peg$c232 = "'",
972
+ peg$c233 = peg$literalExpectation("'", false),
973
+ peg$c234 = "\\",
974
+ peg$c235 = peg$literalExpectation("\\", false),
975
+ peg$c236 = function peg$c236() {
907
976
  return '"';
908
977
  },
909
- peg$c225 = function peg$c225() {
978
+ peg$c237 = function peg$c237() {
910
979
  return text();
911
980
  },
912
- peg$c226 = "\\'",
913
- peg$c227 = peg$literalExpectation("\\'", false),
914
- peg$c228 = function peg$c228() {
981
+ peg$c238 = "\\'",
982
+ peg$c239 = peg$literalExpectation("\\'", false),
983
+ peg$c240 = function peg$c240() {
915
984
  return "'";
916
985
  },
917
- peg$c229 = function peg$c229(bl) {
986
+ peg$c241 = function peg$c241(bl) {
918
987
  // escape character \. \\n => \n. Remove one backslash in the result string.
919
988
  return bl.join('');
920
989
  },
921
- peg$c230 = function peg$c230() {
990
+ peg$c242 = function peg$c242() {
922
991
  // replace line continuation
923
992
  return '';
924
993
  },
925
- peg$c231 = /^[0-9]/,
926
- peg$c232 = peg$classExpectation([["0", "9"]], false, false),
927
- peg$c233 = "=",
928
- peg$c234 = peg$literalExpectation("=", false),
929
- peg$c235 = "true",
930
- peg$c236 = peg$literalExpectation("true", true),
931
- peg$c237 = "false",
932
- peg$c238 = peg$literalExpectation("false", true),
933
- peg$c239 = function peg$c239(_boolean) {
994
+ peg$c243 = /^[0-9]/,
995
+ peg$c244 = peg$classExpectation([["0", "9"]], false, false),
996
+ peg$c245 = "=",
997
+ peg$c246 = peg$literalExpectation("=", false),
998
+ peg$c247 = "true",
999
+ peg$c248 = peg$literalExpectation("true", true),
1000
+ peg$c249 = "false",
1001
+ peg$c250 = peg$literalExpectation("false", true),
1002
+ peg$c251 = function peg$c251(_boolean) {
934
1003
  return {
935
1004
  type: 'boolean',
936
1005
  value: _boolean
937
1006
  };
938
1007
  },
939
- peg$c240 = function peg$c240(number) {
1008
+ peg$c252 = function peg$c252(minus, number) {
940
1009
  return {
941
1010
  type: 'number',
942
- value: number
1011
+ value: minus ? -number : number
943
1012
  };
944
1013
  },
945
- peg$c241 = function peg$c241(left, right) {
1014
+ peg$c253 = function peg$c253(left, right) {
946
1015
  return parseFloat(left.join("") + "." + right.join(""));
947
1016
  },
948
- peg$c242 = function peg$c242(digits) {
1017
+ peg$c254 = function peg$c254(digits) {
949
1018
  return parseInt(digits.join(""), 10);
950
1019
  },
951
1020
  peg$currPos = 0,
@@ -1541,7 +1610,7 @@ function peg$parse(input, options) {
1541
1610
  }
1542
1611
 
1543
1612
  function peg$parseTableGroupSyntax() {
1544
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
1613
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
1545
1614
  s0 = peg$currPos;
1546
1615
  s1 = peg$parsetable_group();
1547
1616
 
@@ -1559,48 +1628,59 @@ function peg$parse(input, options) {
1559
1628
  }
1560
1629
 
1561
1630
  if (s2 !== peg$FAILED) {
1562
- s3 = peg$parsename();
1631
+ s3 = peg$parseschema_name();
1632
+
1633
+ if (s3 === peg$FAILED) {
1634
+ s3 = null;
1635
+ }
1563
1636
 
1564
1637
  if (s3 !== peg$FAILED) {
1565
- s4 = peg$parse_();
1638
+ s4 = peg$parsename();
1566
1639
 
1567
1640
  if (s4 !== peg$FAILED) {
1568
- if (input.charCodeAt(peg$currPos) === 123) {
1569
- s5 = peg$c6;
1570
- peg$currPos++;
1571
- } else {
1572
- s5 = peg$FAILED;
1573
-
1574
- if (peg$silentFails === 0) {
1575
- peg$fail(peg$c7);
1576
- }
1577
- }
1641
+ s5 = peg$parse_();
1578
1642
 
1579
1643
  if (s5 !== peg$FAILED) {
1580
- s6 = peg$parse_();
1644
+ if (input.charCodeAt(peg$currPos) === 123) {
1645
+ s6 = peg$c6;
1646
+ peg$currPos++;
1647
+ } else {
1648
+ s6 = peg$FAILED;
1649
+
1650
+ if (peg$silentFails === 0) {
1651
+ peg$fail(peg$c7);
1652
+ }
1653
+ }
1581
1654
 
1582
1655
  if (s6 !== peg$FAILED) {
1583
- s7 = peg$parsetable_group_body();
1656
+ s7 = peg$parse_();
1584
1657
 
1585
1658
  if (s7 !== peg$FAILED) {
1586
- s8 = peg$parse_();
1659
+ s8 = peg$parsetable_group_body();
1587
1660
 
1588
1661
  if (s8 !== peg$FAILED) {
1589
- if (input.charCodeAt(peg$currPos) === 125) {
1590
- s9 = peg$c8;
1591
- peg$currPos++;
1592
- } else {
1593
- s9 = peg$FAILED;
1662
+ s9 = peg$parse_();
1594
1663
 
1595
- if (peg$silentFails === 0) {
1596
- peg$fail(peg$c9);
1664
+ if (s9 !== peg$FAILED) {
1665
+ if (input.charCodeAt(peg$currPos) === 125) {
1666
+ s10 = peg$c8;
1667
+ peg$currPos++;
1668
+ } else {
1669
+ s10 = peg$FAILED;
1670
+
1671
+ if (peg$silentFails === 0) {
1672
+ peg$fail(peg$c9);
1673
+ }
1597
1674
  }
1598
- }
1599
1675
 
1600
- if (s9 !== peg$FAILED) {
1601
- peg$savedPos = s0;
1602
- s1 = peg$c21(s3, s7);
1603
- s0 = s1;
1676
+ if (s10 !== peg$FAILED) {
1677
+ peg$savedPos = s0;
1678
+ s1 = peg$c21(s3, s4, s8);
1679
+ s0 = s1;
1680
+ } else {
1681
+ peg$currPos = s0;
1682
+ s0 = peg$FAILED;
1683
+ }
1604
1684
  } else {
1605
1685
  peg$currPos = s0;
1606
1686
  s0 = peg$FAILED;
@@ -1642,18 +1722,29 @@ function peg$parse(input, options) {
1642
1722
  }
1643
1723
 
1644
1724
  function peg$parsetable_group_body() {
1645
- var s0, s1, s2, s3, s4;
1725
+ var s0, s1, s2, s3, s4, s5;
1646
1726
  s0 = peg$currPos;
1647
1727
  s1 = [];
1648
1728
  s2 = peg$currPos;
1649
- s3 = peg$parsename();
1729
+ s3 = peg$parseschema_name();
1730
+
1731
+ if (s3 === peg$FAILED) {
1732
+ s3 = null;
1733
+ }
1650
1734
 
1651
1735
  if (s3 !== peg$FAILED) {
1652
- s4 = peg$parse__();
1736
+ s4 = peg$parsename();
1653
1737
 
1654
1738
  if (s4 !== peg$FAILED) {
1655
- s3 = [s3, s4];
1656
- s2 = s3;
1739
+ s5 = peg$parse__();
1740
+
1741
+ if (s5 !== peg$FAILED) {
1742
+ s3 = [s3, s4, s5];
1743
+ s2 = s3;
1744
+ } else {
1745
+ peg$currPos = s2;
1746
+ s2 = peg$FAILED;
1747
+ }
1657
1748
  } else {
1658
1749
  peg$currPos = s2;
1659
1750
  s2 = peg$FAILED;
@@ -1666,14 +1757,25 @@ function peg$parse(input, options) {
1666
1757
  while (s2 !== peg$FAILED) {
1667
1758
  s1.push(s2);
1668
1759
  s2 = peg$currPos;
1669
- s3 = peg$parsename();
1760
+ s3 = peg$parseschema_name();
1761
+
1762
+ if (s3 === peg$FAILED) {
1763
+ s3 = null;
1764
+ }
1670
1765
 
1671
1766
  if (s3 !== peg$FAILED) {
1672
- s4 = peg$parse__();
1767
+ s4 = peg$parsename();
1673
1768
 
1674
1769
  if (s4 !== peg$FAILED) {
1675
- s3 = [s3, s4];
1676
- s2 = s3;
1770
+ s5 = peg$parse__();
1771
+
1772
+ if (s5 !== peg$FAILED) {
1773
+ s3 = [s3, s4, s5];
1774
+ s2 = s3;
1775
+ } else {
1776
+ peg$currPos = s2;
1777
+ s2 = peg$FAILED;
1778
+ }
1677
1779
  } else {
1678
1780
  peg$currPos = s2;
1679
1781
  s2 = peg$FAILED;
@@ -1919,24 +2021,25 @@ function peg$parse(input, options) {
1919
2021
  }
1920
2022
 
1921
2023
  function peg$parseref_body() {
1922
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
2024
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1923
2025
  s0 = peg$currPos;
1924
- s1 = peg$parsename();
2026
+ s1 = peg$parsefield_identifier();
1925
2027
 
1926
2028
  if (s1 !== peg$FAILED) {
1927
- if (input.charCodeAt(peg$currPos) === 46) {
1928
- s2 = peg$c25;
1929
- peg$currPos++;
1930
- } else {
1931
- s2 = peg$FAILED;
2029
+ s2 = [];
2030
+ s3 = peg$parsesp();
1932
2031
 
1933
- if (peg$silentFails === 0) {
1934
- peg$fail(peg$c26);
2032
+ if (s3 !== peg$FAILED) {
2033
+ while (s3 !== peg$FAILED) {
2034
+ s2.push(s3);
2035
+ s3 = peg$parsesp();
1935
2036
  }
2037
+ } else {
2038
+ s2 = peg$FAILED;
1936
2039
  }
1937
2040
 
1938
2041
  if (s2 !== peg$FAILED) {
1939
- s3 = peg$parseRefField();
2042
+ s3 = peg$parserelation();
1940
2043
 
1941
2044
  if (s3 !== peg$FAILED) {
1942
2045
  s4 = [];
@@ -1952,75 +2055,28 @@ function peg$parse(input, options) {
1952
2055
  }
1953
2056
 
1954
2057
  if (s4 !== peg$FAILED) {
1955
- s5 = peg$parserelation();
2058
+ s5 = peg$parsefield_identifier();
1956
2059
 
1957
2060
  if (s5 !== peg$FAILED) {
1958
2061
  s6 = [];
1959
2062
  s7 = peg$parsesp();
1960
2063
 
1961
- if (s7 !== peg$FAILED) {
1962
- while (s7 !== peg$FAILED) {
1963
- s6.push(s7);
1964
- s7 = peg$parsesp();
1965
- }
1966
- } else {
1967
- s6 = peg$FAILED;
2064
+ while (s7 !== peg$FAILED) {
2065
+ s6.push(s7);
2066
+ s7 = peg$parsesp();
1968
2067
  }
1969
2068
 
1970
2069
  if (s6 !== peg$FAILED) {
1971
- s7 = peg$parsename();
1972
-
1973
- if (s7 !== peg$FAILED) {
1974
- if (input.charCodeAt(peg$currPos) === 46) {
1975
- s8 = peg$c25;
1976
- peg$currPos++;
1977
- } else {
1978
- s8 = peg$FAILED;
1979
-
1980
- if (peg$silentFails === 0) {
1981
- peg$fail(peg$c26);
1982
- }
1983
- }
1984
-
1985
- if (s8 !== peg$FAILED) {
1986
- s9 = peg$parseRefField();
1987
-
1988
- if (s9 !== peg$FAILED) {
1989
- s10 = [];
1990
- s11 = peg$parsesp();
1991
-
1992
- while (s11 !== peg$FAILED) {
1993
- s10.push(s11);
1994
- s11 = peg$parsesp();
1995
- }
1996
-
1997
- if (s10 !== peg$FAILED) {
1998
- s11 = peg$parseRefSettings();
2070
+ s7 = peg$parseRefSettings();
1999
2071
 
2000
- if (s11 === peg$FAILED) {
2001
- s11 = null;
2002
- }
2072
+ if (s7 === peg$FAILED) {
2073
+ s7 = null;
2074
+ }
2003
2075
 
2004
- if (s11 !== peg$FAILED) {
2005
- peg$savedPos = s0;
2006
- s1 = peg$c27(s1, s3, s5, s7, s9, s11);
2007
- s0 = s1;
2008
- } else {
2009
- peg$currPos = s0;
2010
- s0 = peg$FAILED;
2011
- }
2012
- } else {
2013
- peg$currPos = s0;
2014
- s0 = peg$FAILED;
2015
- }
2016
- } else {
2017
- peg$currPos = s0;
2018
- s0 = peg$FAILED;
2019
- }
2020
- } else {
2021
- peg$currPos = s0;
2022
- s0 = peg$FAILED;
2023
- }
2076
+ if (s7 !== peg$FAILED) {
2077
+ peg$savedPos = s0;
2078
+ s1 = peg$c25(s1, s3, s5, s7);
2079
+ s0 = s1;
2024
2080
  } else {
2025
2081
  peg$currPos = s0;
2026
2082
  s0 = peg$FAILED;
@@ -2064,7 +2120,7 @@ function peg$parse(input, options) {
2064
2120
 
2065
2121
  if (s1 !== peg$FAILED) {
2066
2122
  peg$savedPos = s0;
2067
- s1 = peg$c28(s1);
2123
+ s1 = peg$c26(s1);
2068
2124
  }
2069
2125
 
2070
2126
  s0 = s1;
@@ -2078,7 +2134,7 @@ function peg$parse(input, options) {
2078
2134
 
2079
2135
  if (s1 !== peg$FAILED) {
2080
2136
  peg$savedPos = s0;
2081
- s1 = peg$c29(s1);
2137
+ s1 = peg$c27(s1);
2082
2138
  }
2083
2139
 
2084
2140
  s0 = s1;
@@ -2090,13 +2146,13 @@ function peg$parse(input, options) {
2090
2146
  s0 = peg$currPos;
2091
2147
 
2092
2148
  if (input.charCodeAt(peg$currPos) === 40) {
2093
- s1 = peg$c30;
2149
+ s1 = peg$c28;
2094
2150
  peg$currPos++;
2095
2151
  } else {
2096
2152
  s1 = peg$FAILED;
2097
2153
 
2098
2154
  if (peg$silentFails === 0) {
2099
- peg$fail(peg$c31);
2155
+ peg$fail(peg$c29);
2100
2156
  }
2101
2157
  }
2102
2158
 
@@ -2216,19 +2272,19 @@ function peg$parse(input, options) {
2216
2272
 
2217
2273
  if (s5 !== peg$FAILED) {
2218
2274
  if (input.charCodeAt(peg$currPos) === 41) {
2219
- s6 = peg$c32;
2275
+ s6 = peg$c30;
2220
2276
  peg$currPos++;
2221
2277
  } else {
2222
2278
  s6 = peg$FAILED;
2223
2279
 
2224
2280
  if (peg$silentFails === 0) {
2225
- peg$fail(peg$c33);
2281
+ peg$fail(peg$c31);
2226
2282
  }
2227
2283
  }
2228
2284
 
2229
2285
  if (s6 !== peg$FAILED) {
2230
2286
  peg$savedPos = s0;
2231
- s1 = peg$c34(s3, s4);
2287
+ s1 = peg$c32(s3, s4);
2232
2288
  s0 = s1;
2233
2289
  } else {
2234
2290
  peg$currPos = s0;
@@ -2263,13 +2319,13 @@ function peg$parse(input, options) {
2263
2319
  s0 = peg$currPos;
2264
2320
 
2265
2321
  if (input.charCodeAt(peg$currPos) === 91) {
2266
- s1 = peg$c35;
2322
+ s1 = peg$c33;
2267
2323
  peg$currPos++;
2268
2324
  } else {
2269
2325
  s1 = peg$FAILED;
2270
2326
 
2271
2327
  if (peg$silentFails === 0) {
2272
- peg$fail(peg$c36);
2328
+ peg$fail(peg$c34);
2273
2329
  }
2274
2330
  }
2275
2331
 
@@ -2319,19 +2375,19 @@ function peg$parse(input, options) {
2319
2375
 
2320
2376
  if (s3 !== peg$FAILED) {
2321
2377
  if (input.charCodeAt(peg$currPos) === 93) {
2322
- s4 = peg$c37;
2378
+ s4 = peg$c35;
2323
2379
  peg$currPos++;
2324
2380
  } else {
2325
2381
  s4 = peg$FAILED;
2326
2382
 
2327
2383
  if (peg$silentFails === 0) {
2328
- peg$fail(peg$c38);
2384
+ peg$fail(peg$c36);
2329
2385
  }
2330
2386
  }
2331
2387
 
2332
2388
  if (s4 !== peg$FAILED) {
2333
2389
  peg$savedPos = s0;
2334
- s1 = peg$c39(s2, s3);
2390
+ s1 = peg$c37(s2, s3);
2335
2391
  s0 = s1;
2336
2392
  } else {
2337
2393
  peg$currPos = s0;
@@ -2366,7 +2422,7 @@ function peg$parse(input, options) {
2366
2422
 
2367
2423
  if (s3 !== peg$FAILED) {
2368
2424
  peg$savedPos = s0;
2369
- s1 = peg$c40(s2);
2425
+ s1 = peg$c38(s2);
2370
2426
  s0 = s1;
2371
2427
  } else {
2372
2428
  peg$currPos = s0;
@@ -2393,7 +2449,7 @@ function peg$parse(input, options) {
2393
2449
 
2394
2450
  if (s3 !== peg$FAILED) {
2395
2451
  peg$savedPos = s0;
2396
- s1 = peg$c41(s2);
2452
+ s1 = peg$c39(s2);
2397
2453
  s0 = s1;
2398
2454
  } else {
2399
2455
  peg$currPos = s0;
@@ -2416,14 +2472,14 @@ function peg$parse(input, options) {
2416
2472
  var s0, s1, s2, s3;
2417
2473
  s0 = peg$currPos;
2418
2474
 
2419
- if (input.substr(peg$currPos, 7).toLowerCase() === peg$c42) {
2475
+ if (input.substr(peg$currPos, 7).toLowerCase() === peg$c40) {
2420
2476
  s1 = input.substr(peg$currPos, 7);
2421
2477
  peg$currPos += 7;
2422
2478
  } else {
2423
2479
  s1 = peg$FAILED;
2424
2480
 
2425
2481
  if (peg$silentFails === 0) {
2426
- peg$fail(peg$c43);
2482
+ peg$fail(peg$c41);
2427
2483
  }
2428
2484
  }
2429
2485
 
@@ -2451,7 +2507,7 @@ function peg$parse(input, options) {
2451
2507
 
2452
2508
  if (s3 !== peg$FAILED) {
2453
2509
  peg$savedPos = s0;
2454
- s1 = peg$c44(s3);
2510
+ s1 = peg$c42(s3);
2455
2511
  s0 = s1;
2456
2512
  } else {
2457
2513
  peg$currPos = s0;
@@ -2473,14 +2529,14 @@ function peg$parse(input, options) {
2473
2529
  var s0, s1, s2, s3;
2474
2530
  s0 = peg$currPos;
2475
2531
 
2476
- if (input.substr(peg$currPos, 7).toLowerCase() === peg$c45) {
2532
+ if (input.substr(peg$currPos, 7).toLowerCase() === peg$c43) {
2477
2533
  s1 = input.substr(peg$currPos, 7);
2478
2534
  peg$currPos += 7;
2479
2535
  } else {
2480
2536
  s1 = peg$FAILED;
2481
2537
 
2482
2538
  if (peg$silentFails === 0) {
2483
- peg$fail(peg$c46);
2539
+ peg$fail(peg$c44);
2484
2540
  }
2485
2541
  }
2486
2542
 
@@ -2508,7 +2564,7 @@ function peg$parse(input, options) {
2508
2564
 
2509
2565
  if (s3 !== peg$FAILED) {
2510
2566
  peg$savedPos = s0;
2511
- s1 = peg$c44(s3);
2567
+ s1 = peg$c42(s3);
2512
2568
  s0 = s1;
2513
2569
  } else {
2514
2570
  peg$currPos = s0;
@@ -2527,7 +2583,7 @@ function peg$parse(input, options) {
2527
2583
  }
2528
2584
 
2529
2585
  function peg$parseTableSyntax() {
2530
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
2586
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
2531
2587
  s0 = peg$currPos;
2532
2588
  s1 = peg$parsetable();
2533
2589
 
@@ -2545,65 +2601,76 @@ function peg$parse(input, options) {
2545
2601
  }
2546
2602
 
2547
2603
  if (s2 !== peg$FAILED) {
2548
- s3 = peg$parsename();
2604
+ s3 = peg$parseschema_name();
2549
2605
 
2550
- if (s3 !== peg$FAILED) {
2551
- s4 = peg$parsealias_def();
2606
+ if (s3 === peg$FAILED) {
2607
+ s3 = null;
2608
+ }
2552
2609
 
2553
- if (s4 === peg$FAILED) {
2554
- s4 = null;
2555
- }
2610
+ if (s3 !== peg$FAILED) {
2611
+ s4 = peg$parsename();
2556
2612
 
2557
2613
  if (s4 !== peg$FAILED) {
2558
- s5 = [];
2559
- s6 = peg$parsesp();
2614
+ s5 = peg$parsealias_def();
2560
2615
 
2561
- while (s6 !== peg$FAILED) {
2562
- s5.push(s6);
2563
- s6 = peg$parsesp();
2616
+ if (s5 === peg$FAILED) {
2617
+ s5 = null;
2564
2618
  }
2565
2619
 
2566
2620
  if (s5 !== peg$FAILED) {
2567
- s6 = peg$parseTableSettings();
2621
+ s6 = [];
2622
+ s7 = peg$parsesp();
2568
2623
 
2569
- if (s6 === peg$FAILED) {
2570
- s6 = null;
2624
+ while (s7 !== peg$FAILED) {
2625
+ s6.push(s7);
2626
+ s7 = peg$parsesp();
2571
2627
  }
2572
2628
 
2573
2629
  if (s6 !== peg$FAILED) {
2574
- s7 = peg$parse_();
2630
+ s7 = peg$parseTableSettings();
2575
2631
 
2576
- if (s7 !== peg$FAILED) {
2577
- if (input.charCodeAt(peg$currPos) === 123) {
2578
- s8 = peg$c6;
2579
- peg$currPos++;
2580
- } else {
2581
- s8 = peg$FAILED;
2632
+ if (s7 === peg$FAILED) {
2633
+ s7 = null;
2634
+ }
2582
2635
 
2583
- if (peg$silentFails === 0) {
2584
- peg$fail(peg$c7);
2585
- }
2586
- }
2636
+ if (s7 !== peg$FAILED) {
2637
+ s8 = peg$parse_();
2587
2638
 
2588
2639
  if (s8 !== peg$FAILED) {
2589
- s9 = peg$parseTableBody();
2640
+ if (input.charCodeAt(peg$currPos) === 123) {
2641
+ s9 = peg$c6;
2642
+ peg$currPos++;
2643
+ } else {
2644
+ s9 = peg$FAILED;
2645
+
2646
+ if (peg$silentFails === 0) {
2647
+ peg$fail(peg$c7);
2648
+ }
2649
+ }
2590
2650
 
2591
2651
  if (s9 !== peg$FAILED) {
2592
- if (input.charCodeAt(peg$currPos) === 125) {
2593
- s10 = peg$c8;
2594
- peg$currPos++;
2595
- } else {
2596
- s10 = peg$FAILED;
2652
+ s10 = peg$parseTableBody();
2597
2653
 
2598
- if (peg$silentFails === 0) {
2599
- peg$fail(peg$c9);
2654
+ if (s10 !== peg$FAILED) {
2655
+ if (input.charCodeAt(peg$currPos) === 125) {
2656
+ s11 = peg$c8;
2657
+ peg$currPos++;
2658
+ } else {
2659
+ s11 = peg$FAILED;
2660
+
2661
+ if (peg$silentFails === 0) {
2662
+ peg$fail(peg$c9);
2663
+ }
2600
2664
  }
2601
- }
2602
2665
 
2603
- if (s10 !== peg$FAILED) {
2604
- peg$savedPos = s0;
2605
- s1 = peg$c47(s3, s4, s6, s9);
2606
- s0 = s1;
2666
+ if (s11 !== peg$FAILED) {
2667
+ peg$savedPos = s0;
2668
+ s1 = peg$c45(s3, s4, s5, s7, s10);
2669
+ s0 = s1;
2670
+ } else {
2671
+ peg$currPos = s0;
2672
+ s0 = peg$FAILED;
2673
+ }
2607
2674
  } else {
2608
2675
  peg$currPos = s0;
2609
2676
  s0 = peg$FAILED;
@@ -2683,7 +2750,7 @@ function peg$parse(input, options) {
2683
2750
 
2684
2751
  if (s5 !== peg$FAILED) {
2685
2752
  peg$savedPos = s0;
2686
- s1 = peg$c48(s2, s4);
2753
+ s1 = peg$c46(s2, s4);
2687
2754
  s0 = s1;
2688
2755
  } else {
2689
2756
  peg$currPos = s0;
@@ -2722,7 +2789,7 @@ function peg$parse(input, options) {
2722
2789
 
2723
2790
  if (s3 !== peg$FAILED) {
2724
2791
  peg$savedPos = s0;
2725
- s1 = peg$c49(s2);
2792
+ s1 = peg$c47(s2);
2726
2793
  s0 = s1;
2727
2794
  } else {
2728
2795
  peg$currPos = s0;
@@ -2769,7 +2836,7 @@ function peg$parse(input, options) {
2769
2836
  }
2770
2837
 
2771
2838
  function peg$parseField() {
2772
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
2839
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
2773
2840
  s0 = peg$currPos;
2774
2841
  s1 = peg$parse_();
2775
2842
 
@@ -2790,125 +2857,136 @@ function peg$parse(input, options) {
2790
2857
  }
2791
2858
 
2792
2859
  if (s3 !== peg$FAILED) {
2793
- s4 = peg$parsetype();
2860
+ s4 = peg$parseschema_name();
2794
2861
 
2795
- if (s4 !== peg$FAILED) {
2796
- s5 = [];
2797
- s6 = peg$currPos;
2798
- s7 = [];
2799
- s8 = peg$parsesp();
2862
+ if (s4 === peg$FAILED) {
2863
+ s4 = null;
2864
+ }
2800
2865
 
2801
- if (s8 !== peg$FAILED) {
2802
- while (s8 !== peg$FAILED) {
2803
- s7.push(s8);
2804
- s8 = peg$parsesp();
2805
- }
2806
- } else {
2807
- s7 = peg$FAILED;
2808
- }
2866
+ if (s4 !== peg$FAILED) {
2867
+ s5 = peg$parsetype();
2809
2868
 
2810
- if (s7 !== peg$FAILED) {
2811
- s8 = peg$parseconstrain();
2869
+ if (s5 !== peg$FAILED) {
2870
+ s6 = [];
2871
+ s7 = peg$currPos;
2872
+ s8 = [];
2873
+ s9 = peg$parsesp();
2812
2874
 
2813
- if (s8 !== peg$FAILED) {
2814
- s7 = [s7, s8];
2815
- s6 = s7;
2875
+ if (s9 !== peg$FAILED) {
2876
+ while (s9 !== peg$FAILED) {
2877
+ s8.push(s9);
2878
+ s9 = peg$parsesp();
2879
+ }
2816
2880
  } else {
2817
- peg$currPos = s6;
2818
- s6 = peg$FAILED;
2881
+ s8 = peg$FAILED;
2819
2882
  }
2820
- } else {
2821
- peg$currPos = s6;
2822
- s6 = peg$FAILED;
2823
- }
2824
-
2825
- while (s6 !== peg$FAILED) {
2826
- s5.push(s6);
2827
- s6 = peg$currPos;
2828
- s7 = [];
2829
- s8 = peg$parsesp();
2830
2883
 
2831
2884
  if (s8 !== peg$FAILED) {
2832
- while (s8 !== peg$FAILED) {
2833
- s7.push(s8);
2834
- s8 = peg$parsesp();
2885
+ s9 = peg$parseconstrain();
2886
+
2887
+ if (s9 !== peg$FAILED) {
2888
+ s8 = [s8, s9];
2889
+ s7 = s8;
2890
+ } else {
2891
+ peg$currPos = s7;
2892
+ s7 = peg$FAILED;
2835
2893
  }
2836
2894
  } else {
2895
+ peg$currPos = s7;
2837
2896
  s7 = peg$FAILED;
2838
2897
  }
2839
2898
 
2840
- if (s7 !== peg$FAILED) {
2841
- s8 = peg$parseconstrain();
2899
+ while (s7 !== peg$FAILED) {
2900
+ s6.push(s7);
2901
+ s7 = peg$currPos;
2902
+ s8 = [];
2903
+ s9 = peg$parsesp();
2842
2904
 
2843
- if (s8 !== peg$FAILED) {
2844
- s7 = [s7, s8];
2845
- s6 = s7;
2905
+ if (s9 !== peg$FAILED) {
2906
+ while (s9 !== peg$FAILED) {
2907
+ s8.push(s9);
2908
+ s9 = peg$parsesp();
2909
+ }
2846
2910
  } else {
2847
- peg$currPos = s6;
2848
- s6 = peg$FAILED;
2911
+ s8 = peg$FAILED;
2849
2912
  }
2850
- } else {
2851
- peg$currPos = s6;
2852
- s6 = peg$FAILED;
2853
- }
2854
- }
2855
2913
 
2856
- if (s5 !== peg$FAILED) {
2857
- s6 = peg$currPos;
2858
- s7 = [];
2859
- s8 = peg$parsesp();
2914
+ if (s8 !== peg$FAILED) {
2915
+ s9 = peg$parseconstrain();
2860
2916
 
2861
- if (s8 !== peg$FAILED) {
2862
- while (s8 !== peg$FAILED) {
2863
- s7.push(s8);
2864
- s8 = peg$parsesp();
2917
+ if (s9 !== peg$FAILED) {
2918
+ s8 = [s8, s9];
2919
+ s7 = s8;
2920
+ } else {
2921
+ peg$currPos = s7;
2922
+ s7 = peg$FAILED;
2923
+ }
2924
+ } else {
2925
+ peg$currPos = s7;
2926
+ s7 = peg$FAILED;
2865
2927
  }
2866
- } else {
2867
- s7 = peg$FAILED;
2868
2928
  }
2869
2929
 
2870
- if (s7 !== peg$FAILED) {
2871
- s8 = peg$parseFieldSettings();
2930
+ if (s6 !== peg$FAILED) {
2931
+ s7 = peg$currPos;
2932
+ s8 = [];
2933
+ s9 = peg$parsesp();
2872
2934
 
2873
- if (s8 !== peg$FAILED) {
2874
- s7 = [s7, s8];
2875
- s6 = s7;
2935
+ if (s9 !== peg$FAILED) {
2936
+ while (s9 !== peg$FAILED) {
2937
+ s8.push(s9);
2938
+ s9 = peg$parsesp();
2939
+ }
2876
2940
  } else {
2877
- peg$currPos = s6;
2878
- s6 = peg$FAILED;
2941
+ s8 = peg$FAILED;
2879
2942
  }
2880
- } else {
2881
- peg$currPos = s6;
2882
- s6 = peg$FAILED;
2883
- }
2884
2943
 
2885
- if (s6 === peg$FAILED) {
2886
- s6 = null;
2887
- }
2944
+ if (s8 !== peg$FAILED) {
2945
+ s9 = peg$parseFieldSettings();
2888
2946
 
2889
- if (s6 !== peg$FAILED) {
2890
- s7 = [];
2891
- s8 = peg$parsesp();
2947
+ if (s9 !== peg$FAILED) {
2948
+ s8 = [s8, s9];
2949
+ s7 = s8;
2950
+ } else {
2951
+ peg$currPos = s7;
2952
+ s7 = peg$FAILED;
2953
+ }
2954
+ } else {
2955
+ peg$currPos = s7;
2956
+ s7 = peg$FAILED;
2957
+ }
2892
2958
 
2893
- while (s8 !== peg$FAILED) {
2894
- s7.push(s8);
2895
- s8 = peg$parsesp();
2959
+ if (s7 === peg$FAILED) {
2960
+ s7 = null;
2896
2961
  }
2897
2962
 
2898
2963
  if (s7 !== peg$FAILED) {
2899
- s8 = peg$parsecomment();
2964
+ s8 = [];
2965
+ s9 = peg$parsesp();
2900
2966
 
2901
- if (s8 === peg$FAILED) {
2902
- s8 = null;
2967
+ while (s9 !== peg$FAILED) {
2968
+ s8.push(s9);
2969
+ s9 = peg$parsesp();
2903
2970
  }
2904
2971
 
2905
2972
  if (s8 !== peg$FAILED) {
2906
- s9 = peg$parsenewline();
2973
+ s9 = peg$parsecomment();
2974
+
2975
+ if (s9 === peg$FAILED) {
2976
+ s9 = null;
2977
+ }
2907
2978
 
2908
2979
  if (s9 !== peg$FAILED) {
2909
- peg$savedPos = s0;
2910
- s1 = peg$c50(s2, s4, s5, s6);
2911
- s0 = s1;
2980
+ s10 = peg$parsenewline();
2981
+
2982
+ if (s10 !== peg$FAILED) {
2983
+ peg$savedPos = s0;
2984
+ s1 = peg$c48(s2, s4, s5, s6, s7);
2985
+ s0 = s1;
2986
+ } else {
2987
+ peg$currPos = s0;
2988
+ s0 = peg$FAILED;
2989
+ }
2912
2990
  } else {
2913
2991
  peg$currPos = s0;
2914
2992
  s0 = peg$FAILED;
@@ -2950,7 +3028,7 @@ function peg$parse(input, options) {
2950
3028
  }
2951
3029
 
2952
3030
  function peg$parseEnumSyntax() {
2953
- var s0, s1, s2, s3, s4, s5, s6, s7;
3031
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
2954
3032
  s0 = peg$currPos;
2955
3033
  s1 = peg$parseenum();
2956
3034
 
@@ -2968,42 +3046,53 @@ function peg$parse(input, options) {
2968
3046
  }
2969
3047
 
2970
3048
  if (s2 !== peg$FAILED) {
2971
- s3 = peg$parsename();
3049
+ s3 = peg$parseschema_name();
3050
+
3051
+ if (s3 === peg$FAILED) {
3052
+ s3 = null;
3053
+ }
2972
3054
 
2973
3055
  if (s3 !== peg$FAILED) {
2974
- s4 = peg$parse_();
3056
+ s4 = peg$parsename();
2975
3057
 
2976
3058
  if (s4 !== peg$FAILED) {
2977
- if (input.charCodeAt(peg$currPos) === 123) {
2978
- s5 = peg$c6;
2979
- peg$currPos++;
2980
- } else {
2981
- s5 = peg$FAILED;
2982
-
2983
- if (peg$silentFails === 0) {
2984
- peg$fail(peg$c7);
2985
- }
2986
- }
3059
+ s5 = peg$parse_();
2987
3060
 
2988
3061
  if (s5 !== peg$FAILED) {
2989
- s6 = peg$parseEnumBody();
3062
+ if (input.charCodeAt(peg$currPos) === 123) {
3063
+ s6 = peg$c6;
3064
+ peg$currPos++;
3065
+ } else {
3066
+ s6 = peg$FAILED;
3067
+
3068
+ if (peg$silentFails === 0) {
3069
+ peg$fail(peg$c7);
3070
+ }
3071
+ }
2990
3072
 
2991
3073
  if (s6 !== peg$FAILED) {
2992
- if (input.charCodeAt(peg$currPos) === 125) {
2993
- s7 = peg$c8;
2994
- peg$currPos++;
2995
- } else {
2996
- s7 = peg$FAILED;
3074
+ s7 = peg$parseEnumBody();
2997
3075
 
2998
- if (peg$silentFails === 0) {
2999
- peg$fail(peg$c9);
3076
+ if (s7 !== peg$FAILED) {
3077
+ if (input.charCodeAt(peg$currPos) === 125) {
3078
+ s8 = peg$c8;
3079
+ peg$currPos++;
3080
+ } else {
3081
+ s8 = peg$FAILED;
3082
+
3083
+ if (peg$silentFails === 0) {
3084
+ peg$fail(peg$c9);
3085
+ }
3000
3086
  }
3001
- }
3002
3087
 
3003
- if (s7 !== peg$FAILED) {
3004
- peg$savedPos = s0;
3005
- s1 = peg$c51(s3, s6);
3006
- s0 = s1;
3088
+ if (s8 !== peg$FAILED) {
3089
+ peg$savedPos = s0;
3090
+ s1 = peg$c49(s3, s4, s7);
3091
+ s0 = s1;
3092
+ } else {
3093
+ peg$currPos = s0;
3094
+ s0 = peg$FAILED;
3095
+ }
3007
3096
  } else {
3008
3097
  peg$currPos = s0;
3009
3098
  s0 = peg$FAILED;
@@ -3059,7 +3148,7 @@ function peg$parse(input, options) {
3059
3148
 
3060
3149
  if (s3 !== peg$FAILED) {
3061
3150
  peg$savedPos = s0;
3062
- s1 = peg$c52(s2);
3151
+ s1 = peg$c50(s2);
3063
3152
  s0 = s1;
3064
3153
  } else {
3065
3154
  peg$currPos = s0;
@@ -3122,7 +3211,7 @@ function peg$parse(input, options) {
3122
3211
 
3123
3212
  if (s7 !== peg$FAILED) {
3124
3213
  peg$savedPos = s0;
3125
- s1 = peg$c53(s2, s4);
3214
+ s1 = peg$c51(s2, s4);
3126
3215
  s0 = s1;
3127
3216
  } else {
3128
3217
  peg$currPos = s0;
@@ -3161,13 +3250,13 @@ function peg$parse(input, options) {
3161
3250
  s0 = peg$currPos;
3162
3251
 
3163
3252
  if (input.charCodeAt(peg$currPos) === 91) {
3164
- s1 = peg$c35;
3253
+ s1 = peg$c33;
3165
3254
  peg$currPos++;
3166
3255
  } else {
3167
3256
  s1 = peg$FAILED;
3168
3257
 
3169
3258
  if (peg$silentFails === 0) {
3170
- peg$fail(peg$c36);
3259
+ peg$fail(peg$c34);
3171
3260
  }
3172
3261
  }
3173
3262
 
@@ -3182,19 +3271,19 @@ function peg$parse(input, options) {
3182
3271
 
3183
3272
  if (s4 !== peg$FAILED) {
3184
3273
  if (input.charCodeAt(peg$currPos) === 93) {
3185
- s5 = peg$c37;
3274
+ s5 = peg$c35;
3186
3275
  peg$currPos++;
3187
3276
  } else {
3188
3277
  s5 = peg$FAILED;
3189
3278
 
3190
3279
  if (peg$silentFails === 0) {
3191
- peg$fail(peg$c38);
3280
+ peg$fail(peg$c36);
3192
3281
  }
3193
3282
  }
3194
3283
 
3195
3284
  if (s5 !== peg$FAILED) {
3196
3285
  peg$savedPos = s0;
3197
- s1 = peg$c54(s3);
3286
+ s1 = peg$c52(s3);
3198
3287
  s0 = s1;
3199
3288
  } else {
3200
3289
  peg$currPos = s0;
@@ -3225,13 +3314,13 @@ function peg$parse(input, options) {
3225
3314
  s0 = peg$currPos;
3226
3315
 
3227
3316
  if (input.charCodeAt(peg$currPos) === 91) {
3228
- s1 = peg$c35;
3317
+ s1 = peg$c33;
3229
3318
  peg$currPos++;
3230
3319
  } else {
3231
3320
  s1 = peg$FAILED;
3232
3321
 
3233
3322
  if (peg$silentFails === 0) {
3234
- peg$fail(peg$c36);
3323
+ peg$fail(peg$c34);
3235
3324
  }
3236
3325
  }
3237
3326
 
@@ -3281,19 +3370,19 @@ function peg$parse(input, options) {
3281
3370
 
3282
3371
  if (s3 !== peg$FAILED) {
3283
3372
  if (input.charCodeAt(peg$currPos) === 93) {
3284
- s4 = peg$c37;
3373
+ s4 = peg$c35;
3285
3374
  peg$currPos++;
3286
3375
  } else {
3287
3376
  s4 = peg$FAILED;
3288
3377
 
3289
3378
  if (peg$silentFails === 0) {
3290
- peg$fail(peg$c38);
3379
+ peg$fail(peg$c36);
3291
3380
  }
3292
3381
  }
3293
3382
 
3294
3383
  if (s4 !== peg$FAILED) {
3295
3384
  peg$savedPos = s0;
3296
- s1 = peg$c55(s2, s3);
3385
+ s1 = peg$c53(s2, s3);
3297
3386
  s0 = s1;
3298
3387
  } else {
3299
3388
  peg$currPos = s0;
@@ -3320,13 +3409,13 @@ function peg$parse(input, options) {
3320
3409
  s0 = peg$currPos;
3321
3410
 
3322
3411
  if (input.charCodeAt(peg$currPos) === 91) {
3323
- s1 = peg$c35;
3412
+ s1 = peg$c33;
3324
3413
  peg$currPos++;
3325
3414
  } else {
3326
3415
  s1 = peg$FAILED;
3327
3416
 
3328
3417
  if (peg$silentFails === 0) {
3329
- peg$fail(peg$c36);
3418
+ peg$fail(peg$c34);
3330
3419
  }
3331
3420
  }
3332
3421
 
@@ -3376,19 +3465,19 @@ function peg$parse(input, options) {
3376
3465
 
3377
3466
  if (s3 !== peg$FAILED) {
3378
3467
  if (input.charCodeAt(peg$currPos) === 93) {
3379
- s4 = peg$c37;
3468
+ s4 = peg$c35;
3380
3469
  peg$currPos++;
3381
3470
  } else {
3382
3471
  s4 = peg$FAILED;
3383
3472
 
3384
3473
  if (peg$silentFails === 0) {
3385
- peg$fail(peg$c38);
3474
+ peg$fail(peg$c36);
3386
3475
  }
3387
3476
  }
3388
3477
 
3389
3478
  if (s4 !== peg$FAILED) {
3390
3479
  peg$savedPos = s0;
3391
- s1 = peg$c56(s2, s3);
3480
+ s1 = peg$c54(s2, s3);
3392
3481
  s0 = s1;
3393
3482
  } else {
3394
3483
  peg$currPos = s0;
@@ -3423,7 +3512,7 @@ function peg$parse(input, options) {
3423
3512
 
3424
3513
  if (s3 !== peg$FAILED) {
3425
3514
  peg$savedPos = s0;
3426
- s1 = peg$c57(s2);
3515
+ s1 = peg$c55(s2);
3427
3516
  s0 = s1;
3428
3517
  } else {
3429
3518
  peg$currPos = s0;
@@ -3450,7 +3539,7 @@ function peg$parse(input, options) {
3450
3539
 
3451
3540
  if (s3 !== peg$FAILED) {
3452
3541
  peg$savedPos = s0;
3453
- s1 = peg$c58(s2);
3542
+ s1 = peg$c56(s2);
3454
3543
  s0 = s1;
3455
3544
  } else {
3456
3545
  peg$currPos = s0;
@@ -3475,14 +3564,14 @@ function peg$parse(input, options) {
3475
3564
  s1 = peg$parse_();
3476
3565
 
3477
3566
  if (s1 !== peg$FAILED) {
3478
- if (input.substr(peg$currPos, 8).toLowerCase() === peg$c59) {
3567
+ if (input.substr(peg$currPos, 8).toLowerCase() === peg$c57) {
3479
3568
  s2 = input.substr(peg$currPos, 8);
3480
3569
  peg$currPos += 8;
3481
3570
  } else {
3482
3571
  s2 = peg$FAILED;
3483
3572
 
3484
3573
  if (peg$silentFails === 0) {
3485
- peg$fail(peg$c60);
3574
+ peg$fail(peg$c58);
3486
3575
  }
3487
3576
  }
3488
3577
 
@@ -3491,7 +3580,7 @@ function peg$parse(input, options) {
3491
3580
 
3492
3581
  if (s3 !== peg$FAILED) {
3493
3582
  peg$savedPos = s0;
3494
- s1 = peg$c61(s2);
3583
+ s1 = peg$c59(s2);
3495
3584
  s0 = s1;
3496
3585
  } else {
3497
3586
  peg$currPos = s0;
@@ -3511,14 +3600,14 @@ function peg$parse(input, options) {
3511
3600
  s1 = peg$parse_();
3512
3601
 
3513
3602
  if (s1 !== peg$FAILED) {
3514
- if (input.substr(peg$currPos, 4).toLowerCase() === peg$c62) {
3603
+ if (input.substr(peg$currPos, 4).toLowerCase() === peg$c60) {
3515
3604
  s2 = input.substr(peg$currPos, 4);
3516
3605
  peg$currPos += 4;
3517
3606
  } else {
3518
3607
  s2 = peg$FAILED;
3519
3608
 
3520
3609
  if (peg$silentFails === 0) {
3521
- peg$fail(peg$c63);
3610
+ peg$fail(peg$c61);
3522
3611
  }
3523
3612
  }
3524
3613
 
@@ -3527,7 +3616,7 @@ function peg$parse(input, options) {
3527
3616
 
3528
3617
  if (s3 !== peg$FAILED) {
3529
3618
  peg$savedPos = s0;
3530
- s1 = peg$c61(s2);
3619
+ s1 = peg$c59(s2);
3531
3620
  s0 = s1;
3532
3621
  } else {
3533
3622
  peg$currPos = s0;
@@ -3547,14 +3636,14 @@ function peg$parse(input, options) {
3547
3636
  s1 = peg$parse_();
3548
3637
 
3549
3638
  if (s1 !== peg$FAILED) {
3550
- if (input.substr(peg$currPos, 11).toLowerCase() === peg$c64) {
3639
+ if (input.substr(peg$currPos, 11).toLowerCase() === peg$c62) {
3551
3640
  s2 = input.substr(peg$currPos, 11);
3552
3641
  peg$currPos += 11;
3553
3642
  } else {
3554
3643
  s2 = peg$FAILED;
3555
3644
 
3556
3645
  if (peg$silentFails === 0) {
3557
- peg$fail(peg$c65);
3646
+ peg$fail(peg$c63);
3558
3647
  }
3559
3648
  }
3560
3649
 
@@ -3563,7 +3652,7 @@ function peg$parse(input, options) {
3563
3652
 
3564
3653
  if (s3 !== peg$FAILED) {
3565
3654
  peg$savedPos = s0;
3566
- s1 = peg$c61(s2);
3655
+ s1 = peg$c59(s2);
3567
3656
  s0 = s1;
3568
3657
  } else {
3569
3658
  peg$currPos = s0;
@@ -3583,14 +3672,14 @@ function peg$parse(input, options) {
3583
3672
  s1 = peg$parse_();
3584
3673
 
3585
3674
  if (s1 !== peg$FAILED) {
3586
- if (input.substr(peg$currPos, 2).toLowerCase() === peg$c66) {
3675
+ if (input.substr(peg$currPos, 2).toLowerCase() === peg$c64) {
3587
3676
  s2 = input.substr(peg$currPos, 2);
3588
3677
  peg$currPos += 2;
3589
3678
  } else {
3590
3679
  s2 = peg$FAILED;
3591
3680
 
3592
3681
  if (peg$silentFails === 0) {
3593
- peg$fail(peg$c67);
3682
+ peg$fail(peg$c65);
3594
3683
  }
3595
3684
  }
3596
3685
 
@@ -3599,7 +3688,7 @@ function peg$parse(input, options) {
3599
3688
 
3600
3689
  if (s3 !== peg$FAILED) {
3601
3690
  peg$savedPos = s0;
3602
- s1 = peg$c61(s2);
3691
+ s1 = peg$c59(s2);
3603
3692
  s0 = s1;
3604
3693
  } else {
3605
3694
  peg$currPos = s0;
@@ -3619,14 +3708,14 @@ function peg$parse(input, options) {
3619
3708
  s1 = peg$parse_();
3620
3709
 
3621
3710
  if (s1 !== peg$FAILED) {
3622
- if (input.substr(peg$currPos, 6).toLowerCase() === peg$c68) {
3711
+ if (input.substr(peg$currPos, 6).toLowerCase() === peg$c66) {
3623
3712
  s2 = input.substr(peg$currPos, 6);
3624
3713
  peg$currPos += 6;
3625
3714
  } else {
3626
3715
  s2 = peg$FAILED;
3627
3716
 
3628
3717
  if (peg$silentFails === 0) {
3629
- peg$fail(peg$c69);
3718
+ peg$fail(peg$c67);
3630
3719
  }
3631
3720
  }
3632
3721
 
@@ -3635,7 +3724,7 @@ function peg$parse(input, options) {
3635
3724
 
3636
3725
  if (s3 !== peg$FAILED) {
3637
3726
  peg$savedPos = s0;
3638
- s1 = peg$c61(s2);
3727
+ s1 = peg$c59(s2);
3639
3728
  s0 = s1;
3640
3729
  } else {
3641
3730
  peg$currPos = s0;
@@ -3655,14 +3744,14 @@ function peg$parse(input, options) {
3655
3744
  s1 = peg$parse_();
3656
3745
 
3657
3746
  if (s1 !== peg$FAILED) {
3658
- if (input.substr(peg$currPos, 9) === peg$c70) {
3659
- s2 = peg$c70;
3747
+ if (input.substr(peg$currPos, 9) === peg$c68) {
3748
+ s2 = peg$c68;
3660
3749
  peg$currPos += 9;
3661
3750
  } else {
3662
3751
  s2 = peg$FAILED;
3663
3752
 
3664
3753
  if (peg$silentFails === 0) {
3665
- peg$fail(peg$c71);
3754
+ peg$fail(peg$c69);
3666
3755
  }
3667
3756
  }
3668
3757
 
@@ -3671,7 +3760,7 @@ function peg$parse(input, options) {
3671
3760
 
3672
3761
  if (s3 !== peg$FAILED) {
3673
3762
  peg$savedPos = s0;
3674
- s1 = peg$c61(s2);
3763
+ s1 = peg$c59(s2);
3675
3764
  s0 = s1;
3676
3765
  } else {
3677
3766
  peg$currPos = s0;
@@ -3698,7 +3787,7 @@ function peg$parse(input, options) {
3698
3787
 
3699
3788
  if (s3 !== peg$FAILED) {
3700
3789
  peg$savedPos = s0;
3701
- s1 = peg$c57(s2);
3790
+ s1 = peg$c55(s2);
3702
3791
  s0 = s1;
3703
3792
  } else {
3704
3793
  peg$currPos = s0;
@@ -3721,9 +3810,16 @@ function peg$parse(input, options) {
3721
3810
  s2 = peg$parseRefInline();
3722
3811
 
3723
3812
  if (s2 !== peg$FAILED) {
3724
- peg$savedPos = s0;
3725
- s1 = peg$c72(s2);
3726
- s0 = s1;
3813
+ s3 = peg$parse_();
3814
+
3815
+ if (s3 !== peg$FAILED) {
3816
+ peg$savedPos = s0;
3817
+ s1 = peg$c70(s2);
3818
+ s0 = s1;
3819
+ } else {
3820
+ peg$currPos = s0;
3821
+ s0 = peg$FAILED;
3822
+ }
3727
3823
  } else {
3728
3824
  peg$currPos = s0;
3729
3825
  s0 = peg$FAILED;
@@ -3745,7 +3841,7 @@ function peg$parse(input, options) {
3745
3841
 
3746
3842
  if (s3 !== peg$FAILED) {
3747
3843
  peg$savedPos = s0;
3748
- s1 = peg$c73(s2);
3844
+ s1 = peg$c71(s2);
3749
3845
  s0 = s1;
3750
3846
  } else {
3751
3847
  peg$currPos = s0;
@@ -3811,7 +3907,7 @@ function peg$parse(input, options) {
3811
3907
 
3812
3908
  if (s6 !== peg$FAILED) {
3813
3909
  peg$savedPos = s0;
3814
- s1 = peg$c74(s5);
3910
+ s1 = peg$c72(s5);
3815
3911
  s0 = s1;
3816
3912
  } else {
3817
3913
  peg$currPos = s0;
@@ -3864,7 +3960,7 @@ function peg$parse(input, options) {
3864
3960
 
3865
3961
  if (s3 !== peg$FAILED) {
3866
3962
  peg$savedPos = s0;
3867
- s1 = peg$c75(s2);
3963
+ s1 = peg$c73(s2);
3868
3964
  s0 = s1;
3869
3965
  } else {
3870
3966
  peg$currPos = s0;
@@ -3899,7 +3995,7 @@ function peg$parse(input, options) {
3899
3995
 
3900
3996
  if (s3 !== peg$FAILED) {
3901
3997
  peg$savedPos = s0;
3902
- s1 = peg$c76(s2);
3998
+ s1 = peg$c74(s2);
3903
3999
  s0 = s1;
3904
4000
  } else {
3905
4001
  peg$currPos = s0;
@@ -3943,7 +4039,7 @@ function peg$parse(input, options) {
3943
4039
 
3944
4040
  if (s4 !== peg$FAILED) {
3945
4041
  peg$savedPos = s0;
3946
- s1 = peg$c77(s2, s4);
4042
+ s1 = peg$c75(s2, s4);
3947
4043
  s0 = s1;
3948
4044
  } else {
3949
4045
  peg$currPos = s0;
@@ -3991,7 +4087,7 @@ function peg$parse(input, options) {
3991
4087
 
3992
4088
  if (s4 !== peg$FAILED) {
3993
4089
  peg$savedPos = s0;
3994
- s1 = peg$c78(s2, s4);
4090
+ s1 = peg$c76(s2, s4);
3995
4091
  s0 = s1;
3996
4092
  } else {
3997
4093
  peg$currPos = s0;
@@ -4029,7 +4125,7 @@ function peg$parse(input, options) {
4029
4125
 
4030
4126
  if (s2 !== peg$FAILED) {
4031
4127
  peg$savedPos = s0;
4032
- s1 = peg$c79(s1);
4128
+ s1 = peg$c77(s1);
4033
4129
  s0 = s1;
4034
4130
  } else {
4035
4131
  peg$currPos = s0;
@@ -4052,60 +4148,60 @@ function peg$parse(input, options) {
4052
4148
  s0 = peg$currPos;
4053
4149
 
4054
4150
  if (input.charCodeAt(peg$currPos) === 96) {
4055
- s1 = peg$c80;
4151
+ s1 = peg$c78;
4056
4152
  peg$currPos++;
4057
4153
  } else {
4058
4154
  s1 = peg$FAILED;
4059
4155
 
4060
4156
  if (peg$silentFails === 0) {
4061
- peg$fail(peg$c81);
4157
+ peg$fail(peg$c79);
4062
4158
  }
4063
4159
  }
4064
4160
 
4065
4161
  if (s1 !== peg$FAILED) {
4066
4162
  s2 = [];
4067
4163
 
4068
- if (peg$c82.test(input.charAt(peg$currPos))) {
4164
+ if (peg$c80.test(input.charAt(peg$currPos))) {
4069
4165
  s3 = input.charAt(peg$currPos);
4070
4166
  peg$currPos++;
4071
4167
  } else {
4072
4168
  s3 = peg$FAILED;
4073
4169
 
4074
4170
  if (peg$silentFails === 0) {
4075
- peg$fail(peg$c83);
4171
+ peg$fail(peg$c81);
4076
4172
  }
4077
4173
  }
4078
4174
 
4079
4175
  while (s3 !== peg$FAILED) {
4080
4176
  s2.push(s3);
4081
4177
 
4082
- if (peg$c82.test(input.charAt(peg$currPos))) {
4178
+ if (peg$c80.test(input.charAt(peg$currPos))) {
4083
4179
  s3 = input.charAt(peg$currPos);
4084
4180
  peg$currPos++;
4085
4181
  } else {
4086
4182
  s3 = peg$FAILED;
4087
4183
 
4088
4184
  if (peg$silentFails === 0) {
4089
- peg$fail(peg$c83);
4185
+ peg$fail(peg$c81);
4090
4186
  }
4091
4187
  }
4092
4188
  }
4093
4189
 
4094
4190
  if (s2 !== peg$FAILED) {
4095
4191
  if (input.charCodeAt(peg$currPos) === 96) {
4096
- s3 = peg$c80;
4192
+ s3 = peg$c78;
4097
4193
  peg$currPos++;
4098
4194
  } else {
4099
4195
  s3 = peg$FAILED;
4100
4196
 
4101
4197
  if (peg$silentFails === 0) {
4102
- peg$fail(peg$c81);
4198
+ peg$fail(peg$c79);
4103
4199
  }
4104
4200
  }
4105
4201
 
4106
4202
  if (s3 !== peg$FAILED) {
4107
4203
  peg$savedPos = s0;
4108
- s1 = peg$c84(s2);
4204
+ s1 = peg$c82(s2);
4109
4205
  s0 = s1;
4110
4206
  } else {
4111
4207
  peg$currPos = s0;
@@ -4128,13 +4224,13 @@ function peg$parse(input, options) {
4128
4224
  s0 = peg$currPos;
4129
4225
 
4130
4226
  if (input.charCodeAt(peg$currPos) === 40) {
4131
- s1 = peg$c30;
4227
+ s1 = peg$c28;
4132
4228
  peg$currPos++;
4133
4229
  } else {
4134
4230
  s1 = peg$FAILED;
4135
4231
 
4136
4232
  if (peg$silentFails === 0) {
4137
- peg$fail(peg$c31);
4233
+ peg$fail(peg$c29);
4138
4234
  }
4139
4235
  }
4140
4236
 
@@ -4219,19 +4315,19 @@ function peg$parse(input, options) {
4219
4315
 
4220
4316
  if (s4 !== peg$FAILED) {
4221
4317
  if (input.charCodeAt(peg$currPos) === 41) {
4222
- s5 = peg$c32;
4318
+ s5 = peg$c30;
4223
4319
  peg$currPos++;
4224
4320
  } else {
4225
4321
  s5 = peg$FAILED;
4226
4322
 
4227
4323
  if (peg$silentFails === 0) {
4228
- peg$fail(peg$c33);
4324
+ peg$fail(peg$c31);
4229
4325
  }
4230
4326
  }
4231
4327
 
4232
4328
  if (s5 !== peg$FAILED) {
4233
4329
  peg$savedPos = s0;
4234
- s1 = peg$c85(s3, s4);
4330
+ s1 = peg$c83(s3, s4);
4235
4331
  s0 = s1;
4236
4332
  } else {
4237
4333
  peg$currPos = s0;
@@ -4262,13 +4358,13 @@ function peg$parse(input, options) {
4262
4358
  s0 = peg$currPos;
4263
4359
 
4264
4360
  if (input.charCodeAt(peg$currPos) === 91) {
4265
- s1 = peg$c35;
4361
+ s1 = peg$c33;
4266
4362
  peg$currPos++;
4267
4363
  } else {
4268
4364
  s1 = peg$FAILED;
4269
4365
 
4270
4366
  if (peg$silentFails === 0) {
4271
- peg$fail(peg$c36);
4367
+ peg$fail(peg$c34);
4272
4368
  }
4273
4369
  }
4274
4370
 
@@ -4295,19 +4391,19 @@ function peg$parse(input, options) {
4295
4391
 
4296
4392
  if (s4 !== peg$FAILED) {
4297
4393
  if (input.charCodeAt(peg$currPos) === 93) {
4298
- s5 = peg$c37;
4394
+ s5 = peg$c35;
4299
4395
  peg$currPos++;
4300
4396
  } else {
4301
4397
  s5 = peg$FAILED;
4302
4398
 
4303
4399
  if (peg$silentFails === 0) {
4304
- peg$fail(peg$c38);
4400
+ peg$fail(peg$c36);
4305
4401
  }
4306
4402
  }
4307
4403
 
4308
4404
  if (s5 !== peg$FAILED) {
4309
4405
  peg$savedPos = s0;
4310
- s1 = peg$c86();
4406
+ s1 = peg$c84();
4311
4407
  s0 = s1;
4312
4408
  } else {
4313
4409
  peg$currPos = s0;
@@ -4334,13 +4430,13 @@ function peg$parse(input, options) {
4334
4430
  s0 = peg$currPos;
4335
4431
 
4336
4432
  if (input.charCodeAt(peg$currPos) === 91) {
4337
- s1 = peg$c35;
4433
+ s1 = peg$c33;
4338
4434
  peg$currPos++;
4339
4435
  } else {
4340
4436
  s1 = peg$FAILED;
4341
4437
 
4342
4438
  if (peg$silentFails === 0) {
4343
- peg$fail(peg$c36);
4439
+ peg$fail(peg$c34);
4344
4440
  }
4345
4441
  }
4346
4442
 
@@ -4390,19 +4486,19 @@ function peg$parse(input, options) {
4390
4486
 
4391
4487
  if (s3 !== peg$FAILED) {
4392
4488
  if (input.charCodeAt(peg$currPos) === 93) {
4393
- s4 = peg$c37;
4489
+ s4 = peg$c35;
4394
4490
  peg$currPos++;
4395
4491
  } else {
4396
4492
  s4 = peg$FAILED;
4397
4493
 
4398
4494
  if (peg$silentFails === 0) {
4399
- peg$fail(peg$c38);
4495
+ peg$fail(peg$c36);
4400
4496
  }
4401
4497
  }
4402
4498
 
4403
4499
  if (s4 !== peg$FAILED) {
4404
4500
  peg$savedPos = s0;
4405
- s1 = peg$c87(s2, s3);
4501
+ s1 = peg$c85(s2, s3);
4406
4502
  s0 = s1;
4407
4503
  } else {
4408
4504
  peg$currPos = s0;
@@ -4431,14 +4527,14 @@ function peg$parse(input, options) {
4431
4527
  s1 = peg$parse_();
4432
4528
 
4433
4529
  if (s1 !== peg$FAILED) {
4434
- if (input.substr(peg$currPos, 6).toLowerCase() === peg$c68) {
4530
+ if (input.substr(peg$currPos, 6).toLowerCase() === peg$c66) {
4435
4531
  s2 = input.substr(peg$currPos, 6);
4436
4532
  peg$currPos += 6;
4437
4533
  } else {
4438
4534
  s2 = peg$FAILED;
4439
4535
 
4440
4536
  if (peg$silentFails === 0) {
4441
- peg$fail(peg$c69);
4537
+ peg$fail(peg$c67);
4442
4538
  }
4443
4539
  }
4444
4540
 
@@ -4447,7 +4543,7 @@ function peg$parse(input, options) {
4447
4543
 
4448
4544
  if (s3 !== peg$FAILED) {
4449
4545
  peg$savedPos = s0;
4450
- s1 = peg$c61(s2);
4546
+ s1 = peg$c59(s2);
4451
4547
  s0 = s1;
4452
4548
  } else {
4453
4549
  peg$currPos = s0;
@@ -4474,7 +4570,7 @@ function peg$parse(input, options) {
4474
4570
 
4475
4571
  if (s3 !== peg$FAILED) {
4476
4572
  peg$savedPos = s0;
4477
- s1 = peg$c88(s2);
4573
+ s1 = peg$c86(s2);
4478
4574
  s0 = s1;
4479
4575
  } else {
4480
4576
  peg$currPos = s0;
@@ -4501,7 +4597,7 @@ function peg$parse(input, options) {
4501
4597
 
4502
4598
  if (s3 !== peg$FAILED) {
4503
4599
  peg$savedPos = s0;
4504
- s1 = peg$c89(s2);
4600
+ s1 = peg$c87(s2);
4505
4601
  s0 = s1;
4506
4602
  } else {
4507
4603
  peg$currPos = s0;
@@ -4528,7 +4624,7 @@ function peg$parse(input, options) {
4528
4624
 
4529
4625
  if (s3 !== peg$FAILED) {
4530
4626
  peg$savedPos = s0;
4531
- s1 = peg$c57(s2);
4627
+ s1 = peg$c55(s2);
4532
4628
  s0 = s1;
4533
4629
  } else {
4534
4630
  peg$currPos = s0;
@@ -4553,14 +4649,14 @@ function peg$parse(input, options) {
4553
4649
  var s0, s1, s2, s3;
4554
4650
  s0 = peg$currPos;
4555
4651
 
4556
- if (input.substr(peg$currPos, 5).toLowerCase() === peg$c90) {
4652
+ if (input.substr(peg$currPos, 5).toLowerCase() === peg$c88) {
4557
4653
  s1 = input.substr(peg$currPos, 5);
4558
4654
  peg$currPos += 5;
4559
4655
  } else {
4560
4656
  s1 = peg$FAILED;
4561
4657
 
4562
4658
  if (peg$silentFails === 0) {
4563
- peg$fail(peg$c91);
4659
+ peg$fail(peg$c89);
4564
4660
  }
4565
4661
  }
4566
4662
 
@@ -4572,7 +4668,7 @@ function peg$parse(input, options) {
4572
4668
 
4573
4669
  if (s3 !== peg$FAILED) {
4574
4670
  peg$savedPos = s0;
4575
- s1 = peg$c92(s3);
4671
+ s1 = peg$c90(s3);
4576
4672
  s0 = s1;
4577
4673
  } else {
4578
4674
  peg$currPos = s0;
@@ -4597,7 +4693,7 @@ function peg$parse(input, options) {
4597
4693
 
4598
4694
  if (s1 !== peg$FAILED) {
4599
4695
  peg$savedPos = s0;
4600
- s1 = peg$c93(s1);
4696
+ s1 = peg$c91(s1);
4601
4697
  }
4602
4698
 
4603
4699
  s0 = s1;
@@ -4605,14 +4701,14 @@ function peg$parse(input, options) {
4605
4701
  if (s0 === peg$FAILED) {
4606
4702
  s0 = peg$currPos;
4607
4703
 
4608
- if (input.substr(peg$currPos, 4).toLowerCase() === peg$c94) {
4704
+ if (input.substr(peg$currPos, 4).toLowerCase() === peg$c92) {
4609
4705
  s1 = input.substr(peg$currPos, 4);
4610
4706
  peg$currPos += 4;
4611
4707
  } else {
4612
4708
  s1 = peg$FAILED;
4613
4709
 
4614
4710
  if (peg$silentFails === 0) {
4615
- peg$fail(peg$c95);
4711
+ peg$fail(peg$c93);
4616
4712
  }
4617
4713
  }
4618
4714
 
@@ -4654,7 +4750,7 @@ function peg$parse(input, options) {
4654
4750
 
4655
4751
  if (s7 !== peg$FAILED) {
4656
4752
  peg$savedPos = s0;
4657
- s1 = peg$c92(s5);
4753
+ s1 = peg$c90(s5);
4658
4754
  s0 = s1;
4659
4755
  } else {
4660
4756
  peg$currPos = s0;
@@ -4693,14 +4789,14 @@ function peg$parse(input, options) {
4693
4789
  var s0, s1, s2, s3;
4694
4790
  s0 = peg$currPos;
4695
4791
 
4696
- if (input.substr(peg$currPos, 5).toLowerCase() === peg$c96) {
4792
+ if (input.substr(peg$currPos, 5).toLowerCase() === peg$c94) {
4697
4793
  s1 = input.substr(peg$currPos, 5);
4698
4794
  peg$currPos += 5;
4699
4795
  } else {
4700
4796
  s1 = peg$FAILED;
4701
4797
 
4702
4798
  if (peg$silentFails === 0) {
4703
- peg$fail(peg$c97);
4799
+ peg$fail(peg$c95);
4704
4800
  }
4705
4801
  }
4706
4802
 
@@ -4712,7 +4808,7 @@ function peg$parse(input, options) {
4712
4808
 
4713
4809
  if (s3 !== peg$FAILED) {
4714
4810
  peg$savedPos = s0;
4715
- s1 = peg$c92(s3);
4811
+ s1 = peg$c90(s3);
4716
4812
  s0 = s1;
4717
4813
  } else {
4718
4814
  peg$currPos = s0;
@@ -4734,14 +4830,14 @@ function peg$parse(input, options) {
4734
4830
  var s0, s1, s2, s3;
4735
4831
  s0 = peg$currPos;
4736
4832
 
4737
- if (input.substr(peg$currPos, 5).toLowerCase() === peg$c98) {
4833
+ if (input.substr(peg$currPos, 5).toLowerCase() === peg$c96) {
4738
4834
  s1 = input.substr(peg$currPos, 5);
4739
4835
  peg$currPos += 5;
4740
4836
  } else {
4741
4837
  s1 = peg$FAILED;
4742
4838
 
4743
4839
  if (peg$silentFails === 0) {
4744
- peg$fail(peg$c99);
4840
+ peg$fail(peg$c97);
4745
4841
  }
4746
4842
  }
4747
4843
 
@@ -4757,7 +4853,7 @@ function peg$parse(input, options) {
4757
4853
 
4758
4854
  if (s3 !== peg$FAILED) {
4759
4855
  peg$savedPos = s0;
4760
- s1 = peg$c44(s3);
4856
+ s1 = peg$c42(s3);
4761
4857
  s0 = s1;
4762
4858
  } else {
4763
4859
  peg$currPos = s0;
@@ -4776,17 +4872,17 @@ function peg$parse(input, options) {
4776
4872
  }
4777
4873
 
4778
4874
  function peg$parseRefInline() {
4779
- var s0, s1, s2, s3, s4, s5, s6, s7;
4875
+ var s0, s1, s2, s3, s4, s5;
4780
4876
  s0 = peg$currPos;
4781
4877
 
4782
- if (input.substr(peg$currPos, 4) === peg$c100) {
4783
- s1 = peg$c100;
4878
+ if (input.substr(peg$currPos, 4) === peg$c98) {
4879
+ s1 = peg$c98;
4784
4880
  peg$currPos += 4;
4785
4881
  } else {
4786
4882
  s1 = peg$FAILED;
4787
4883
 
4788
4884
  if (peg$silentFails === 0) {
4789
- peg$fail(peg$c101);
4885
+ peg$fail(peg$c99);
4790
4886
  }
4791
4887
  }
4792
4888
 
@@ -4816,35 +4912,12 @@ function peg$parse(input, options) {
4816
4912
  }
4817
4913
 
4818
4914
  if (s4 !== peg$FAILED) {
4819
- s5 = peg$parsename();
4915
+ s5 = peg$parseinline_field_identifier();
4820
4916
 
4821
4917
  if (s5 !== peg$FAILED) {
4822
- if (input.charCodeAt(peg$currPos) === 46) {
4823
- s6 = peg$c25;
4824
- peg$currPos++;
4825
- } else {
4826
- s6 = peg$FAILED;
4827
-
4828
- if (peg$silentFails === 0) {
4829
- peg$fail(peg$c26);
4830
- }
4831
- }
4832
-
4833
- if (s6 !== peg$FAILED) {
4834
- s7 = peg$parsename();
4835
-
4836
- if (s7 !== peg$FAILED) {
4837
- peg$savedPos = s0;
4838
- s1 = peg$c102(s3, s5, s7);
4839
- s0 = s1;
4840
- } else {
4841
- peg$currPos = s0;
4842
- s0 = peg$FAILED;
4843
- }
4844
- } else {
4845
- peg$currPos = s0;
4846
- s0 = peg$FAILED;
4847
- }
4918
+ peg$savedPos = s0;
4919
+ s1 = peg$c100(s3, s5);
4920
+ s0 = s1;
4848
4921
  } else {
4849
4922
  peg$currPos = s0;
4850
4923
  s0 = peg$FAILED;
@@ -4873,14 +4946,14 @@ function peg$parse(input, options) {
4873
4946
  var s0, s1, s2, s3;
4874
4947
  s0 = peg$currPos;
4875
4948
 
4876
- if (input.substr(peg$currPos, 8).toLowerCase() === peg$c103) {
4949
+ if (input.substr(peg$currPos, 8).toLowerCase() === peg$c101) {
4877
4950
  s1 = input.substr(peg$currPos, 8);
4878
4951
  peg$currPos += 8;
4879
4952
  } else {
4880
4953
  s1 = peg$FAILED;
4881
4954
 
4882
4955
  if (peg$silentFails === 0) {
4883
- peg$fail(peg$c104);
4956
+ peg$fail(peg$c102);
4884
4957
  }
4885
4958
  }
4886
4959
 
@@ -4892,7 +4965,7 @@ function peg$parse(input, options) {
4892
4965
 
4893
4966
  if (s3 !== peg$FAILED) {
4894
4967
  peg$savedPos = s0;
4895
- s1 = peg$c105(s3);
4968
+ s1 = peg$c103(s3);
4896
4969
  s0 = s1;
4897
4970
  } else {
4898
4971
  peg$currPos = s0;
@@ -4945,14 +5018,14 @@ function peg$parse(input, options) {
4945
5018
  }
4946
5019
 
4947
5020
  if (s1 !== peg$FAILED) {
4948
- if (input.substr(peg$currPos, 2) === peg$c106) {
4949
- s2 = peg$c106;
5021
+ if (input.substr(peg$currPos, 2) === peg$c104) {
5022
+ s2 = peg$c104;
4950
5023
  peg$currPos += 2;
4951
5024
  } else {
4952
5025
  s2 = peg$FAILED;
4953
5026
 
4954
5027
  if (peg$silentFails === 0) {
4955
- peg$fail(peg$c107);
5028
+ peg$fail(peg$c105);
4956
5029
  }
4957
5030
  }
4958
5031
 
@@ -4974,7 +5047,7 @@ function peg$parse(input, options) {
4974
5047
 
4975
5048
  if (s4 !== peg$FAILED) {
4976
5049
  peg$savedPos = s0;
4977
- s1 = peg$c108(s4);
5050
+ s1 = peg$c106(s4);
4978
5051
  s0 = s1;
4979
5052
  } else {
4980
5053
  peg$currPos = s0;
@@ -5030,7 +5103,7 @@ function peg$parse(input, options) {
5030
5103
 
5031
5104
  if (s7 !== peg$FAILED) {
5032
5105
  peg$savedPos = s0;
5033
- s1 = peg$c109(s5, s6);
5106
+ s1 = peg$c107(s5, s6);
5034
5107
  s0 = s1;
5035
5108
  } else {
5036
5109
  peg$currPos = s0;
@@ -5171,14 +5244,14 @@ function peg$parse(input, options) {
5171
5244
  var s0, s1;
5172
5245
  peg$silentFails++;
5173
5246
 
5174
- if (input.substr(peg$currPos, 7).toLowerCase() === peg$c111) {
5247
+ if (input.substr(peg$currPos, 7).toLowerCase() === peg$c109) {
5175
5248
  s0 = input.substr(peg$currPos, 7);
5176
5249
  peg$currPos += 7;
5177
5250
  } else {
5178
5251
  s0 = peg$FAILED;
5179
5252
 
5180
5253
  if (peg$silentFails === 0) {
5181
- peg$fail(peg$c112);
5254
+ peg$fail(peg$c110);
5182
5255
  }
5183
5256
  }
5184
5257
 
@@ -5188,7 +5261,7 @@ function peg$parse(input, options) {
5188
5261
  s1 = peg$FAILED;
5189
5262
 
5190
5263
  if (peg$silentFails === 0) {
5191
- peg$fail(peg$c110);
5264
+ peg$fail(peg$c108);
5192
5265
  }
5193
5266
  }
5194
5267
 
@@ -5199,14 +5272,14 @@ function peg$parse(input, options) {
5199
5272
  var s0, s1;
5200
5273
  peg$silentFails++;
5201
5274
 
5202
- if (input.substr(peg$currPos, 5).toLowerCase() === peg$c114) {
5275
+ if (input.substr(peg$currPos, 5).toLowerCase() === peg$c112) {
5203
5276
  s0 = input.substr(peg$currPos, 5);
5204
5277
  peg$currPos += 5;
5205
5278
  } else {
5206
5279
  s0 = peg$FAILED;
5207
5280
 
5208
5281
  if (peg$silentFails === 0) {
5209
- peg$fail(peg$c115);
5282
+ peg$fail(peg$c113);
5210
5283
  }
5211
5284
  }
5212
5285
 
@@ -5216,7 +5289,7 @@ function peg$parse(input, options) {
5216
5289
  s1 = peg$FAILED;
5217
5290
 
5218
5291
  if (peg$silentFails === 0) {
5219
- peg$fail(peg$c113);
5292
+ peg$fail(peg$c111);
5220
5293
  }
5221
5294
  }
5222
5295
 
@@ -5226,14 +5299,14 @@ function peg$parse(input, options) {
5226
5299
  function peg$parseas() {
5227
5300
  var s0;
5228
5301
 
5229
- if (input.substr(peg$currPos, 2).toLowerCase() === peg$c106) {
5302
+ if (input.substr(peg$currPos, 2).toLowerCase() === peg$c104) {
5230
5303
  s0 = input.substr(peg$currPos, 2);
5231
5304
  peg$currPos += 2;
5232
5305
  } else {
5233
5306
  s0 = peg$FAILED;
5234
5307
 
5235
5308
  if (peg$silentFails === 0) {
5236
- peg$fail(peg$c116);
5309
+ peg$fail(peg$c114);
5237
5310
  }
5238
5311
  }
5239
5312
 
@@ -5244,14 +5317,14 @@ function peg$parse(input, options) {
5244
5317
  var s0, s1;
5245
5318
  peg$silentFails++;
5246
5319
 
5247
- if (input.substr(peg$currPos, 3).toLowerCase() === peg$c118) {
5320
+ if (input.substr(peg$currPos, 3).toLowerCase() === peg$c116) {
5248
5321
  s0 = input.substr(peg$currPos, 3);
5249
5322
  peg$currPos += 3;
5250
5323
  } else {
5251
5324
  s0 = peg$FAILED;
5252
5325
 
5253
5326
  if (peg$silentFails === 0) {
5254
- peg$fail(peg$c119);
5327
+ peg$fail(peg$c117);
5255
5328
  }
5256
5329
  }
5257
5330
 
@@ -5261,7 +5334,7 @@ function peg$parse(input, options) {
5261
5334
  s1 = peg$FAILED;
5262
5335
 
5263
5336
  if (peg$silentFails === 0) {
5264
- peg$fail(peg$c117);
5337
+ peg$fail(peg$c115);
5265
5338
  }
5266
5339
  }
5267
5340
 
@@ -5273,20 +5346,20 @@ function peg$parse(input, options) {
5273
5346
  peg$silentFails++;
5274
5347
  s0 = peg$currPos;
5275
5348
 
5276
- if (input.substr(peg$currPos, 6).toLowerCase() === peg$c68) {
5349
+ if (input.substr(peg$currPos, 6).toLowerCase() === peg$c66) {
5277
5350
  s1 = input.substr(peg$currPos, 6);
5278
5351
  peg$currPos += 6;
5279
5352
  } else {
5280
5353
  s1 = peg$FAILED;
5281
5354
 
5282
5355
  if (peg$silentFails === 0) {
5283
- peg$fail(peg$c69);
5356
+ peg$fail(peg$c67);
5284
5357
  }
5285
5358
  }
5286
5359
 
5287
5360
  if (s1 !== peg$FAILED) {
5288
5361
  peg$savedPos = s0;
5289
- s1 = peg$c121();
5362
+ s1 = peg$c119();
5290
5363
  }
5291
5364
 
5292
5365
  s0 = s1;
@@ -5296,7 +5369,7 @@ function peg$parse(input, options) {
5296
5369
  s1 = peg$FAILED;
5297
5370
 
5298
5371
  if (peg$silentFails === 0) {
5299
- peg$fail(peg$c120);
5372
+ peg$fail(peg$c118);
5300
5373
  }
5301
5374
  }
5302
5375
 
@@ -5308,20 +5381,20 @@ function peg$parse(input, options) {
5308
5381
  peg$silentFails++;
5309
5382
  s0 = peg$currPos;
5310
5383
 
5311
- if (input.substr(peg$currPos, 2).toLowerCase() === peg$c66) {
5384
+ if (input.substr(peg$currPos, 2).toLowerCase() === peg$c64) {
5312
5385
  s1 = input.substr(peg$currPos, 2);
5313
5386
  peg$currPos += 2;
5314
5387
  } else {
5315
5388
  s1 = peg$FAILED;
5316
5389
 
5317
5390
  if (peg$silentFails === 0) {
5318
- peg$fail(peg$c67);
5391
+ peg$fail(peg$c65);
5319
5392
  }
5320
5393
  }
5321
5394
 
5322
5395
  if (s1 !== peg$FAILED) {
5323
5396
  peg$savedPos = s0;
5324
- s1 = peg$c123();
5397
+ s1 = peg$c121();
5325
5398
  }
5326
5399
 
5327
5400
  s0 = s1;
@@ -5331,7 +5404,7 @@ function peg$parse(input, options) {
5331
5404
  s1 = peg$FAILED;
5332
5405
 
5333
5406
  if (peg$silentFails === 0) {
5334
- peg$fail(peg$c122);
5407
+ peg$fail(peg$c120);
5335
5408
  }
5336
5409
  }
5337
5410
 
@@ -5342,14 +5415,14 @@ function peg$parse(input, options) {
5342
5415
  var s0, s1;
5343
5416
  peg$silentFails++;
5344
5417
 
5345
- if (input.substr(peg$currPos, 7).toLowerCase() === peg$c125) {
5418
+ if (input.substr(peg$currPos, 7).toLowerCase() === peg$c123) {
5346
5419
  s0 = input.substr(peg$currPos, 7);
5347
5420
  peg$currPos += 7;
5348
5421
  } else {
5349
5422
  s0 = peg$FAILED;
5350
5423
 
5351
5424
  if (peg$silentFails === 0) {
5352
- peg$fail(peg$c126);
5425
+ peg$fail(peg$c124);
5353
5426
  }
5354
5427
  }
5355
5428
 
@@ -5359,7 +5432,7 @@ function peg$parse(input, options) {
5359
5432
  s1 = peg$FAILED;
5360
5433
 
5361
5434
  if (peg$silentFails === 0) {
5362
- peg$fail(peg$c124);
5435
+ peg$fail(peg$c122);
5363
5436
  }
5364
5437
  }
5365
5438
 
@@ -5370,14 +5443,14 @@ function peg$parse(input, options) {
5370
5443
  var s0, s1;
5371
5444
  peg$silentFails++;
5372
5445
 
5373
- if (input.substr(peg$currPos, 5).toLowerCase() === peg$c128) {
5446
+ if (input.substr(peg$currPos, 5).toLowerCase() === peg$c126) {
5374
5447
  s0 = input.substr(peg$currPos, 5);
5375
5448
  peg$currPos += 5;
5376
5449
  } else {
5377
5450
  s0 = peg$FAILED;
5378
5451
 
5379
5452
  if (peg$silentFails === 0) {
5380
- peg$fail(peg$c129);
5453
+ peg$fail(peg$c127);
5381
5454
  }
5382
5455
  }
5383
5456
 
@@ -5387,7 +5460,7 @@ function peg$parse(input, options) {
5387
5460
  s1 = peg$FAILED;
5388
5461
 
5389
5462
  if (peg$silentFails === 0) {
5390
- peg$fail(peg$c127);
5463
+ peg$fail(peg$c125);
5391
5464
  }
5392
5465
  }
5393
5466
 
@@ -5398,14 +5471,14 @@ function peg$parse(input, options) {
5398
5471
  var s0, s1;
5399
5472
  peg$silentFails++;
5400
5473
 
5401
- if (input.substr(peg$currPos, 4).toLowerCase() === peg$c131) {
5474
+ if (input.substr(peg$currPos, 4).toLowerCase() === peg$c129) {
5402
5475
  s0 = input.substr(peg$currPos, 4);
5403
5476
  peg$currPos += 4;
5404
5477
  } else {
5405
5478
  s0 = peg$FAILED;
5406
5479
 
5407
5480
  if (peg$silentFails === 0) {
5408
- peg$fail(peg$c132);
5481
+ peg$fail(peg$c130);
5409
5482
  }
5410
5483
  }
5411
5484
 
@@ -5415,7 +5488,7 @@ function peg$parse(input, options) {
5415
5488
  s1 = peg$FAILED;
5416
5489
 
5417
5490
  if (peg$silentFails === 0) {
5418
- peg$fail(peg$c130);
5491
+ peg$fail(peg$c128);
5419
5492
  }
5420
5493
  }
5421
5494
 
@@ -5426,14 +5499,14 @@ function peg$parse(input, options) {
5426
5499
  var s0, s1;
5427
5500
  peg$silentFails++;
5428
5501
 
5429
- if (input.substr(peg$currPos, 4).toLowerCase() === peg$c134) {
5502
+ if (input.substr(peg$currPos, 4).toLowerCase() === peg$c132) {
5430
5503
  s0 = input.substr(peg$currPos, 4);
5431
5504
  peg$currPos += 4;
5432
5505
  } else {
5433
5506
  s0 = peg$FAILED;
5434
5507
 
5435
5508
  if (peg$silentFails === 0) {
5436
- peg$fail(peg$c135);
5509
+ peg$fail(peg$c133);
5437
5510
  }
5438
5511
  }
5439
5512
 
@@ -5443,7 +5516,7 @@ function peg$parse(input, options) {
5443
5516
  s1 = peg$FAILED;
5444
5517
 
5445
5518
  if (peg$silentFails === 0) {
5446
- peg$fail(peg$c133);
5519
+ peg$fail(peg$c131);
5447
5520
  }
5448
5521
  }
5449
5522
 
@@ -5453,14 +5526,14 @@ function peg$parse(input, options) {
5453
5526
  function peg$parseheader_color() {
5454
5527
  var s0;
5455
5528
 
5456
- if (input.substr(peg$currPos, 11).toLowerCase() === peg$c136) {
5529
+ if (input.substr(peg$currPos, 11).toLowerCase() === peg$c134) {
5457
5530
  s0 = input.substr(peg$currPos, 11);
5458
5531
  peg$currPos += 11;
5459
5532
  } else {
5460
5533
  s0 = peg$FAILED;
5461
5534
 
5462
5535
  if (peg$silentFails === 0) {
5463
- peg$fail(peg$c137);
5536
+ peg$fail(peg$c135);
5464
5537
  }
5465
5538
  }
5466
5539
 
@@ -5471,14 +5544,14 @@ function peg$parse(input, options) {
5471
5544
  var s0, s1;
5472
5545
  peg$silentFails++;
5473
5546
 
5474
- if (input.substr(peg$currPos, 10).toLowerCase() === peg$c139) {
5547
+ if (input.substr(peg$currPos, 10).toLowerCase() === peg$c137) {
5475
5548
  s0 = input.substr(peg$currPos, 10);
5476
5549
  peg$currPos += 10;
5477
5550
  } else {
5478
5551
  s0 = peg$FAILED;
5479
5552
 
5480
5553
  if (peg$silentFails === 0) {
5481
- peg$fail(peg$c140);
5554
+ peg$fail(peg$c138);
5482
5555
  }
5483
5556
  }
5484
5557
 
@@ -5488,7 +5561,7 @@ function peg$parse(input, options) {
5488
5561
  s1 = peg$FAILED;
5489
5562
 
5490
5563
  if (peg$silentFails === 0) {
5491
- peg$fail(peg$c138);
5564
+ peg$fail(peg$c136);
5492
5565
  }
5493
5566
  }
5494
5567
 
@@ -5499,14 +5572,14 @@ function peg$parse(input, options) {
5499
5572
  var s0, s1;
5500
5573
  peg$silentFails++;
5501
5574
 
5502
- if (input.substr(peg$currPos, 9).toLowerCase() === peg$c142) {
5575
+ if (input.substr(peg$currPos, 9).toLowerCase() === peg$c140) {
5503
5576
  s0 = input.substr(peg$currPos, 9);
5504
5577
  peg$currPos += 9;
5505
5578
  } else {
5506
5579
  s0 = peg$FAILED;
5507
5580
 
5508
5581
  if (peg$silentFails === 0) {
5509
- peg$fail(peg$c143);
5582
+ peg$fail(peg$c141);
5510
5583
  }
5511
5584
  }
5512
5585
 
@@ -5516,7 +5589,7 @@ function peg$parse(input, options) {
5516
5589
  s1 = peg$FAILED;
5517
5590
 
5518
5591
  if (peg$silentFails === 0) {
5519
- peg$fail(peg$c141);
5592
+ peg$fail(peg$c139);
5520
5593
  }
5521
5594
  }
5522
5595
 
@@ -5527,14 +5600,14 @@ function peg$parse(input, options) {
5527
5600
  var s0, s1;
5528
5601
  peg$silentFails++;
5529
5602
 
5530
- if (input.substr(peg$currPos, 8).toLowerCase() === peg$c145) {
5603
+ if (input.substr(peg$currPos, 8).toLowerCase() === peg$c143) {
5531
5604
  s0 = input.substr(peg$currPos, 8);
5532
5605
  peg$currPos += 8;
5533
5606
  } else {
5534
5607
  s0 = peg$FAILED;
5535
5608
 
5536
5609
  if (peg$silentFails === 0) {
5537
- peg$fail(peg$c146);
5610
+ peg$fail(peg$c144);
5538
5611
  }
5539
5612
  }
5540
5613
 
@@ -5544,7 +5617,7 @@ function peg$parse(input, options) {
5544
5617
  s1 = peg$FAILED;
5545
5618
 
5546
5619
  if (peg$silentFails === 0) {
5547
- peg$fail(peg$c144);
5620
+ peg$fail(peg$c142);
5548
5621
  }
5549
5622
  }
5550
5623
 
@@ -5555,14 +5628,14 @@ function peg$parse(input, options) {
5555
5628
  var s0, s1;
5556
5629
  peg$silentFails++;
5557
5630
 
5558
- if (input.substr(peg$currPos, 7).toLowerCase() === peg$c148) {
5631
+ if (input.substr(peg$currPos, 7).toLowerCase() === peg$c146) {
5559
5632
  s0 = input.substr(peg$currPos, 7);
5560
5633
  peg$currPos += 7;
5561
5634
  } else {
5562
5635
  s0 = peg$FAILED;
5563
5636
 
5564
5637
  if (peg$silentFails === 0) {
5565
- peg$fail(peg$c149);
5638
+ peg$fail(peg$c147);
5566
5639
  }
5567
5640
  }
5568
5641
 
@@ -5572,7 +5645,7 @@ function peg$parse(input, options) {
5572
5645
  s1 = peg$FAILED;
5573
5646
 
5574
5647
  if (peg$silentFails === 0) {
5575
- peg$fail(peg$c147);
5648
+ peg$fail(peg$c145);
5576
5649
  }
5577
5650
  }
5578
5651
 
@@ -5583,14 +5656,14 @@ function peg$parse(input, options) {
5583
5656
  var s0, s1;
5584
5657
  peg$silentFails++;
5585
5658
 
5586
- if (input.substr(peg$currPos, 8).toLowerCase() === peg$c151) {
5659
+ if (input.substr(peg$currPos, 8).toLowerCase() === peg$c149) {
5587
5660
  s0 = input.substr(peg$currPos, 8);
5588
5661
  peg$currPos += 8;
5589
5662
  } else {
5590
5663
  s0 = peg$FAILED;
5591
5664
 
5592
5665
  if (peg$silentFails === 0) {
5593
- peg$fail(peg$c152);
5666
+ peg$fail(peg$c150);
5594
5667
  }
5595
5668
  }
5596
5669
 
@@ -5600,7 +5673,7 @@ function peg$parse(input, options) {
5600
5673
  s1 = peg$FAILED;
5601
5674
 
5602
5675
  if (peg$silentFails === 0) {
5603
- peg$fail(peg$c150);
5676
+ peg$fail(peg$c148);
5604
5677
  }
5605
5678
  }
5606
5679
 
@@ -5611,14 +5684,14 @@ function peg$parse(input, options) {
5611
5684
  var s0, s1;
5612
5685
  peg$silentFails++;
5613
5686
 
5614
- if (input.substr(peg$currPos, 11).toLowerCase() === peg$c154) {
5687
+ if (input.substr(peg$currPos, 11).toLowerCase() === peg$c152) {
5615
5688
  s0 = input.substr(peg$currPos, 11);
5616
5689
  peg$currPos += 11;
5617
5690
  } else {
5618
5691
  s0 = peg$FAILED;
5619
5692
 
5620
5693
  if (peg$silentFails === 0) {
5621
- peg$fail(peg$c155);
5694
+ peg$fail(peg$c153);
5622
5695
  }
5623
5696
  }
5624
5697
 
@@ -5628,7 +5701,7 @@ function peg$parse(input, options) {
5628
5701
  s1 = peg$FAILED;
5629
5702
 
5630
5703
  if (peg$silentFails === 0) {
5631
- peg$fail(peg$c153);
5704
+ peg$fail(peg$c151);
5632
5705
  }
5633
5706
  }
5634
5707
 
@@ -5639,14 +5712,53 @@ function peg$parse(input, options) {
5639
5712
  var s0, s1;
5640
5713
  peg$silentFails++;
5641
5714
 
5642
- if (peg$c157.test(input.charAt(peg$currPos))) {
5643
- s0 = input.charAt(peg$currPos);
5644
- peg$currPos++;
5715
+ if (input.substr(peg$currPos, 2) === peg$c155) {
5716
+ s0 = peg$c155;
5717
+ peg$currPos += 2;
5645
5718
  } else {
5646
5719
  s0 = peg$FAILED;
5647
5720
 
5648
5721
  if (peg$silentFails === 0) {
5649
- peg$fail(peg$c158);
5722
+ peg$fail(peg$c156);
5723
+ }
5724
+ }
5725
+
5726
+ if (s0 === peg$FAILED) {
5727
+ if (input.charCodeAt(peg$currPos) === 62) {
5728
+ s0 = peg$c157;
5729
+ peg$currPos++;
5730
+ } else {
5731
+ s0 = peg$FAILED;
5732
+
5733
+ if (peg$silentFails === 0) {
5734
+ peg$fail(peg$c158);
5735
+ }
5736
+ }
5737
+
5738
+ if (s0 === peg$FAILED) {
5739
+ if (input.charCodeAt(peg$currPos) === 60) {
5740
+ s0 = peg$c159;
5741
+ peg$currPos++;
5742
+ } else {
5743
+ s0 = peg$FAILED;
5744
+
5745
+ if (peg$silentFails === 0) {
5746
+ peg$fail(peg$c160);
5747
+ }
5748
+ }
5749
+
5750
+ if (s0 === peg$FAILED) {
5751
+ if (input.charCodeAt(peg$currPos) === 45) {
5752
+ s0 = peg$c161;
5753
+ peg$currPos++;
5754
+ } else {
5755
+ s0 = peg$FAILED;
5756
+
5757
+ if (peg$silentFails === 0) {
5758
+ peg$fail(peg$c162);
5759
+ }
5760
+ }
5761
+ }
5650
5762
  }
5651
5763
  }
5652
5764
 
@@ -5656,7 +5768,7 @@ function peg$parse(input, options) {
5656
5768
  s1 = peg$FAILED;
5657
5769
 
5658
5770
  if (peg$silentFails === 0) {
5659
- peg$fail(peg$c156);
5771
+ peg$fail(peg$c154);
5660
5772
  }
5661
5773
  }
5662
5774
 
@@ -5681,7 +5793,7 @@ function peg$parse(input, options) {
5681
5793
 
5682
5794
  if (s1 !== peg$FAILED) {
5683
5795
  peg$savedPos = s0;
5684
- s1 = peg$c160(s1);
5796
+ s1 = peg$c164(s1);
5685
5797
  }
5686
5798
 
5687
5799
  s0 = s1;
@@ -5693,14 +5805,14 @@ function peg$parse(input, options) {
5693
5805
  if (s1 !== peg$FAILED) {
5694
5806
  s2 = [];
5695
5807
 
5696
- if (peg$c161.test(input.charAt(peg$currPos))) {
5808
+ if (peg$c165.test(input.charAt(peg$currPos))) {
5697
5809
  s3 = input.charAt(peg$currPos);
5698
5810
  peg$currPos++;
5699
5811
  } else {
5700
5812
  s3 = peg$FAILED;
5701
5813
 
5702
5814
  if (peg$silentFails === 0) {
5703
- peg$fail(peg$c162);
5815
+ peg$fail(peg$c166);
5704
5816
  }
5705
5817
  }
5706
5818
 
@@ -5708,14 +5820,14 @@ function peg$parse(input, options) {
5708
5820
  while (s3 !== peg$FAILED) {
5709
5821
  s2.push(s3);
5710
5822
 
5711
- if (peg$c161.test(input.charAt(peg$currPos))) {
5823
+ if (peg$c165.test(input.charAt(peg$currPos))) {
5712
5824
  s3 = input.charAt(peg$currPos);
5713
5825
  peg$currPos++;
5714
5826
  } else {
5715
5827
  s3 = peg$FAILED;
5716
5828
 
5717
5829
  if (peg$silentFails === 0) {
5718
- peg$fail(peg$c162);
5830
+ peg$fail(peg$c166);
5719
5831
  }
5720
5832
  }
5721
5833
  }
@@ -5728,7 +5840,7 @@ function peg$parse(input, options) {
5728
5840
 
5729
5841
  if (s3 !== peg$FAILED) {
5730
5842
  peg$savedPos = s0;
5731
- s1 = peg$c160(s2);
5843
+ s1 = peg$c164(s2);
5732
5844
  s0 = s1;
5733
5845
  } else {
5734
5846
  peg$currPos = s0;
@@ -5750,7 +5862,251 @@ function peg$parse(input, options) {
5750
5862
  s1 = peg$FAILED;
5751
5863
 
5752
5864
  if (peg$silentFails === 0) {
5753
- peg$fail(peg$c159);
5865
+ peg$fail(peg$c163);
5866
+ }
5867
+ }
5868
+
5869
+ return s0;
5870
+ }
5871
+
5872
+ function peg$parseschema_name() {
5873
+ var s0, s1, s2;
5874
+ peg$silentFails++;
5875
+ s0 = peg$currPos;
5876
+ s1 = peg$parsename();
5877
+
5878
+ if (s1 !== peg$FAILED) {
5879
+ if (input.charCodeAt(peg$currPos) === 46) {
5880
+ s2 = peg$c168;
5881
+ peg$currPos++;
5882
+ } else {
5883
+ s2 = peg$FAILED;
5884
+
5885
+ if (peg$silentFails === 0) {
5886
+ peg$fail(peg$c169);
5887
+ }
5888
+ }
5889
+
5890
+ if (s2 !== peg$FAILED) {
5891
+ peg$savedPos = s0;
5892
+ s1 = peg$c170(s1);
5893
+ s0 = s1;
5894
+ } else {
5895
+ peg$currPos = s0;
5896
+ s0 = peg$FAILED;
5897
+ }
5898
+ } else {
5899
+ peg$currPos = s0;
5900
+ s0 = peg$FAILED;
5901
+ }
5902
+
5903
+ peg$silentFails--;
5904
+
5905
+ if (s0 === peg$FAILED) {
5906
+ s1 = peg$FAILED;
5907
+
5908
+ if (peg$silentFails === 0) {
5909
+ peg$fail(peg$c167);
5910
+ }
5911
+ }
5912
+
5913
+ return s0;
5914
+ }
5915
+
5916
+ function peg$parsefield_identifier() {
5917
+ var s0, s1, s2, s3, s4, s5;
5918
+ s0 = peg$currPos;
5919
+ s1 = peg$parsename();
5920
+
5921
+ if (s1 !== peg$FAILED) {
5922
+ if (input.charCodeAt(peg$currPos) === 46) {
5923
+ s2 = peg$c168;
5924
+ peg$currPos++;
5925
+ } else {
5926
+ s2 = peg$FAILED;
5927
+
5928
+ if (peg$silentFails === 0) {
5929
+ peg$fail(peg$c169);
5930
+ }
5931
+ }
5932
+
5933
+ if (s2 !== peg$FAILED) {
5934
+ s3 = peg$parsename();
5935
+
5936
+ if (s3 !== peg$FAILED) {
5937
+ if (input.charCodeAt(peg$currPos) === 46) {
5938
+ s4 = peg$c168;
5939
+ peg$currPos++;
5940
+ } else {
5941
+ s4 = peg$FAILED;
5942
+
5943
+ if (peg$silentFails === 0) {
5944
+ peg$fail(peg$c169);
5945
+ }
5946
+ }
5947
+
5948
+ if (s4 !== peg$FAILED) {
5949
+ s5 = peg$parseRefField();
5950
+
5951
+ if (s5 !== peg$FAILED) {
5952
+ peg$savedPos = s0;
5953
+ s1 = peg$c171(s1, s3, s5);
5954
+ s0 = s1;
5955
+ } else {
5956
+ peg$currPos = s0;
5957
+ s0 = peg$FAILED;
5958
+ }
5959
+ } else {
5960
+ peg$currPos = s0;
5961
+ s0 = peg$FAILED;
5962
+ }
5963
+ } else {
5964
+ peg$currPos = s0;
5965
+ s0 = peg$FAILED;
5966
+ }
5967
+ } else {
5968
+ peg$currPos = s0;
5969
+ s0 = peg$FAILED;
5970
+ }
5971
+ } else {
5972
+ peg$currPos = s0;
5973
+ s0 = peg$FAILED;
5974
+ }
5975
+
5976
+ if (s0 === peg$FAILED) {
5977
+ s0 = peg$currPos;
5978
+ s1 = peg$parsename();
5979
+
5980
+ if (s1 !== peg$FAILED) {
5981
+ if (input.charCodeAt(peg$currPos) === 46) {
5982
+ s2 = peg$c168;
5983
+ peg$currPos++;
5984
+ } else {
5985
+ s2 = peg$FAILED;
5986
+
5987
+ if (peg$silentFails === 0) {
5988
+ peg$fail(peg$c169);
5989
+ }
5990
+ }
5991
+
5992
+ if (s2 !== peg$FAILED) {
5993
+ s3 = peg$parseRefField();
5994
+
5995
+ if (s3 !== peg$FAILED) {
5996
+ peg$savedPos = s0;
5997
+ s1 = peg$c172(s1, s3);
5998
+ s0 = s1;
5999
+ } else {
6000
+ peg$currPos = s0;
6001
+ s0 = peg$FAILED;
6002
+ }
6003
+ } else {
6004
+ peg$currPos = s0;
6005
+ s0 = peg$FAILED;
6006
+ }
6007
+ } else {
6008
+ peg$currPos = s0;
6009
+ s0 = peg$FAILED;
6010
+ }
6011
+ }
6012
+
6013
+ return s0;
6014
+ }
6015
+
6016
+ function peg$parseinline_field_identifier() {
6017
+ var s0, s1, s2, s3, s4, s5;
6018
+ s0 = peg$currPos;
6019
+ s1 = peg$parsename();
6020
+
6021
+ if (s1 !== peg$FAILED) {
6022
+ if (input.charCodeAt(peg$currPos) === 46) {
6023
+ s2 = peg$c168;
6024
+ peg$currPos++;
6025
+ } else {
6026
+ s2 = peg$FAILED;
6027
+
6028
+ if (peg$silentFails === 0) {
6029
+ peg$fail(peg$c169);
6030
+ }
6031
+ }
6032
+
6033
+ if (s2 !== peg$FAILED) {
6034
+ s3 = peg$parsename();
6035
+
6036
+ if (s3 !== peg$FAILED) {
6037
+ if (input.charCodeAt(peg$currPos) === 46) {
6038
+ s4 = peg$c168;
6039
+ peg$currPos++;
6040
+ } else {
6041
+ s4 = peg$FAILED;
6042
+
6043
+ if (peg$silentFails === 0) {
6044
+ peg$fail(peg$c169);
6045
+ }
6046
+ }
6047
+
6048
+ if (s4 !== peg$FAILED) {
6049
+ s5 = peg$parsename();
6050
+
6051
+ if (s5 !== peg$FAILED) {
6052
+ peg$savedPos = s0;
6053
+ s1 = peg$c173(s1, s3, s5);
6054
+ s0 = s1;
6055
+ } else {
6056
+ peg$currPos = s0;
6057
+ s0 = peg$FAILED;
6058
+ }
6059
+ } else {
6060
+ peg$currPos = s0;
6061
+ s0 = peg$FAILED;
6062
+ }
6063
+ } else {
6064
+ peg$currPos = s0;
6065
+ s0 = peg$FAILED;
6066
+ }
6067
+ } else {
6068
+ peg$currPos = s0;
6069
+ s0 = peg$FAILED;
6070
+ }
6071
+ } else {
6072
+ peg$currPos = s0;
6073
+ s0 = peg$FAILED;
6074
+ }
6075
+
6076
+ if (s0 === peg$FAILED) {
6077
+ s0 = peg$currPos;
6078
+ s1 = peg$parsename();
6079
+
6080
+ if (s1 !== peg$FAILED) {
6081
+ if (input.charCodeAt(peg$currPos) === 46) {
6082
+ s2 = peg$c168;
6083
+ peg$currPos++;
6084
+ } else {
6085
+ s2 = peg$FAILED;
6086
+
6087
+ if (peg$silentFails === 0) {
6088
+ peg$fail(peg$c169);
6089
+ }
6090
+ }
6091
+
6092
+ if (s2 !== peg$FAILED) {
6093
+ s3 = peg$parsename();
6094
+
6095
+ if (s3 !== peg$FAILED) {
6096
+ peg$savedPos = s0;
6097
+ s1 = peg$c174(s1, s3);
6098
+ s0 = s1;
6099
+ } else {
6100
+ peg$currPos = s0;
6101
+ s0 = peg$FAILED;
6102
+ }
6103
+ } else {
6104
+ peg$currPos = s0;
6105
+ s0 = peg$FAILED;
6106
+ }
6107
+ } else {
6108
+ peg$currPos = s0;
6109
+ s0 = peg$FAILED;
5754
6110
  }
5755
6111
  }
5756
6112
 
@@ -5775,7 +6131,7 @@ function peg$parse(input, options) {
5775
6131
 
5776
6132
  if (s1 !== peg$FAILED) {
5777
6133
  peg$savedPos = s0;
5778
- s1 = peg$c160(s1);
6134
+ s1 = peg$c164(s1);
5779
6135
  }
5780
6136
 
5781
6137
  s0 = s1;
@@ -5787,14 +6143,14 @@ function peg$parse(input, options) {
5787
6143
  if (s1 !== peg$FAILED) {
5788
6144
  s2 = [];
5789
6145
 
5790
- if (peg$c161.test(input.charAt(peg$currPos))) {
6146
+ if (peg$c165.test(input.charAt(peg$currPos))) {
5791
6147
  s3 = input.charAt(peg$currPos);
5792
6148
  peg$currPos++;
5793
6149
  } else {
5794
6150
  s3 = peg$FAILED;
5795
6151
 
5796
6152
  if (peg$silentFails === 0) {
5797
- peg$fail(peg$c162);
6153
+ peg$fail(peg$c166);
5798
6154
  }
5799
6155
  }
5800
6156
 
@@ -5802,14 +6158,14 @@ function peg$parse(input, options) {
5802
6158
  while (s3 !== peg$FAILED) {
5803
6159
  s2.push(s3);
5804
6160
 
5805
- if (peg$c161.test(input.charAt(peg$currPos))) {
6161
+ if (peg$c165.test(input.charAt(peg$currPos))) {
5806
6162
  s3 = input.charAt(peg$currPos);
5807
6163
  peg$currPos++;
5808
6164
  } else {
5809
6165
  s3 = peg$FAILED;
5810
6166
 
5811
6167
  if (peg$silentFails === 0) {
5812
- peg$fail(peg$c162);
6168
+ peg$fail(peg$c166);
5813
6169
  }
5814
6170
  }
5815
6171
  }
@@ -5822,7 +6178,7 @@ function peg$parse(input, options) {
5822
6178
 
5823
6179
  if (s3 !== peg$FAILED) {
5824
6180
  peg$savedPos = s0;
5825
- s1 = peg$c160(s2);
6181
+ s1 = peg$c164(s2);
5826
6182
  s0 = s1;
5827
6183
  } else {
5828
6184
  peg$currPos = s0;
@@ -5844,7 +6200,7 @@ function peg$parse(input, options) {
5844
6200
  s1 = peg$FAILED;
5845
6201
 
5846
6202
  if (peg$silentFails === 0) {
5847
- peg$fail(peg$c159);
6203
+ peg$fail(peg$c163);
5848
6204
  }
5849
6205
  }
5850
6206
 
@@ -5869,13 +6225,13 @@ function peg$parse(input, options) {
5869
6225
 
5870
6226
  if (s3 !== peg$FAILED) {
5871
6227
  if (input.charCodeAt(peg$currPos) === 40) {
5872
- s4 = peg$c30;
6228
+ s4 = peg$c28;
5873
6229
  peg$currPos++;
5874
6230
  } else {
5875
6231
  s4 = peg$FAILED;
5876
6232
 
5877
6233
  if (peg$silentFails === 0) {
5878
- peg$fail(peg$c31);
6234
+ peg$fail(peg$c29);
5879
6235
  }
5880
6236
  }
5881
6237
 
@@ -5902,13 +6258,13 @@ function peg$parse(input, options) {
5902
6258
 
5903
6259
  if (s7 !== peg$FAILED) {
5904
6260
  if (input.charCodeAt(peg$currPos) === 41) {
5905
- s8 = peg$c32;
6261
+ s8 = peg$c30;
5906
6262
  peg$currPos++;
5907
6263
  } else {
5908
6264
  s8 = peg$FAILED;
5909
6265
 
5910
6266
  if (peg$silentFails === 0) {
5911
- peg$fail(peg$c33);
6267
+ peg$fail(peg$c31);
5912
6268
  }
5913
6269
  }
5914
6270
 
@@ -5946,7 +6302,7 @@ function peg$parse(input, options) {
5946
6302
 
5947
6303
  if (s2 !== peg$FAILED) {
5948
6304
  peg$savedPos = s0;
5949
- s1 = peg$c164(s1, s2);
6305
+ s1 = peg$c176(s1, s2);
5950
6306
  s0 = s1;
5951
6307
  } else {
5952
6308
  peg$currPos = s0;
@@ -5963,7 +6319,7 @@ function peg$parse(input, options) {
5963
6319
  s1 = peg$FAILED;
5964
6320
 
5965
6321
  if (peg$silentFails === 0) {
5966
- peg$fail(peg$c163);
6322
+ peg$fail(peg$c175);
5967
6323
  }
5968
6324
  }
5969
6325
 
@@ -5984,7 +6340,7 @@ function peg$parse(input, options) {
5984
6340
 
5985
6341
  if (s1 !== peg$FAILED) {
5986
6342
  peg$savedPos = s0;
5987
- s1 = peg$c166(s1);
6343
+ s1 = peg$c178(s1);
5988
6344
  }
5989
6345
 
5990
6346
  s0 = s1;
@@ -5994,7 +6350,7 @@ function peg$parse(input, options) {
5994
6350
  s1 = peg$FAILED;
5995
6351
 
5996
6352
  if (peg$silentFails === 0) {
5997
- peg$fail(peg$c165);
6353
+ peg$fail(peg$c177);
5998
6354
  }
5999
6355
  }
6000
6356
 
@@ -6028,13 +6384,13 @@ function peg$parse(input, options) {
6028
6384
 
6029
6385
  if (s3 !== peg$FAILED) {
6030
6386
  if (input.charCodeAt(peg$currPos) === 40) {
6031
- s4 = peg$c30;
6387
+ s4 = peg$c28;
6032
6388
  peg$currPos++;
6033
6389
  } else {
6034
6390
  s4 = peg$FAILED;
6035
6391
 
6036
6392
  if (peg$silentFails === 0) {
6037
- peg$fail(peg$c31);
6393
+ peg$fail(peg$c29);
6038
6394
  }
6039
6395
  }
6040
6396
 
@@ -6043,13 +6399,13 @@ function peg$parse(input, options) {
6043
6399
 
6044
6400
  if (s5 !== peg$FAILED) {
6045
6401
  if (input.charCodeAt(peg$currPos) === 41) {
6046
- s6 = peg$c32;
6402
+ s6 = peg$c30;
6047
6403
  peg$currPos++;
6048
6404
  } else {
6049
6405
  s6 = peg$FAILED;
6050
6406
 
6051
6407
  if (peg$silentFails === 0) {
6052
- peg$fail(peg$c33);
6408
+ peg$fail(peg$c31);
6053
6409
  }
6054
6410
  }
6055
6411
 
@@ -6081,13 +6437,13 @@ function peg$parse(input, options) {
6081
6437
  s1 = peg$currPos;
6082
6438
 
6083
6439
  if (input.charCodeAt(peg$currPos) === 40) {
6084
- s2 = peg$c30;
6440
+ s2 = peg$c28;
6085
6441
  peg$currPos++;
6086
6442
  } else {
6087
6443
  s2 = peg$FAILED;
6088
6444
 
6089
6445
  if (peg$silentFails === 0) {
6090
- peg$fail(peg$c31);
6446
+ peg$fail(peg$c29);
6091
6447
  }
6092
6448
  }
6093
6449
 
@@ -6096,13 +6452,13 @@ function peg$parse(input, options) {
6096
6452
 
6097
6453
  if (s3 !== peg$FAILED) {
6098
6454
  if (input.charCodeAt(peg$currPos) === 41) {
6099
- s4 = peg$c32;
6455
+ s4 = peg$c30;
6100
6456
  peg$currPos++;
6101
6457
  } else {
6102
6458
  s4 = peg$FAILED;
6103
6459
 
6104
6460
  if (peg$silentFails === 0) {
6105
- peg$fail(peg$c33);
6461
+ peg$fail(peg$c31);
6106
6462
  }
6107
6463
  }
6108
6464
 
@@ -6149,25 +6505,25 @@ function peg$parse(input, options) {
6149
6505
 
6150
6506
  if (s4 === peg$FAILED) {
6151
6507
  if (input.charCodeAt(peg$currPos) === 44) {
6152
- s4 = peg$c167;
6508
+ s4 = peg$c179;
6153
6509
  peg$currPos++;
6154
6510
  } else {
6155
6511
  s4 = peg$FAILED;
6156
6512
 
6157
6513
  if (peg$silentFails === 0) {
6158
- peg$fail(peg$c168);
6514
+ peg$fail(peg$c180);
6159
6515
  }
6160
6516
  }
6161
6517
 
6162
6518
  if (s4 === peg$FAILED) {
6163
- if (input.substr(peg$currPos, 2) === peg$c169) {
6164
- s4 = peg$c169;
6519
+ if (input.substr(peg$currPos, 2) === peg$c181) {
6520
+ s4 = peg$c181;
6165
6521
  peg$currPos += 2;
6166
6522
  } else {
6167
6523
  s4 = peg$FAILED;
6168
6524
 
6169
6525
  if (peg$silentFails === 0) {
6170
- peg$fail(peg$c170);
6526
+ peg$fail(peg$c182);
6171
6527
  }
6172
6528
  }
6173
6529
 
@@ -6176,14 +6532,14 @@ function peg$parse(input, options) {
6176
6532
  s5 = peg$parseendline();
6177
6533
 
6178
6534
  if (s5 !== peg$FAILED) {
6179
- if (input.substr(peg$currPos, 2) === peg$c169) {
6180
- s6 = peg$c169;
6535
+ if (input.substr(peg$currPos, 2) === peg$c181) {
6536
+ s6 = peg$c181;
6181
6537
  peg$currPos += 2;
6182
6538
  } else {
6183
6539
  s6 = peg$FAILED;
6184
6540
 
6185
6541
  if (peg$silentFails === 0) {
6186
- peg$fail(peg$c170);
6542
+ peg$fail(peg$c182);
6187
6543
  }
6188
6544
  }
6189
6545
 
@@ -6248,7 +6604,7 @@ function peg$parse(input, options) {
6248
6604
  s4 = peg$FAILED;
6249
6605
 
6250
6606
  if (peg$silentFails === 0) {
6251
- peg$fail(peg$c171);
6607
+ peg$fail(peg$c183);
6252
6608
  }
6253
6609
  }
6254
6610
 
@@ -6278,7 +6634,7 @@ function peg$parse(input, options) {
6278
6634
 
6279
6635
  if (s1 !== peg$FAILED) {
6280
6636
  peg$savedPos = s0;
6281
- s1 = peg$c172(s1);
6637
+ s1 = peg$c184(s1);
6282
6638
  }
6283
6639
 
6284
6640
  s0 = s1;
@@ -6288,14 +6644,14 @@ function peg$parse(input, options) {
6288
6644
  function peg$parseexprChar() {
6289
6645
  var s0;
6290
6646
 
6291
- if (peg$c173.test(input.charAt(peg$currPos))) {
6647
+ if (peg$c185.test(input.charAt(peg$currPos))) {
6292
6648
  s0 = input.charAt(peg$currPos);
6293
6649
  peg$currPos++;
6294
6650
  } else {
6295
6651
  s0 = peg$FAILED;
6296
6652
 
6297
6653
  if (peg$silentFails === 0) {
6298
- peg$fail(peg$c174);
6654
+ peg$fail(peg$c186);
6299
6655
  }
6300
6656
  }
6301
6657
 
@@ -6317,14 +6673,14 @@ function peg$parse(input, options) {
6317
6673
  function peg$parseexprCharNoCommaSpace() {
6318
6674
  var s0;
6319
6675
 
6320
- if (peg$c175.test(input.charAt(peg$currPos))) {
6676
+ if (peg$c187.test(input.charAt(peg$currPos))) {
6321
6677
  s0 = input.charAt(peg$currPos);
6322
6678
  peg$currPos++;
6323
6679
  } else {
6324
6680
  s0 = peg$FAILED;
6325
6681
 
6326
6682
  if (peg$silentFails === 0) {
6327
- peg$fail(peg$c176);
6683
+ peg$fail(peg$c188);
6328
6684
  }
6329
6685
  }
6330
6686
 
@@ -6382,13 +6738,13 @@ function peg$parse(input, options) {
6382
6738
  s2 = peg$FAILED;
6383
6739
 
6384
6740
  if (peg$silentFails === 0) {
6385
- peg$fail(peg$c171);
6741
+ peg$fail(peg$c183);
6386
6742
  }
6387
6743
  }
6388
6744
 
6389
6745
  if (s2 !== peg$FAILED) {
6390
6746
  peg$savedPos = s0;
6391
- s1 = peg$c177();
6747
+ s1 = peg$c189();
6392
6748
  s0 = s1;
6393
6749
  } else {
6394
6750
  peg$currPos = s0;
@@ -6407,14 +6763,14 @@ function peg$parse(input, options) {
6407
6763
  s0 = peg$parsecharacter();
6408
6764
 
6409
6765
  if (s0 === peg$FAILED) {
6410
- if (peg$c178.test(input.charAt(peg$currPos))) {
6766
+ if (peg$c190.test(input.charAt(peg$currPos))) {
6411
6767
  s0 = input.charAt(peg$currPos);
6412
6768
  peg$currPos++;
6413
6769
  } else {
6414
6770
  s0 = peg$FAILED;
6415
6771
 
6416
6772
  if (peg$silentFails === 0) {
6417
- peg$fail(peg$c179);
6773
+ peg$fail(peg$c191);
6418
6774
  }
6419
6775
  }
6420
6776
  }
@@ -6426,14 +6782,14 @@ function peg$parse(input, options) {
6426
6782
  var s0, s1;
6427
6783
  peg$silentFails++;
6428
6784
 
6429
- if (peg$c181.test(input.charAt(peg$currPos))) {
6785
+ if (peg$c193.test(input.charAt(peg$currPos))) {
6430
6786
  s0 = input.charAt(peg$currPos);
6431
6787
  peg$currPos++;
6432
6788
  } else {
6433
6789
  s0 = peg$FAILED;
6434
6790
 
6435
6791
  if (peg$silentFails === 0) {
6436
- peg$fail(peg$c182);
6792
+ peg$fail(peg$c194);
6437
6793
  }
6438
6794
  }
6439
6795
 
@@ -6443,7 +6799,7 @@ function peg$parse(input, options) {
6443
6799
  s1 = peg$FAILED;
6444
6800
 
6445
6801
  if (peg$silentFails === 0) {
6446
- peg$fail(peg$c180);
6802
+ peg$fail(peg$c192);
6447
6803
  }
6448
6804
  }
6449
6805
 
@@ -6454,20 +6810,20 @@ function peg$parse(input, options) {
6454
6810
  var s0, s1;
6455
6811
  s0 = peg$currPos;
6456
6812
 
6457
- if (peg$c183.test(input.charAt(peg$currPos))) {
6813
+ if (peg$c195.test(input.charAt(peg$currPos))) {
6458
6814
  s1 = input.charAt(peg$currPos);
6459
6815
  peg$currPos++;
6460
6816
  } else {
6461
6817
  s1 = peg$FAILED;
6462
6818
 
6463
6819
  if (peg$silentFails === 0) {
6464
- peg$fail(peg$c184);
6820
+ peg$fail(peg$c196);
6465
6821
  }
6466
6822
  }
6467
6823
 
6468
6824
  if (s1 !== peg$FAILED) {
6469
6825
  peg$savedPos = s0;
6470
- s1 = peg$c185(s1);
6826
+ s1 = peg$c197(s1);
6471
6827
  }
6472
6828
 
6473
6829
  s0 = s1;
@@ -6478,13 +6834,13 @@ function peg$parse(input, options) {
6478
6834
  var s0;
6479
6835
 
6480
6836
  if (input.charCodeAt(peg$currPos) === 34) {
6481
- s0 = peg$c186;
6837
+ s0 = peg$c198;
6482
6838
  peg$currPos++;
6483
6839
  } else {
6484
6840
  s0 = peg$FAILED;
6485
6841
 
6486
6842
  if (peg$silentFails === 0) {
6487
- peg$fail(peg$c187);
6843
+ peg$fail(peg$c199);
6488
6844
  }
6489
6845
  }
6490
6846
 
@@ -6570,7 +6926,7 @@ function peg$parse(input, options) {
6570
6926
  s1 = peg$FAILED;
6571
6927
 
6572
6928
  if (peg$silentFails === 0) {
6573
- peg$fail(peg$c188);
6929
+ peg$fail(peg$c200);
6574
6930
  }
6575
6931
  }
6576
6932
 
@@ -6581,13 +6937,13 @@ function peg$parse(input, options) {
6581
6937
  var s0;
6582
6938
 
6583
6939
  if (input.charCodeAt(peg$currPos) === 9) {
6584
- s0 = peg$c189;
6940
+ s0 = peg$c201;
6585
6941
  peg$currPos++;
6586
6942
  } else {
6587
6943
  s0 = peg$FAILED;
6588
6944
 
6589
6945
  if (peg$silentFails === 0) {
6590
- peg$fail(peg$c190);
6946
+ peg$fail(peg$c202);
6591
6947
  }
6592
6948
  }
6593
6949
 
@@ -6598,42 +6954,42 @@ function peg$parse(input, options) {
6598
6954
  var s0, s1, s2, s3;
6599
6955
  s0 = peg$currPos;
6600
6956
 
6601
- if (input.substr(peg$currPos, 2) === peg$c191) {
6602
- s1 = peg$c191;
6957
+ if (input.substr(peg$currPos, 2) === peg$c203) {
6958
+ s1 = peg$c203;
6603
6959
  peg$currPos += 2;
6604
6960
  } else {
6605
6961
  s1 = peg$FAILED;
6606
6962
 
6607
6963
  if (peg$silentFails === 0) {
6608
- peg$fail(peg$c192);
6964
+ peg$fail(peg$c204);
6609
6965
  }
6610
6966
  }
6611
6967
 
6612
6968
  if (s1 !== peg$FAILED) {
6613
6969
  s2 = [];
6614
6970
 
6615
- if (peg$c193.test(input.charAt(peg$currPos))) {
6971
+ if (peg$c205.test(input.charAt(peg$currPos))) {
6616
6972
  s3 = input.charAt(peg$currPos);
6617
6973
  peg$currPos++;
6618
6974
  } else {
6619
6975
  s3 = peg$FAILED;
6620
6976
 
6621
6977
  if (peg$silentFails === 0) {
6622
- peg$fail(peg$c194);
6978
+ peg$fail(peg$c206);
6623
6979
  }
6624
6980
  }
6625
6981
 
6626
6982
  while (s3 !== peg$FAILED) {
6627
6983
  s2.push(s3);
6628
6984
 
6629
- if (peg$c193.test(input.charAt(peg$currPos))) {
6985
+ if (peg$c205.test(input.charAt(peg$currPos))) {
6630
6986
  s3 = input.charAt(peg$currPos);
6631
6987
  peg$currPos++;
6632
6988
  } else {
6633
6989
  s3 = peg$FAILED;
6634
6990
 
6635
6991
  if (peg$silentFails === 0) {
6636
- peg$fail(peg$c194);
6992
+ peg$fail(peg$c206);
6637
6993
  }
6638
6994
  }
6639
6995
  }
@@ -6657,14 +7013,14 @@ function peg$parse(input, options) {
6657
7013
  var s0, s1, s2, s3, s4, s5;
6658
7014
  s0 = peg$currPos;
6659
7015
 
6660
- if (input.substr(peg$currPos, 2) === peg$c195) {
6661
- s1 = peg$c195;
7016
+ if (input.substr(peg$currPos, 2) === peg$c207) {
7017
+ s1 = peg$c207;
6662
7018
  peg$currPos += 2;
6663
7019
  } else {
6664
7020
  s1 = peg$FAILED;
6665
7021
 
6666
7022
  if (peg$silentFails === 0) {
6667
- peg$fail(peg$c196);
7023
+ peg$fail(peg$c208);
6668
7024
  }
6669
7025
  }
6670
7026
 
@@ -6674,14 +7030,14 @@ function peg$parse(input, options) {
6674
7030
  s4 = peg$currPos;
6675
7031
  peg$silentFails++;
6676
7032
 
6677
- if (input.substr(peg$currPos, 2) === peg$c197) {
6678
- s5 = peg$c197;
7033
+ if (input.substr(peg$currPos, 2) === peg$c209) {
7034
+ s5 = peg$c209;
6679
7035
  peg$currPos += 2;
6680
7036
  } else {
6681
7037
  s5 = peg$FAILED;
6682
7038
 
6683
7039
  if (peg$silentFails === 0) {
6684
- peg$fail(peg$c198);
7040
+ peg$fail(peg$c210);
6685
7041
  }
6686
7042
  }
6687
7043
 
@@ -6702,7 +7058,7 @@ function peg$parse(input, options) {
6702
7058
  s5 = peg$FAILED;
6703
7059
 
6704
7060
  if (peg$silentFails === 0) {
6705
- peg$fail(peg$c171);
7061
+ peg$fail(peg$c183);
6706
7062
  }
6707
7063
  }
6708
7064
 
@@ -6724,14 +7080,14 @@ function peg$parse(input, options) {
6724
7080
  s4 = peg$currPos;
6725
7081
  peg$silentFails++;
6726
7082
 
6727
- if (input.substr(peg$currPos, 2) === peg$c197) {
6728
- s5 = peg$c197;
7083
+ if (input.substr(peg$currPos, 2) === peg$c209) {
7084
+ s5 = peg$c209;
6729
7085
  peg$currPos += 2;
6730
7086
  } else {
6731
7087
  s5 = peg$FAILED;
6732
7088
 
6733
7089
  if (peg$silentFails === 0) {
6734
- peg$fail(peg$c198);
7090
+ peg$fail(peg$c210);
6735
7091
  }
6736
7092
  }
6737
7093
 
@@ -6752,7 +7108,7 @@ function peg$parse(input, options) {
6752
7108
  s5 = peg$FAILED;
6753
7109
 
6754
7110
  if (peg$silentFails === 0) {
6755
- peg$fail(peg$c171);
7111
+ peg$fail(peg$c183);
6756
7112
  }
6757
7113
  }
6758
7114
 
@@ -6770,14 +7126,14 @@ function peg$parse(input, options) {
6770
7126
  }
6771
7127
 
6772
7128
  if (s2 !== peg$FAILED) {
6773
- if (input.substr(peg$currPos, 2) === peg$c197) {
6774
- s3 = peg$c197;
7129
+ if (input.substr(peg$currPos, 2) === peg$c209) {
7130
+ s3 = peg$c209;
6775
7131
  peg$currPos += 2;
6776
7132
  } else {
6777
7133
  s3 = peg$FAILED;
6778
7134
 
6779
7135
  if (peg$silentFails === 0) {
6780
- peg$fail(peg$c198);
7136
+ peg$fail(peg$c210);
6781
7137
  }
6782
7138
  }
6783
7139
 
@@ -6815,7 +7171,7 @@ function peg$parse(input, options) {
6815
7171
  s1 = peg$FAILED;
6816
7172
 
6817
7173
  if (peg$silentFails === 0) {
6818
- peg$fail(peg$c199);
7174
+ peg$fail(peg$c211);
6819
7175
  }
6820
7176
  }
6821
7177
 
@@ -6826,26 +7182,26 @@ function peg$parse(input, options) {
6826
7182
  var s0, s1;
6827
7183
  peg$silentFails++;
6828
7184
 
6829
- if (input.substr(peg$currPos, 2) === peg$c201) {
6830
- s0 = peg$c201;
7185
+ if (input.substr(peg$currPos, 2) === peg$c213) {
7186
+ s0 = peg$c213;
6831
7187
  peg$currPos += 2;
6832
7188
  } else {
6833
7189
  s0 = peg$FAILED;
6834
7190
 
6835
7191
  if (peg$silentFails === 0) {
6836
- peg$fail(peg$c202);
7192
+ peg$fail(peg$c214);
6837
7193
  }
6838
7194
  }
6839
7195
 
6840
7196
  if (s0 === peg$FAILED) {
6841
7197
  if (input.charCodeAt(peg$currPos) === 10) {
6842
- s0 = peg$c203;
7198
+ s0 = peg$c215;
6843
7199
  peg$currPos++;
6844
7200
  } else {
6845
7201
  s0 = peg$FAILED;
6846
7202
 
6847
7203
  if (peg$silentFails === 0) {
6848
- peg$fail(peg$c204);
7204
+ peg$fail(peg$c216);
6849
7205
  }
6850
7206
  }
6851
7207
  }
@@ -6856,7 +7212,7 @@ function peg$parse(input, options) {
6856
7212
  s1 = peg$FAILED;
6857
7213
 
6858
7214
  if (peg$silentFails === 0) {
6859
- peg$fail(peg$c200);
7215
+ peg$fail(peg$c212);
6860
7216
  }
6861
7217
  }
6862
7218
 
@@ -6867,14 +7223,14 @@ function peg$parse(input, options) {
6867
7223
  var s0, s1;
6868
7224
  peg$silentFails++;
6869
7225
 
6870
- if (peg$c206.test(input.charAt(peg$currPos))) {
7226
+ if (peg$c218.test(input.charAt(peg$currPos))) {
6871
7227
  s0 = input.charAt(peg$currPos);
6872
7228
  peg$currPos++;
6873
7229
  } else {
6874
7230
  s0 = peg$FAILED;
6875
7231
 
6876
7232
  if (peg$silentFails === 0) {
6877
- peg$fail(peg$c207);
7233
+ peg$fail(peg$c219);
6878
7234
  }
6879
7235
  }
6880
7236
 
@@ -6884,7 +7240,7 @@ function peg$parse(input, options) {
6884
7240
  s1 = peg$FAILED;
6885
7241
 
6886
7242
  if (peg$silentFails === 0) {
6887
- peg$fail(peg$c205);
7243
+ peg$fail(peg$c217);
6888
7244
  }
6889
7245
  }
6890
7246
 
@@ -6895,14 +7251,14 @@ function peg$parse(input, options) {
6895
7251
  var s0, s1;
6896
7252
  peg$silentFails++;
6897
7253
 
6898
- if (peg$c208.test(input.charAt(peg$currPos))) {
7254
+ if (peg$c220.test(input.charAt(peg$currPos))) {
6899
7255
  s0 = input.charAt(peg$currPos);
6900
7256
  peg$currPos++;
6901
7257
  } else {
6902
7258
  s0 = peg$FAILED;
6903
7259
 
6904
7260
  if (peg$silentFails === 0) {
6905
- peg$fail(peg$c209);
7261
+ peg$fail(peg$c221);
6906
7262
  }
6907
7263
  }
6908
7264
 
@@ -6912,7 +7268,7 @@ function peg$parse(input, options) {
6912
7268
  s1 = peg$FAILED;
6913
7269
 
6914
7270
  if (peg$silentFails === 0) {
6915
- peg$fail(peg$c205);
7271
+ peg$fail(peg$c217);
6916
7272
  }
6917
7273
  }
6918
7274
 
@@ -6923,13 +7279,13 @@ function peg$parse(input, options) {
6923
7279
  var s0;
6924
7280
 
6925
7281
  if (input.charCodeAt(peg$currPos) === 32) {
6926
- s0 = peg$c210;
7282
+ s0 = peg$c222;
6927
7283
  peg$currPos++;
6928
7284
  } else {
6929
7285
  s0 = peg$FAILED;
6930
7286
 
6931
7287
  if (peg$silentFails === 0) {
6932
- peg$fail(peg$c211);
7288
+ peg$fail(peg$c223);
6933
7289
  }
6934
7290
  }
6935
7291
 
@@ -6940,13 +7296,13 @@ function peg$parse(input, options) {
6940
7296
  var s0;
6941
7297
 
6942
7298
  if (input.charCodeAt(peg$currPos) === 44) {
6943
- s0 = peg$c167;
7299
+ s0 = peg$c179;
6944
7300
  peg$currPos++;
6945
7301
  } else {
6946
7302
  s0 = peg$FAILED;
6947
7303
 
6948
7304
  if (peg$silentFails === 0) {
6949
- peg$fail(peg$c168);
7305
+ peg$fail(peg$c180);
6950
7306
  }
6951
7307
  }
6952
7308
 
@@ -6958,19 +7314,19 @@ function peg$parse(input, options) {
6958
7314
  s0 = peg$currPos;
6959
7315
 
6960
7316
  if (input.charCodeAt(peg$currPos) === 35) {
6961
- s1 = peg$c212;
7317
+ s1 = peg$c224;
6962
7318
  peg$currPos++;
6963
7319
  } else {
6964
7320
  s1 = peg$FAILED;
6965
7321
 
6966
7322
  if (peg$silentFails === 0) {
6967
- peg$fail(peg$c213);
7323
+ peg$fail(peg$c225);
6968
7324
  }
6969
7325
  }
6970
7326
 
6971
7327
  if (s1 !== peg$FAILED) {
6972
7328
  peg$savedPos = s0;
6973
- s1 = peg$c214();
7329
+ s1 = peg$c226();
6974
7330
  }
6975
7331
 
6976
7332
  s0 = s1;
@@ -6983,13 +7339,13 @@ function peg$parse(input, options) {
6983
7339
  s0 = peg$currPos;
6984
7340
 
6985
7341
  if (input.charCodeAt(peg$currPos) === 34) {
6986
- s1 = peg$c186;
7342
+ s1 = peg$c198;
6987
7343
  peg$currPos++;
6988
7344
  } else {
6989
7345
  s1 = peg$FAILED;
6990
7346
 
6991
7347
  if (peg$silentFails === 0) {
6992
- peg$fail(peg$c187);
7348
+ peg$fail(peg$c199);
6993
7349
  }
6994
7350
  }
6995
7351
 
@@ -7004,19 +7360,19 @@ function peg$parse(input, options) {
7004
7360
 
7005
7361
  if (s2 !== peg$FAILED) {
7006
7362
  if (input.charCodeAt(peg$currPos) === 34) {
7007
- s3 = peg$c186;
7363
+ s3 = peg$c198;
7008
7364
  peg$currPos++;
7009
7365
  } else {
7010
7366
  s3 = peg$FAILED;
7011
7367
 
7012
7368
  if (peg$silentFails === 0) {
7013
- peg$fail(peg$c187);
7369
+ peg$fail(peg$c199);
7014
7370
  }
7015
7371
  }
7016
7372
 
7017
7373
  if (s3 !== peg$FAILED) {
7018
7374
  peg$savedPos = s0;
7019
- s1 = peg$c216(s2);
7375
+ s1 = peg$c228(s2);
7020
7376
  s0 = s1;
7021
7377
  } else {
7022
7378
  peg$currPos = s0;
@@ -7034,14 +7390,14 @@ function peg$parse(input, options) {
7034
7390
  if (s0 === peg$FAILED) {
7035
7391
  s0 = peg$currPos;
7036
7392
 
7037
- if (input.substr(peg$currPos, 3) === peg$c217) {
7038
- s1 = peg$c217;
7393
+ if (input.substr(peg$currPos, 3) === peg$c229) {
7394
+ s1 = peg$c229;
7039
7395
  peg$currPos += 3;
7040
7396
  } else {
7041
7397
  s1 = peg$FAILED;
7042
7398
 
7043
7399
  if (peg$silentFails === 0) {
7044
- peg$fail(peg$c218);
7400
+ peg$fail(peg$c230);
7045
7401
  }
7046
7402
  }
7047
7403
 
@@ -7055,20 +7411,20 @@ function peg$parse(input, options) {
7055
7411
  }
7056
7412
 
7057
7413
  if (s2 !== peg$FAILED) {
7058
- if (input.substr(peg$currPos, 3) === peg$c217) {
7059
- s3 = peg$c217;
7414
+ if (input.substr(peg$currPos, 3) === peg$c229) {
7415
+ s3 = peg$c229;
7060
7416
  peg$currPos += 3;
7061
7417
  } else {
7062
7418
  s3 = peg$FAILED;
7063
7419
 
7064
7420
  if (peg$silentFails === 0) {
7065
- peg$fail(peg$c218);
7421
+ peg$fail(peg$c230);
7066
7422
  }
7067
7423
  }
7068
7424
 
7069
7425
  if (s3 !== peg$FAILED) {
7070
7426
  peg$savedPos = s0;
7071
- s1 = peg$c219(s2);
7427
+ s1 = peg$c231(s2);
7072
7428
  s0 = s1;
7073
7429
  } else {
7074
7430
  peg$currPos = s0;
@@ -7087,13 +7443,13 @@ function peg$parse(input, options) {
7087
7443
  s0 = peg$currPos;
7088
7444
 
7089
7445
  if (input.charCodeAt(peg$currPos) === 39) {
7090
- s1 = peg$c220;
7446
+ s1 = peg$c232;
7091
7447
  peg$currPos++;
7092
7448
  } else {
7093
7449
  s1 = peg$FAILED;
7094
7450
 
7095
7451
  if (peg$silentFails === 0) {
7096
- peg$fail(peg$c221);
7452
+ peg$fail(peg$c233);
7097
7453
  }
7098
7454
  }
7099
7455
 
@@ -7108,19 +7464,19 @@ function peg$parse(input, options) {
7108
7464
 
7109
7465
  if (s2 !== peg$FAILED) {
7110
7466
  if (input.charCodeAt(peg$currPos) === 39) {
7111
- s3 = peg$c220;
7467
+ s3 = peg$c232;
7112
7468
  peg$currPos++;
7113
7469
  } else {
7114
7470
  s3 = peg$FAILED;
7115
7471
 
7116
7472
  if (peg$silentFails === 0) {
7117
- peg$fail(peg$c221);
7473
+ peg$fail(peg$c233);
7118
7474
  }
7119
7475
  }
7120
7476
 
7121
7477
  if (s3 !== peg$FAILED) {
7122
7478
  peg$savedPos = s0;
7123
- s1 = peg$c216(s2);
7479
+ s1 = peg$c228(s2);
7124
7480
  s0 = s1;
7125
7481
  } else {
7126
7482
  peg$currPos = s0;
@@ -7143,7 +7499,7 @@ function peg$parse(input, options) {
7143
7499
  s1 = peg$FAILED;
7144
7500
 
7145
7501
  if (peg$silentFails === 0) {
7146
- peg$fail(peg$c215);
7502
+ peg$fail(peg$c227);
7147
7503
  }
7148
7504
  }
7149
7505
 
@@ -7155,31 +7511,31 @@ function peg$parse(input, options) {
7155
7511
  s0 = peg$currPos;
7156
7512
 
7157
7513
  if (input.charCodeAt(peg$currPos) === 92) {
7158
- s1 = peg$c222;
7514
+ s1 = peg$c234;
7159
7515
  peg$currPos++;
7160
7516
  } else {
7161
7517
  s1 = peg$FAILED;
7162
7518
 
7163
7519
  if (peg$silentFails === 0) {
7164
- peg$fail(peg$c223);
7520
+ peg$fail(peg$c235);
7165
7521
  }
7166
7522
  }
7167
7523
 
7168
7524
  if (s1 !== peg$FAILED) {
7169
7525
  if (input.charCodeAt(peg$currPos) === 34) {
7170
- s2 = peg$c186;
7526
+ s2 = peg$c198;
7171
7527
  peg$currPos++;
7172
7528
  } else {
7173
7529
  s2 = peg$FAILED;
7174
7530
 
7175
7531
  if (peg$silentFails === 0) {
7176
- peg$fail(peg$c187);
7532
+ peg$fail(peg$c199);
7177
7533
  }
7178
7534
  }
7179
7535
 
7180
7536
  if (s2 !== peg$FAILED) {
7181
7537
  peg$savedPos = s0;
7182
- s1 = peg$c224();
7538
+ s1 = peg$c236();
7183
7539
  s0 = s1;
7184
7540
  } else {
7185
7541
  peg$currPos = s0;
@@ -7196,13 +7552,13 @@ function peg$parse(input, options) {
7196
7552
  peg$silentFails++;
7197
7553
 
7198
7554
  if (input.charCodeAt(peg$currPos) === 34) {
7199
- s2 = peg$c186;
7555
+ s2 = peg$c198;
7200
7556
  peg$currPos++;
7201
7557
  } else {
7202
7558
  s2 = peg$FAILED;
7203
7559
 
7204
7560
  if (peg$silentFails === 0) {
7205
- peg$fail(peg$c187);
7561
+ peg$fail(peg$c199);
7206
7562
  }
7207
7563
  }
7208
7564
 
@@ -7220,7 +7576,7 @@ function peg$parse(input, options) {
7220
7576
 
7221
7577
  if (s2 !== peg$FAILED) {
7222
7578
  peg$savedPos = s0;
7223
- s1 = peg$c225();
7579
+ s1 = peg$c237();
7224
7580
  s0 = s1;
7225
7581
  } else {
7226
7582
  peg$currPos = s0;
@@ -7239,20 +7595,20 @@ function peg$parse(input, options) {
7239
7595
  var s0, s1, s2;
7240
7596
  s0 = peg$currPos;
7241
7597
 
7242
- if (input.substr(peg$currPos, 2) === peg$c226) {
7243
- s1 = peg$c226;
7598
+ if (input.substr(peg$currPos, 2) === peg$c238) {
7599
+ s1 = peg$c238;
7244
7600
  peg$currPos += 2;
7245
7601
  } else {
7246
7602
  s1 = peg$FAILED;
7247
7603
 
7248
7604
  if (peg$silentFails === 0) {
7249
- peg$fail(peg$c227);
7605
+ peg$fail(peg$c239);
7250
7606
  }
7251
7607
  }
7252
7608
 
7253
7609
  if (s1 !== peg$FAILED) {
7254
7610
  peg$savedPos = s0;
7255
- s1 = peg$c228();
7611
+ s1 = peg$c240();
7256
7612
  }
7257
7613
 
7258
7614
  s0 = s1;
@@ -7263,13 +7619,13 @@ function peg$parse(input, options) {
7263
7619
  peg$silentFails++;
7264
7620
 
7265
7621
  if (input.charCodeAt(peg$currPos) === 39) {
7266
- s2 = peg$c220;
7622
+ s2 = peg$c232;
7267
7623
  peg$currPos++;
7268
7624
  } else {
7269
7625
  s2 = peg$FAILED;
7270
7626
 
7271
7627
  if (peg$silentFails === 0) {
7272
- peg$fail(peg$c221);
7628
+ peg$fail(peg$c233);
7273
7629
  }
7274
7630
  }
7275
7631
 
@@ -7287,7 +7643,7 @@ function peg$parse(input, options) {
7287
7643
 
7288
7644
  if (s2 !== peg$FAILED) {
7289
7645
  peg$savedPos = s0;
7290
- s1 = peg$c225();
7646
+ s1 = peg$c237();
7291
7647
  s0 = s1;
7292
7648
  } else {
7293
7649
  peg$currPos = s0;
@@ -7306,20 +7662,20 @@ function peg$parse(input, options) {
7306
7662
  var s0, s1, s2, s3;
7307
7663
  s0 = peg$currPos;
7308
7664
 
7309
- if (input.substr(peg$currPos, 2) === peg$c226) {
7310
- s1 = peg$c226;
7665
+ if (input.substr(peg$currPos, 2) === peg$c238) {
7666
+ s1 = peg$c238;
7311
7667
  peg$currPos += 2;
7312
7668
  } else {
7313
7669
  s1 = peg$FAILED;
7314
7670
 
7315
7671
  if (peg$silentFails === 0) {
7316
- peg$fail(peg$c227);
7672
+ peg$fail(peg$c239);
7317
7673
  }
7318
7674
  }
7319
7675
 
7320
7676
  if (s1 !== peg$FAILED) {
7321
7677
  peg$savedPos = s0;
7322
- s1 = peg$c228();
7678
+ s1 = peg$c240();
7323
7679
  }
7324
7680
 
7325
7681
  s0 = s1;
@@ -7328,13 +7684,13 @@ function peg$parse(input, options) {
7328
7684
  s0 = peg$currPos;
7329
7685
 
7330
7686
  if (input.charCodeAt(peg$currPos) === 92) {
7331
- s1 = peg$c222;
7687
+ s1 = peg$c234;
7332
7688
  peg$currPos++;
7333
7689
  } else {
7334
7690
  s1 = peg$FAILED;
7335
7691
 
7336
7692
  if (peg$silentFails === 0) {
7337
- peg$fail(peg$c223);
7693
+ peg$fail(peg$c235);
7338
7694
  }
7339
7695
  }
7340
7696
 
@@ -7342,13 +7698,13 @@ function peg$parse(input, options) {
7342
7698
  s2 = [];
7343
7699
 
7344
7700
  if (input.charCodeAt(peg$currPos) === 92) {
7345
- s3 = peg$c222;
7701
+ s3 = peg$c234;
7346
7702
  peg$currPos++;
7347
7703
  } else {
7348
7704
  s3 = peg$FAILED;
7349
7705
 
7350
7706
  if (peg$silentFails === 0) {
7351
- peg$fail(peg$c223);
7707
+ peg$fail(peg$c235);
7352
7708
  }
7353
7709
  }
7354
7710
 
@@ -7357,13 +7713,13 @@ function peg$parse(input, options) {
7357
7713
  s2.push(s3);
7358
7714
 
7359
7715
  if (input.charCodeAt(peg$currPos) === 92) {
7360
- s3 = peg$c222;
7716
+ s3 = peg$c234;
7361
7717
  peg$currPos++;
7362
7718
  } else {
7363
7719
  s3 = peg$FAILED;
7364
7720
 
7365
7721
  if (peg$silentFails === 0) {
7366
- peg$fail(peg$c223);
7722
+ peg$fail(peg$c235);
7367
7723
  }
7368
7724
  }
7369
7725
  }
@@ -7373,7 +7729,7 @@ function peg$parse(input, options) {
7373
7729
 
7374
7730
  if (s2 !== peg$FAILED) {
7375
7731
  peg$savedPos = s0;
7376
- s1 = peg$c229(s2);
7732
+ s1 = peg$c241(s2);
7377
7733
  s0 = s1;
7378
7734
  } else {
7379
7735
  peg$currPos = s0;
@@ -7388,25 +7744,25 @@ function peg$parse(input, options) {
7388
7744
  s0 = peg$currPos;
7389
7745
 
7390
7746
  if (input.charCodeAt(peg$currPos) === 92) {
7391
- s1 = peg$c222;
7747
+ s1 = peg$c234;
7392
7748
  peg$currPos++;
7393
7749
  } else {
7394
7750
  s1 = peg$FAILED;
7395
7751
 
7396
7752
  if (peg$silentFails === 0) {
7397
- peg$fail(peg$c223);
7753
+ peg$fail(peg$c235);
7398
7754
  }
7399
7755
  }
7400
7756
 
7401
7757
  if (s1 !== peg$FAILED) {
7402
7758
  if (input.charCodeAt(peg$currPos) === 10) {
7403
- s2 = peg$c203;
7759
+ s2 = peg$c215;
7404
7760
  peg$currPos++;
7405
7761
  } else {
7406
7762
  s2 = peg$FAILED;
7407
7763
 
7408
7764
  if (peg$silentFails === 0) {
7409
- peg$fail(peg$c204);
7765
+ peg$fail(peg$c216);
7410
7766
  }
7411
7767
  }
7412
7768
 
@@ -7416,7 +7772,7 @@ function peg$parse(input, options) {
7416
7772
 
7417
7773
  if (s2 !== peg$FAILED) {
7418
7774
  peg$savedPos = s0;
7419
- s1 = peg$c230();
7775
+ s1 = peg$c242();
7420
7776
  s0 = s1;
7421
7777
  } else {
7422
7778
  peg$currPos = s0;
@@ -7432,14 +7788,14 @@ function peg$parse(input, options) {
7432
7788
  s1 = peg$currPos;
7433
7789
  peg$silentFails++;
7434
7790
 
7435
- if (input.substr(peg$currPos, 3) === peg$c217) {
7436
- s2 = peg$c217;
7791
+ if (input.substr(peg$currPos, 3) === peg$c229) {
7792
+ s2 = peg$c229;
7437
7793
  peg$currPos += 3;
7438
7794
  } else {
7439
7795
  s2 = peg$FAILED;
7440
7796
 
7441
7797
  if (peg$silentFails === 0) {
7442
- peg$fail(peg$c218);
7798
+ peg$fail(peg$c230);
7443
7799
  }
7444
7800
  }
7445
7801
 
@@ -7457,7 +7813,7 @@ function peg$parse(input, options) {
7457
7813
 
7458
7814
  if (s2 !== peg$FAILED) {
7459
7815
  peg$savedPos = s0;
7460
- s1 = peg$c225();
7816
+ s1 = peg$c237();
7461
7817
  s0 = s1;
7462
7818
  } else {
7463
7819
  peg$currPos = s0;
@@ -7484,7 +7840,7 @@ function peg$parse(input, options) {
7484
7840
  s0 = peg$FAILED;
7485
7841
 
7486
7842
  if (peg$silentFails === 0) {
7487
- peg$fail(peg$c171);
7843
+ peg$fail(peg$c183);
7488
7844
  }
7489
7845
  }
7490
7846
 
@@ -7494,14 +7850,14 @@ function peg$parse(input, options) {
7494
7850
  function peg$parsedigit() {
7495
7851
  var s0;
7496
7852
 
7497
- if (peg$c231.test(input.charAt(peg$currPos))) {
7853
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7498
7854
  s0 = input.charAt(peg$currPos);
7499
7855
  peg$currPos++;
7500
7856
  } else {
7501
7857
  s0 = peg$FAILED;
7502
7858
 
7503
7859
  if (peg$silentFails === 0) {
7504
- peg$fail(peg$c232);
7860
+ peg$fail(peg$c244);
7505
7861
  }
7506
7862
  }
7507
7863
 
@@ -7512,13 +7868,13 @@ function peg$parse(input, options) {
7512
7868
  var s0;
7513
7869
 
7514
7870
  if (input.charCodeAt(peg$currPos) === 61) {
7515
- s0 = peg$c233;
7871
+ s0 = peg$c245;
7516
7872
  peg$currPos++;
7517
7873
  } else {
7518
7874
  s0 = peg$FAILED;
7519
7875
 
7520
7876
  if (peg$silentFails === 0) {
7521
- peg$fail(peg$c234);
7877
+ peg$fail(peg$c246);
7522
7878
  }
7523
7879
  }
7524
7880
 
@@ -7529,13 +7885,13 @@ function peg$parse(input, options) {
7529
7885
  var s0;
7530
7886
 
7531
7887
  if (input.charCodeAt(peg$currPos) === 46) {
7532
- s0 = peg$c25;
7888
+ s0 = peg$c168;
7533
7889
  peg$currPos++;
7534
7890
  } else {
7535
7891
  s0 = peg$FAILED;
7536
7892
 
7537
7893
  if (peg$silentFails === 0) {
7538
- peg$fail(peg$c26);
7894
+ peg$fail(peg$c169);
7539
7895
  }
7540
7896
  }
7541
7897
 
@@ -7546,38 +7902,38 @@ function peg$parse(input, options) {
7546
7902
  var s0, s1;
7547
7903
  s0 = peg$currPos;
7548
7904
 
7549
- if (input.substr(peg$currPos, 4).toLowerCase() === peg$c235) {
7905
+ if (input.substr(peg$currPos, 4).toLowerCase() === peg$c247) {
7550
7906
  s1 = input.substr(peg$currPos, 4);
7551
7907
  peg$currPos += 4;
7552
7908
  } else {
7553
7909
  s1 = peg$FAILED;
7554
7910
 
7555
7911
  if (peg$silentFails === 0) {
7556
- peg$fail(peg$c236);
7912
+ peg$fail(peg$c248);
7557
7913
  }
7558
7914
  }
7559
7915
 
7560
7916
  if (s1 === peg$FAILED) {
7561
- if (input.substr(peg$currPos, 5).toLowerCase() === peg$c237) {
7917
+ if (input.substr(peg$currPos, 5).toLowerCase() === peg$c249) {
7562
7918
  s1 = input.substr(peg$currPos, 5);
7563
7919
  peg$currPos += 5;
7564
7920
  } else {
7565
7921
  s1 = peg$FAILED;
7566
7922
 
7567
7923
  if (peg$silentFails === 0) {
7568
- peg$fail(peg$c238);
7924
+ peg$fail(peg$c250);
7569
7925
  }
7570
7926
  }
7571
7927
 
7572
7928
  if (s1 === peg$FAILED) {
7573
- if (input.substr(peg$currPos, 4).toLowerCase() === peg$c62) {
7929
+ if (input.substr(peg$currPos, 4).toLowerCase() === peg$c60) {
7574
7930
  s1 = input.substr(peg$currPos, 4);
7575
7931
  peg$currPos += 4;
7576
7932
  } else {
7577
7933
  s1 = peg$FAILED;
7578
7934
 
7579
7935
  if (peg$silentFails === 0) {
7580
- peg$fail(peg$c63);
7936
+ peg$fail(peg$c61);
7581
7937
  }
7582
7938
  }
7583
7939
  }
@@ -7585,7 +7941,7 @@ function peg$parse(input, options) {
7585
7941
 
7586
7942
  if (s1 !== peg$FAILED) {
7587
7943
  peg$savedPos = s0;
7588
- s1 = peg$c239(s1);
7944
+ s1 = peg$c251(s1);
7589
7945
  }
7590
7946
 
7591
7947
  s0 = s1;
@@ -7593,20 +7949,44 @@ function peg$parse(input, options) {
7593
7949
  }
7594
7950
 
7595
7951
  function peg$parseNumberLiteral() {
7596
- var s0, s1;
7952
+ var s0, s1, s2;
7597
7953
  s0 = peg$currPos;
7598
- s1 = peg$parsefloat();
7954
+
7955
+ if (input.charCodeAt(peg$currPos) === 45) {
7956
+ s1 = peg$c161;
7957
+ peg$currPos++;
7958
+ } else {
7959
+ s1 = peg$FAILED;
7960
+
7961
+ if (peg$silentFails === 0) {
7962
+ peg$fail(peg$c162);
7963
+ }
7964
+ }
7599
7965
 
7600
7966
  if (s1 === peg$FAILED) {
7601
- s1 = peg$parseinteger();
7967
+ s1 = null;
7602
7968
  }
7603
7969
 
7604
7970
  if (s1 !== peg$FAILED) {
7605
- peg$savedPos = s0;
7606
- s1 = peg$c240(s1);
7971
+ s2 = peg$parsefloat();
7972
+
7973
+ if (s2 === peg$FAILED) {
7974
+ s2 = peg$parseinteger();
7975
+ }
7976
+
7977
+ if (s2 !== peg$FAILED) {
7978
+ peg$savedPos = s0;
7979
+ s1 = peg$c252(s1, s2);
7980
+ s0 = s1;
7981
+ } else {
7982
+ peg$currPos = s0;
7983
+ s0 = peg$FAILED;
7984
+ }
7985
+ } else {
7986
+ peg$currPos = s0;
7987
+ s0 = peg$FAILED;
7607
7988
  }
7608
7989
 
7609
- s0 = s1;
7610
7990
  return s0;
7611
7991
  }
7612
7992
 
@@ -7615,14 +7995,14 @@ function peg$parse(input, options) {
7615
7995
  s0 = peg$currPos;
7616
7996
  s1 = [];
7617
7997
 
7618
- if (peg$c231.test(input.charAt(peg$currPos))) {
7998
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7619
7999
  s2 = input.charAt(peg$currPos);
7620
8000
  peg$currPos++;
7621
8001
  } else {
7622
8002
  s2 = peg$FAILED;
7623
8003
 
7624
8004
  if (peg$silentFails === 0) {
7625
- peg$fail(peg$c232);
8005
+ peg$fail(peg$c244);
7626
8006
  }
7627
8007
  }
7628
8008
 
@@ -7630,14 +8010,14 @@ function peg$parse(input, options) {
7630
8010
  while (s2 !== peg$FAILED) {
7631
8011
  s1.push(s2);
7632
8012
 
7633
- if (peg$c231.test(input.charAt(peg$currPos))) {
8013
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7634
8014
  s2 = input.charAt(peg$currPos);
7635
8015
  peg$currPos++;
7636
8016
  } else {
7637
8017
  s2 = peg$FAILED;
7638
8018
 
7639
8019
  if (peg$silentFails === 0) {
7640
- peg$fail(peg$c232);
8020
+ peg$fail(peg$c244);
7641
8021
  }
7642
8022
  }
7643
8023
  }
@@ -7647,27 +8027,27 @@ function peg$parse(input, options) {
7647
8027
 
7648
8028
  if (s1 !== peg$FAILED) {
7649
8029
  if (input.charCodeAt(peg$currPos) === 46) {
7650
- s2 = peg$c25;
8030
+ s2 = peg$c168;
7651
8031
  peg$currPos++;
7652
8032
  } else {
7653
8033
  s2 = peg$FAILED;
7654
8034
 
7655
8035
  if (peg$silentFails === 0) {
7656
- peg$fail(peg$c26);
8036
+ peg$fail(peg$c169);
7657
8037
  }
7658
8038
  }
7659
8039
 
7660
8040
  if (s2 !== peg$FAILED) {
7661
8041
  s3 = [];
7662
8042
 
7663
- if (peg$c231.test(input.charAt(peg$currPos))) {
8043
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7664
8044
  s4 = input.charAt(peg$currPos);
7665
8045
  peg$currPos++;
7666
8046
  } else {
7667
8047
  s4 = peg$FAILED;
7668
8048
 
7669
8049
  if (peg$silentFails === 0) {
7670
- peg$fail(peg$c232);
8050
+ peg$fail(peg$c244);
7671
8051
  }
7672
8052
  }
7673
8053
 
@@ -7675,14 +8055,14 @@ function peg$parse(input, options) {
7675
8055
  while (s4 !== peg$FAILED) {
7676
8056
  s3.push(s4);
7677
8057
 
7678
- if (peg$c231.test(input.charAt(peg$currPos))) {
8058
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7679
8059
  s4 = input.charAt(peg$currPos);
7680
8060
  peg$currPos++;
7681
8061
  } else {
7682
8062
  s4 = peg$FAILED;
7683
8063
 
7684
8064
  if (peg$silentFails === 0) {
7685
- peg$fail(peg$c232);
8065
+ peg$fail(peg$c244);
7686
8066
  }
7687
8067
  }
7688
8068
  }
@@ -7692,7 +8072,7 @@ function peg$parse(input, options) {
7692
8072
 
7693
8073
  if (s3 !== peg$FAILED) {
7694
8074
  peg$savedPos = s0;
7695
- s1 = peg$c241(s1, s3);
8075
+ s1 = peg$c253(s1, s3);
7696
8076
  s0 = s1;
7697
8077
  } else {
7698
8078
  peg$currPos = s0;
@@ -7715,14 +8095,14 @@ function peg$parse(input, options) {
7715
8095
  s0 = peg$currPos;
7716
8096
  s1 = [];
7717
8097
 
7718
- if (peg$c231.test(input.charAt(peg$currPos))) {
8098
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7719
8099
  s2 = input.charAt(peg$currPos);
7720
8100
  peg$currPos++;
7721
8101
  } else {
7722
8102
  s2 = peg$FAILED;
7723
8103
 
7724
8104
  if (peg$silentFails === 0) {
7725
- peg$fail(peg$c232);
8105
+ peg$fail(peg$c244);
7726
8106
  }
7727
8107
  }
7728
8108
 
@@ -7730,14 +8110,14 @@ function peg$parse(input, options) {
7730
8110
  while (s2 !== peg$FAILED) {
7731
8111
  s1.push(s2);
7732
8112
 
7733
- if (peg$c231.test(input.charAt(peg$currPos))) {
8113
+ if (peg$c243.test(input.charAt(peg$currPos))) {
7734
8114
  s2 = input.charAt(peg$currPos);
7735
8115
  peg$currPos++;
7736
8116
  } else {
7737
8117
  s2 = peg$FAILED;
7738
8118
 
7739
8119
  if (peg$silentFails === 0) {
7740
- peg$fail(peg$c232);
8120
+ peg$fail(peg$c244);
7741
8121
  }
7742
8122
  }
7743
8123
  }
@@ -7747,7 +8127,7 @@ function peg$parse(input, options) {
7747
8127
 
7748
8128
  if (s1 !== peg$FAILED) {
7749
8129
  peg$savedPos = s0;
7750
- s1 = peg$c242(s1);
8130
+ s1 = peg$c254(s1);
7751
8131
  }
7752
8132
 
7753
8133
  s0 = s1;
@@ -7760,9 +8140,18 @@ function peg$parse(input, options) {
7760
8140
  refs: [],
7761
8141
  enums: [],
7762
8142
  tableGroups: [],
8143
+ aliases: [],
7763
8144
  project: {}
7764
8145
  };
7765
8146
  var projectCnt = 0;
8147
+
8148
+ function getRelations(operator) {
8149
+ if (operator === '<>') return ['*', '*'];
8150
+ if (operator === '>') return ['*', '1'];
8151
+ if (operator === '<') return ['1', '*'];
8152
+ if (operator === '-') return ['1', '1'];
8153
+ }
8154
+
7766
8155
  peg$result = peg$startRuleFunction();
7767
8156
 
7768
8157
  if (peg$result !== peg$FAILED && peg$currPos === input.length) {