emblem-source 0.1.18 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/dist/emblem.js +893 -749
  2. data/dist/emblem.min.js +2 -2
  3. metadata +2 -2
data/dist/emblem.js CHANGED
@@ -178,7 +178,7 @@ this.Emblem = {};
178
178
 
179
179
  Emblem = this.Emblem;
180
180
 
181
- Emblem.VERSION = "0.1.17";
181
+ Emblem.VERSION = "0.2.0";
182
182
 
183
183
 
184
184
 
@@ -311,23 +311,24 @@ Emblem.Parser = (function() {
311
311
  return compressedStatements;
312
312
  },
313
313
  peg$c10 = "BeginStatement",
314
- peg$c11 = function() { return []; },
315
- peg$c12 = ">",
316
- peg$c13 = "\">\"",
317
- peg$c14 = function(n, params) {
314
+ peg$c11 = "ContentStatement",
315
+ peg$c12 = function() { return []; },
316
+ peg$c13 = ">",
317
+ peg$c14 = "\">\"",
318
+ peg$c15 = function(n, params) {
318
319
  return [new AST.PartialNode(n, params[0])];
319
320
  },
320
- peg$c15 = /^[a-zA-Z0-9_$-\/]/,
321
- peg$c16 = "[a-zA-Z0-9_$-\\/]",
322
- peg$c17 = function(s) { return new AST.PartialNameNode(s); },
323
- peg$c18 = function(m) {
321
+ peg$c16 = /^[a-zA-Z0-9_$-\/]/,
322
+ peg$c17 = "[a-zA-Z0-9_$-\\/]",
323
+ peg$c18 = function(s) { return new AST.PartialNameNode(s); },
324
+ peg$c19 = function(m) {
324
325
  return [m];
325
326
  },
326
- peg$c19 = "/",
327
- peg$c20 = "\"/\"",
328
- peg$c21 = /^[A-Z]/,
329
- peg$c22 = "[A-Z]",
330
- peg$c23 = function(ret) {
327
+ peg$c20 = "/",
328
+ peg$c21 = "\"/\"",
329
+ peg$c22 = /^[A-Z]/,
330
+ peg$c23 = "[A-Z]",
331
+ peg$c24 = function(ret) {
331
332
  // TODO make this configurable
332
333
  var defaultCapitalizedHelper = 'view';
333
334
 
@@ -349,62 +350,44 @@ Emblem.Parser = (function() {
349
350
  return unshiftParam(ret, defaultCapitalizedHelper);
350
351
  }
351
352
  },
352
- peg$c24 = function(h, c) {
353
- var ret = h[0];
354
- if(c) {
355
- ret = ret.concat(c[2]);
356
- }
357
-
358
- // Push the closing tag ContentNode if it exists (self-closing if not)
359
- if(h[1]) {
360
- ret.push(h[1]);
361
- }
362
-
363
- return ret;
364
- },
365
353
  peg$c25 = " ",
366
354
  peg$c26 = "\" \"",
367
- peg$c27 = function(h, c, multilineContent) {
368
- // h is [[open tag content], closing tag ContentNode]
369
- var ret = h[0];
370
- if(c) {
371
- ret = ret.concat(c);
372
- }
373
-
355
+ peg$c27 = function(ret, multilineContent) {
374
356
  if(multilineContent) {
375
- // Handle multi-line content, e.g.
376
- // span Hello,
377
- // This is valid markup.
378
-
379
357
  multilineContent = multilineContent[1];
380
- for(var i = 0; i < multilineContent.length; ++i) {
358
+ for(var i = 0, len = multilineContent.length; i < len; ++i) {
381
359
  ret.push(new AST.ContentNode(' '));
382
360
  ret = ret.concat(multilineContent[i]);
383
361
  }
384
362
  }
363
+ return ret;
364
+ },
365
+ peg$c28 = function(c) { return c; },
366
+ peg$c29 = function(m) { return [m]; },
367
+ peg$c30 = function(h, nested) {
368
+ // h is [[open tag content], closing tag ContentNode]
369
+ var ret = h[0];
370
+ if(nested) { ret = ret.concat(nested); }
385
371
 
386
372
  // Push the closing tag ContentNode if it exists (self-closing if not)
387
- if(h[1]) {
388
- ret.push(h[1]);
389
- }
373
+ if(h[1]) { ret.push(h[1]); }
390
374
 
391
375
  return ret;
392
376
  },
393
- peg$c28 = function(mustacheNode, block) {
394
- if(!block) return mustacheNode;
395
- var programNode = block[2];
396
- return new AST.BlockNode(mustacheNode, programNode, programNode.inverse, mustacheNode.id);
397
- },
398
- peg$c29 = function(mustacheNode, t) {
399
- var programNode = new AST.ProgramNode(t, []);
400
- return new AST.BlockNode(mustacheNode, programNode, programNode.inverse, mustacheNode.id);
377
+ peg$c31 = function(mustacheNode, nestedContentProgramNode) {
378
+ if (!nestedContentProgramNode) { return mustacheNode; }
379
+ return new AST.BlockNode(mustacheNode, nestedContentProgramNode, nestedContentProgramNode.inverse, mustacheNode.id);
401
380
  },
402
- peg$c30 = function(e, ret) {
381
+ peg$c32 = ": ",
382
+ peg$c33 = "\": \"",
383
+ peg$c34 = function(statements) { return new AST.ProgramNode(statements, []); },
384
+ peg$c35 = function(block) { return block && block[2]; },
385
+ peg$c36 = function(e, ret) {
403
386
  var mustache = ret.mustache || ret;
404
387
  mustache.escaped = e;
405
388
  return ret;
406
389
  },
407
- peg$c31 = function(isPartial, path, params, hash) {
390
+ peg$c37 = function(isPartial, path, params, hash) {
408
391
  if(isPartial) {
409
392
  var n = new AST.PartialNameNode(path.string);
410
393
  return new AST.PartialNode(n, params[0]);
@@ -450,25 +433,25 @@ Emblem.Parser = (function() {
450
433
 
451
434
  return mustacheNode;
452
435
  },
453
- peg$c32 = function(t) { return ['tagName', t]; },
454
- peg$c33 = function(i) { return ['elementId', i]; },
455
- peg$c34 = function(c) { return ['class', c]; },
456
- peg$c35 = function(id, classes) { return [id, classes]; },
457
- peg$c36 = function(classes) { return [null, classes]; },
458
- peg$c37 = function(h) { return h; },
459
- peg$c38 = function(h) { return new AST.HashNode(h); },
460
- peg$c39 = "PathIdent",
461
- peg$c40 = "..",
462
- peg$c41 = "\"..\"",
463
- peg$c42 = ".",
464
- peg$c43 = "\".\"",
465
- peg$c44 = /^[a-zA-Z0-9_$\-!?\^]/,
466
- peg$c45 = "[a-zA-Z0-9_$\\-!?\\^]",
467
- peg$c46 = function(s) { return s; },
468
- peg$c47 = "Key",
469
- peg$c48 = function(h) { return [h[0], h[2]]; },
470
- peg$c49 = function(p) { return p; },
471
- peg$c50 = function(first, tail) {
436
+ peg$c38 = function(t) { return ['tagName', t]; },
437
+ peg$c39 = function(i) { return ['elementId', i]; },
438
+ peg$c40 = function(c) { return ['class', c]; },
439
+ peg$c41 = function(id, classes) { return [id, classes]; },
440
+ peg$c42 = function(classes) { return [null, classes]; },
441
+ peg$c43 = function(a) { return a; },
442
+ peg$c44 = function(h) { return new AST.HashNode(h); },
443
+ peg$c45 = "PathIdent",
444
+ peg$c46 = "..",
445
+ peg$c47 = "\"..\"",
446
+ peg$c48 = ".",
447
+ peg$c49 = "\".\"",
448
+ peg$c50 = /^[a-zA-Z0-9_$\-!?\^]/,
449
+ peg$c51 = "[a-zA-Z0-9_$\\-!?\\^]",
450
+ peg$c52 = function(s) { return s; },
451
+ peg$c53 = "Key",
452
+ peg$c54 = function(h) { return [h[0], h[2]]; },
453
+ peg$c55 = function(p) { return p; },
454
+ peg$c56 = function(first, tail) {
472
455
  var ret = [first];
473
456
  for(var i = 0; i < tail.length; ++i) {
474
457
  //ret = ret.concat(tail[i]);
@@ -476,10 +459,10 @@ Emblem.Parser = (function() {
476
459
  }
477
460
  return ret;
478
461
  },
479
- peg$c51 = "PathSeparator",
480
- peg$c52 = /^[\/.]/,
481
- peg$c53 = "[\\/.]",
482
- peg$c54 = function(v) {
462
+ peg$c57 = "PathSeparator",
463
+ peg$c58 = /^[\/.]/,
464
+ peg$c59 = "[\\/.]",
465
+ peg$c60 = function(v) {
483
466
  var last = v[v.length - 1];
484
467
  var match;
485
468
  var suffixModifier;
@@ -493,31 +476,30 @@ Emblem.Parser = (function() {
493
476
 
494
477
  return idNode;
495
478
  },
496
- peg$c55 = function(v) { return new AST.StringNode(v); },
497
- peg$c56 = function(v) { return new AST.IntegerNode(v); },
498
- peg$c57 = function(v) { return new AST.BooleanNode(v); },
499
- peg$c58 = "Boolean",
500
- peg$c59 = "true",
501
- peg$c60 = "\"true\"",
502
- peg$c61 = "false",
503
- peg$c62 = "\"false\"",
504
- peg$c63 = "Integer",
505
- peg$c64 = /^[0-9]/,
506
- peg$c65 = "[0-9]",
507
- peg$c66 = function(s) { return parseInt(s); },
508
- peg$c67 = "\"",
509
- peg$c68 = "\"\\\"\"",
510
- peg$c69 = "'",
511
- peg$c70 = "\"'\"",
512
- peg$c71 = function(p) { return p[1]; },
513
- peg$c72 = /^[^"}]/,
514
- peg$c73 = "[^\"}]",
515
- peg$c74 = /^[^'}]/,
516
- peg$c75 = "[^'}]",
517
- peg$c76 = /^[A-Za-z]/,
518
- peg$c77 = "[A-Za-z]",
519
- peg$c78 = function(m) { return [m]; },
520
- peg$c79 = function(ind, nodes, w) {
479
+ peg$c61 = function(v) { return new AST.StringNode(v); },
480
+ peg$c62 = function(v) { return new AST.IntegerNode(v); },
481
+ peg$c63 = function(v) { return new AST.BooleanNode(v); },
482
+ peg$c64 = "Boolean",
483
+ peg$c65 = "true",
484
+ peg$c66 = "\"true\"",
485
+ peg$c67 = "false",
486
+ peg$c68 = "\"false\"",
487
+ peg$c69 = "Integer",
488
+ peg$c70 = /^[0-9]/,
489
+ peg$c71 = "[0-9]",
490
+ peg$c72 = function(s) { return parseInt(s); },
491
+ peg$c73 = "\"",
492
+ peg$c74 = "\"\\\"\"",
493
+ peg$c75 = "'",
494
+ peg$c76 = "\"'\"",
495
+ peg$c77 = function(p) { return p[1]; },
496
+ peg$c78 = /^[^"}]/,
497
+ peg$c79 = "[^\"}]",
498
+ peg$c80 = /^[^'}]/,
499
+ peg$c81 = "[^'}]",
500
+ peg$c82 = /^[A-Za-z]/,
501
+ peg$c83 = "[A-Za-z]",
502
+ peg$c84 = function(ind, nodes, w) {
521
503
  nodes.unshift(new AST.ContentNode(ind));
522
504
 
523
505
  for(var i = 0; i < w.length; ++i) {
@@ -527,12 +509,12 @@ Emblem.Parser = (function() {
527
509
  }
528
510
  return nodes;
529
511
  },
530
- peg$c80 = /^[|`']/,
531
- peg$c81 = "[|`']",
532
- peg$c82 = "<",
533
- peg$c83 = "\"<\"",
534
- peg$c84 = function() { return '<'; },
535
- peg$c85 = function(s, nodes, indentedNodes) {
512
+ peg$c85 = /^[|`']/,
513
+ peg$c86 = "[|`']",
514
+ peg$c87 = "<",
515
+ peg$c88 = "\"<\"",
516
+ peg$c89 = function() { return '<'; },
517
+ peg$c90 = function(s, nodes, indentedNodes) {
536
518
  if(nodes.length || !indentedNodes) {
537
519
  nodes.push("\n");
538
520
  }
@@ -565,49 +547,44 @@ Emblem.Parser = (function() {
565
547
 
566
548
  return ret;
567
549
  },
568
- peg$c86 = function(first, tail) {
550
+ peg$c91 = function(first, tail) {
569
551
  return textNodesResult(first, tail);
570
552
  },
571
- peg$c87 = function(a) { return a; },
572
- peg$c88 = function(first, tail) { return textNodesResult(first, tail); },
573
- peg$c89 = function(m) { m.escaped = true; return m; },
574
- peg$c90 = function(m) { m.escaped = false; return m; },
575
- peg$c91 = function(a) { return new AST.ContentNode(a); },
576
- peg$c92 = "any character",
577
- peg$c93 = function(c) { return c; },
578
- peg$c94 = "SingleMustacheOpen",
579
- peg$c95 = "{",
580
- peg$c96 = "\"{\"",
581
- peg$c97 = "DoubleMustacheOpen",
582
- peg$c98 = "{{",
583
- peg$c99 = "\"{{\"",
584
- peg$c100 = "TripleMustacheOpen",
585
- peg$c101 = "{{{",
586
- peg$c102 = "\"{{{\"",
587
- peg$c103 = "SingleMustacheClose",
588
- peg$c104 = "}",
589
- peg$c105 = "\"}\"",
590
- peg$c106 = "DoubleMustacheClose",
591
- peg$c107 = "}}",
592
- peg$c108 = "\"}}\"",
593
- peg$c109 = "TripleMustacheClose",
594
- peg$c110 = "}}}",
595
- peg$c111 = "\"}}}\"",
596
- peg$c112 = "InterpolationOpen",
597
- peg$c113 = "#{",
598
- peg$c114 = "\"#{\"",
599
- peg$c115 = "InterpolationClose",
600
- peg$c116 = "==",
601
- peg$c117 = "\"==\"",
602
- peg$c118 = function() { return false; },
603
- peg$c119 = function() { return true; },
604
- peg$c120 = function(h, s, m, f) { return [h, s, m, f]; },
605
- peg$c121 = function(s, m, f) { return [null, s, m, f] },
606
- peg$c122 = function(h) {
553
+ peg$c92 = function(first, tail) { return textNodesResult(first, tail); },
554
+ peg$c93 = function(m) { m.escaped = true; return m; },
555
+ peg$c94 = function(m) { m.escaped = false; return m; },
556
+ peg$c95 = function(a) { return new AST.ContentNode(a); },
557
+ peg$c96 = "any character",
558
+ peg$c97 = "SingleMustacheOpen",
559
+ peg$c98 = "{",
560
+ peg$c99 = "\"{\"",
561
+ peg$c100 = "DoubleMustacheOpen",
562
+ peg$c101 = "{{",
563
+ peg$c102 = "\"{{\"",
564
+ peg$c103 = "TripleMustacheOpen",
565
+ peg$c104 = "{{{",
566
+ peg$c105 = "\"{{{\"",
567
+ peg$c106 = "SingleMustacheClose",
568
+ peg$c107 = "}",
569
+ peg$c108 = "\"}\"",
570
+ peg$c109 = "DoubleMustacheClose",
571
+ peg$c110 = "}}",
572
+ peg$c111 = "\"}}\"",
573
+ peg$c112 = "TripleMustacheClose",
574
+ peg$c113 = "}}}",
575
+ peg$c114 = "\"}}}\"",
576
+ peg$c115 = "InterpolationOpen",
577
+ peg$c116 = "#{",
578
+ peg$c117 = "\"#{\"",
579
+ peg$c118 = "InterpolationClose",
580
+ peg$c119 = "==",
581
+ peg$c120 = "\"==\"",
582
+ peg$c121 = function() { return false; },
583
+ peg$c122 = function() { return true; },
584
+ peg$c123 = function(h, s) { return h || s; },
585
+ peg$c124 = function(h, inTagMustaches, fullAttributes) {
607
586
  var tagName = h[0] || 'div',
608
587
  shorthandAttributes = h[1] || [],
609
- inTagMustaches = h[2],
610
- fullAttributes = h[3],
611
588
  id = shorthandAttributes[0],
612
589
  classes = shorthandAttributes[1];
613
590
 
@@ -640,9 +617,9 @@ Emblem.Parser = (function() {
640
617
  return [tagOpenContent, new AST.ContentNode('</' + tagName + '>')];
641
618
  }
642
619
  },
643
- peg$c123 = function(s) { return { shorthand: s, id: true}; },
644
- peg$c124 = function(s) { return { shorthand: s }; },
645
- peg$c125 = function(shorthands) {
620
+ peg$c125 = function(s) { return { shorthand: s, id: true}; },
621
+ peg$c126 = function(s) { return { shorthand: s }; },
622
+ peg$c127 = function(shorthands) {
646
623
  var id, classes = [];
647
624
  for(var i = 0, len = shorthands.length; i < len; ++i) {
648
625
  var shorthand = shorthands[i];
@@ -655,21 +632,21 @@ Emblem.Parser = (function() {
655
632
 
656
633
  return [id, classes];
657
634
  },
658
- peg$c126 = function(a) {
635
+ peg$c128 = function(a) {
659
636
  return [new AST.ContentNode(' ')].concat(a);
660
637
  },
661
- peg$c127 = /^[A-Za-z.:0-9_\-]/,
662
- peg$c128 = "[A-Za-z.:0-9_\\-]",
663
- peg$c129 = function(id) { return new AST.MustacheNode([id]); },
664
- peg$c130 = function(event, mustacheNode) {
638
+ peg$c129 = /^[A-Za-z.:0-9_\-]/,
639
+ peg$c130 = "[A-Za-z.:0-9_\\-]",
640
+ peg$c131 = function(id) { return new AST.MustacheNode([id]); },
641
+ peg$c132 = function(event, mustacheNode) {
665
642
  // Unshift the action helper and augment the hash
666
643
  return [unshiftParam(mustacheNode, 'action', [['on', new AST.StringNode(event)]])];
667
644
  },
668
- peg$c131 = function(value) { return value.replace(/ *$/, ''); },
669
- peg$c132 = "!",
670
- peg$c133 = "\"!\"",
671
- peg$c134 = function(key, value) { return IS_EMBER; },
672
- peg$c135 = function(key, value) {
645
+ peg$c133 = function(value) { return value.replace(/ *$/, ''); },
646
+ peg$c134 = "!",
647
+ peg$c135 = "\"!\"",
648
+ peg$c136 = function(key, value) { return IS_EMBER; },
649
+ peg$c137 = function(key, value) {
673
650
  var hashNode = new AST.HashNode([[key, new AST.StringNode(value)]]);
674
651
  var params = [new AST.IdNode(['bindAttr'])];
675
652
  var mustacheNode = new AST.MustacheNode(params, hashNode);
@@ -682,7 +659,7 @@ Emblem.Parser = (function() {
682
659
 
683
660
  return [mustacheNode];
684
661
  },
685
- peg$c136 = function(key, id) {
662
+ peg$c138 = function(key, id) {
686
663
  var mustacheNode = new AST.MustacheNode([id]);
687
664
 
688
665
  if(IS_EMBER && id._emblemSuffixModifier === '!') {
@@ -695,55 +672,55 @@ Emblem.Parser = (function() {
695
672
  new AST.ContentNode('"'),
696
673
  ];
697
674
  },
698
- peg$c137 = function(key, nodes) {
675
+ peg$c139 = function(key, nodes) {
699
676
  var result = [ new AST.ContentNode(key + '=' + '"') ].concat(nodes);
700
677
  return result.concat([new AST.ContentNode('"')]);
701
678
  },
702
- peg$c138 = "_",
703
- peg$c139 = "\"_\"",
704
- peg$c140 = "-",
705
- peg$c141 = "\"-\"",
706
- peg$c142 = "%",
707
- peg$c143 = "\"%\"",
708
- peg$c144 = "#",
709
- peg$c145 = "\"#\"",
710
- peg$c146 = function(c) { return c;},
711
- peg$c147 = "CSSIdentifier",
712
- peg$c148 = function(nmstart, nmchars) { return nmstart + nmchars; },
713
- peg$c149 = /^[_a-zA-Z0-9\-]/,
714
- peg$c150 = "[_a-zA-Z0-9\\-]",
715
- peg$c151 = /^[_a-zA-Z]/,
716
- peg$c152 = "[_a-zA-Z]",
717
- peg$c153 = /^[\x80-\xFF]/,
718
- peg$c154 = "[\\x80-\\xFF]",
719
- peg$c155 = "KnownHTMLTagName",
720
- peg$c156 = function(t) { return !!KNOWN_TAGS[t]; },
721
- peg$c157 = function(t) { return t; },
722
- peg$c158 = /^[:_a-zA-Z0-9\-]/,
723
- peg$c159 = "[:_a-zA-Z0-9\\-]",
724
- peg$c160 = "a JS event",
725
- peg$c161 = function(t) { return !!KNOWN_EVENTS[t]; },
726
- peg$c162 = "INDENT",
727
- peg$c163 = "\uEFEF",
728
- peg$c164 = "\"\\uEFEF\"",
729
- peg$c165 = function() { return ''; },
730
- peg$c166 = "DEDENT",
731
- peg$c167 = "\uEFFE",
732
- peg$c168 = "\"\\uEFFE\"",
733
- peg$c169 = "Unmatched DEDENT",
734
- peg$c170 = "\uEFEE",
735
- peg$c171 = "\"\\uEFEE\"",
736
- peg$c172 = "LineEnd",
737
- peg$c173 = "\uEFFF",
738
- peg$c174 = "\"\\uEFFF\"",
739
- peg$c175 = "\n",
740
- peg$c176 = "\"\\n\"",
741
- peg$c177 = "ANYDEDENT",
742
- peg$c178 = "RequiredWhitespace",
743
- peg$c179 = "OptionalWhitespace",
744
- peg$c180 = "InlineWhitespace",
745
- peg$c181 = /^[ \t]/,
746
- peg$c182 = "[ \\t]",
679
+ peg$c140 = "_",
680
+ peg$c141 = "\"_\"",
681
+ peg$c142 = "-",
682
+ peg$c143 = "\"-\"",
683
+ peg$c144 = "%",
684
+ peg$c145 = "\"%\"",
685
+ peg$c146 = "#",
686
+ peg$c147 = "\"#\"",
687
+ peg$c148 = function(c) { return c;},
688
+ peg$c149 = "CSSIdentifier",
689
+ peg$c150 = function(nmstart, nmchars) { return nmstart + nmchars; },
690
+ peg$c151 = /^[_a-zA-Z0-9\-]/,
691
+ peg$c152 = "[_a-zA-Z0-9\\-]",
692
+ peg$c153 = /^[_a-zA-Z]/,
693
+ peg$c154 = "[_a-zA-Z]",
694
+ peg$c155 = /^[\x80-\xFF]/,
695
+ peg$c156 = "[\\x80-\\xFF]",
696
+ peg$c157 = "KnownHTMLTagName",
697
+ peg$c158 = function(t) { return !!KNOWN_TAGS[t]; },
698
+ peg$c159 = function(t) { return t; },
699
+ peg$c160 = ":",
700
+ peg$c161 = "\":\"",
701
+ peg$c162 = "a JS event",
702
+ peg$c163 = function(t) { return !!KNOWN_EVENTS[t]; },
703
+ peg$c164 = "INDENT",
704
+ peg$c165 = "\uEFEF",
705
+ peg$c166 = "\"\\uEFEF\"",
706
+ peg$c167 = function() { return ''; },
707
+ peg$c168 = "DEDENT",
708
+ peg$c169 = "\uEFFE",
709
+ peg$c170 = "\"\\uEFFE\"",
710
+ peg$c171 = "Unmatched DEDENT",
711
+ peg$c172 = "\uEFEE",
712
+ peg$c173 = "\"\\uEFEE\"",
713
+ peg$c174 = "LineEnd",
714
+ peg$c175 = "\uEFFF",
715
+ peg$c176 = "\"\\uEFFF\"",
716
+ peg$c177 = "\n",
717
+ peg$c178 = "\"\\n\"",
718
+ peg$c179 = "ANYDEDENT",
719
+ peg$c180 = "RequiredWhitespace",
720
+ peg$c181 = "OptionalWhitespace",
721
+ peg$c182 = "InlineWhitespace",
722
+ peg$c183 = /^[ \t]/,
723
+ peg$c184 = "[ \\t]",
747
724
 
748
725
  peg$currPos = 0,
749
726
  peg$reportedPos = 0,
@@ -1003,22 +980,36 @@ Emblem.Parser = (function() {
1003
980
  if (s0 === null) {
1004
981
  s0 = peg$parsecomment();
1005
982
  if (s0 === null) {
1006
- s0 = peg$parselegacyPartialInvocation();
983
+ s0 = peg$parsecontentStatement();
984
+ }
985
+ }
986
+ peg$silentFails--;
987
+ if (s0 === null) {
988
+ s1 = null;
989
+ if (peg$silentFails === 0) { peg$fail(peg$c10); }
990
+ }
991
+
992
+ return s0;
993
+ }
994
+
995
+ function peg$parsecontentStatement() {
996
+ var s0, s1;
997
+
998
+ peg$silentFails++;
999
+ s0 = peg$parselegacyPartialInvocation();
1000
+ if (s0 === null) {
1001
+ s0 = peg$parsehtmlElement();
1002
+ if (s0 === null) {
1003
+ s0 = peg$parsetextLine();
1007
1004
  if (s0 === null) {
1008
- s0 = peg$parsehtmlElement();
1009
- if (s0 === null) {
1010
- s0 = peg$parsetextLine();
1011
- if (s0 === null) {
1012
- s0 = peg$parsemustache();
1013
- }
1014
- }
1005
+ s0 = peg$parsemustache();
1015
1006
  }
1016
1007
  }
1017
1008
  }
1018
1009
  peg$silentFails--;
1019
1010
  if (s0 === null) {
1020
1011
  s1 = null;
1021
- if (peg$silentFails === 0) { peg$fail(peg$c10); }
1012
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
1022
1013
  }
1023
1014
 
1024
1015
  return s0;
@@ -1033,7 +1024,7 @@ Emblem.Parser = (function() {
1033
1024
  s2 = peg$parseTERM();
1034
1025
  if (s2 !== null) {
1035
1026
  peg$reportedPos = s0;
1036
- s1 = peg$c11();
1027
+ s1 = peg$c12();
1037
1028
  if (s1 === null) {
1038
1029
  peg$currPos = s0;
1039
1030
  s0 = s1;
@@ -1057,11 +1048,11 @@ Emblem.Parser = (function() {
1057
1048
 
1058
1049
  s0 = peg$currPos;
1059
1050
  if (input.charCodeAt(peg$currPos) === 62) {
1060
- s1 = peg$c12;
1051
+ s1 = peg$c13;
1061
1052
  peg$currPos++;
1062
1053
  } else {
1063
1054
  s1 = null;
1064
- if (peg$silentFails === 0) { peg$fail(peg$c13); }
1055
+ if (peg$silentFails === 0) { peg$fail(peg$c14); }
1065
1056
  }
1066
1057
  if (s1 !== null) {
1067
1058
  s2 = peg$parse_();
@@ -1082,7 +1073,7 @@ Emblem.Parser = (function() {
1082
1073
  s7 = peg$parseTERM();
1083
1074
  if (s7 !== null) {
1084
1075
  peg$reportedPos = s0;
1085
- s1 = peg$c14(s3,s5);
1076
+ s1 = peg$c15(s3,s5);
1086
1077
  if (s1 === null) {
1087
1078
  peg$currPos = s0;
1088
1079
  s0 = s1;
@@ -1127,22 +1118,22 @@ Emblem.Parser = (function() {
1127
1118
  s0 = peg$currPos;
1128
1119
  s1 = peg$currPos;
1129
1120
  s2 = [];
1130
- if (peg$c15.test(input.charAt(peg$currPos))) {
1121
+ if (peg$c16.test(input.charAt(peg$currPos))) {
1131
1122
  s3 = input.charAt(peg$currPos);
1132
1123
  peg$currPos++;
1133
1124
  } else {
1134
1125
  s3 = null;
1135
- if (peg$silentFails === 0) { peg$fail(peg$c16); }
1126
+ if (peg$silentFails === 0) { peg$fail(peg$c17); }
1136
1127
  }
1137
1128
  if (s3 !== null) {
1138
1129
  while (s3 !== null) {
1139
1130
  s2.push(s3);
1140
- if (peg$c15.test(input.charAt(peg$currPos))) {
1131
+ if (peg$c16.test(input.charAt(peg$currPos))) {
1141
1132
  s3 = input.charAt(peg$currPos);
1142
1133
  peg$currPos++;
1143
1134
  } else {
1144
1135
  s3 = null;
1145
- if (peg$silentFails === 0) { peg$fail(peg$c16); }
1136
+ if (peg$silentFails === 0) { peg$fail(peg$c17); }
1146
1137
  }
1147
1138
  }
1148
1139
  } else {
@@ -1154,7 +1145,7 @@ Emblem.Parser = (function() {
1154
1145
  s1 = s2;
1155
1146
  if (s1 !== null) {
1156
1147
  peg$reportedPos = s0;
1157
- s1 = peg$c17(s1);
1148
+ s1 = peg$c18(s1);
1158
1149
  }
1159
1150
  if (s1 === null) {
1160
1151
  peg$currPos = s0;
@@ -1166,17 +1157,6 @@ Emblem.Parser = (function() {
1166
1157
  return s0;
1167
1158
  }
1168
1159
 
1169
- function peg$parsehtmlElement() {
1170
- var s0;
1171
-
1172
- s0 = peg$parsehtmlElementMaybeBlock();
1173
- if (s0 === null) {
1174
- s0 = peg$parsehtmlElementWithInlineContent();
1175
- }
1176
-
1177
- return s0;
1178
- }
1179
-
1180
1160
  function peg$parsemustache() {
1181
1161
  var s0, s1;
1182
1162
 
@@ -1187,7 +1167,7 @@ Emblem.Parser = (function() {
1187
1167
  }
1188
1168
  if (s1 !== null) {
1189
1169
  peg$reportedPos = s0;
1190
- s1 = peg$c18(s1);
1170
+ s1 = peg$c19(s1);
1191
1171
  }
1192
1172
  if (s1 === null) {
1193
1173
  peg$currPos = s0;
@@ -1273,7 +1253,7 @@ Emblem.Parser = (function() {
1273
1253
  }
1274
1254
  if (s3 !== null) {
1275
1255
  peg$reportedPos = s0;
1276
- s1 = peg$c11();
1256
+ s1 = peg$c12();
1277
1257
  if (s1 === null) {
1278
1258
  peg$currPos = s0;
1279
1259
  s0 = s1;
@@ -1301,17 +1281,17 @@ Emblem.Parser = (function() {
1301
1281
 
1302
1282
  s0 = peg$currPos;
1303
1283
  if (input.charCodeAt(peg$currPos) === 47) {
1304
- s1 = peg$c19;
1284
+ s1 = peg$c20;
1305
1285
  peg$currPos++;
1306
1286
  } else {
1307
1287
  s1 = null;
1308
- if (peg$silentFails === 0) { peg$fail(peg$c20); }
1288
+ if (peg$silentFails === 0) { peg$fail(peg$c21); }
1309
1289
  }
1310
1290
  if (s1 !== null) {
1311
1291
  s2 = peg$parsecommentContent();
1312
1292
  if (s2 !== null) {
1313
1293
  peg$reportedPos = s0;
1314
- s1 = peg$c11();
1294
+ s1 = peg$c12();
1315
1295
  if (s1 === null) {
1316
1296
  peg$currPos = s0;
1317
1297
  s0 = s1;
@@ -1335,7 +1315,7 @@ Emblem.Parser = (function() {
1335
1315
 
1336
1316
  s0 = peg$parsecapitalizedLineStarterMustache();
1337
1317
  if (s0 === null) {
1338
- s0 = peg$parsemustacheMaybeBlock();
1318
+ s0 = peg$parsemustacheOrBlock();
1339
1319
  }
1340
1320
 
1341
1321
  return s0;
@@ -1347,12 +1327,12 @@ Emblem.Parser = (function() {
1347
1327
  s0 = peg$currPos;
1348
1328
  s1 = peg$currPos;
1349
1329
  peg$silentFails++;
1350
- if (peg$c21.test(input.charAt(peg$currPos))) {
1330
+ if (peg$c22.test(input.charAt(peg$currPos))) {
1351
1331
  s2 = input.charAt(peg$currPos);
1352
1332
  peg$currPos++;
1353
1333
  } else {
1354
1334
  s2 = null;
1355
- if (peg$silentFails === 0) { peg$fail(peg$c22); }
1335
+ if (peg$silentFails === 0) { peg$fail(peg$c23); }
1356
1336
  }
1357
1337
  peg$silentFails--;
1358
1338
  if (s2 !== null) {
@@ -1362,10 +1342,10 @@ Emblem.Parser = (function() {
1362
1342
  s1 = peg$c0;
1363
1343
  }
1364
1344
  if (s1 !== null) {
1365
- s2 = peg$parsemustacheMaybeBlock();
1345
+ s2 = peg$parsemustacheOrBlock();
1366
1346
  if (s2 !== null) {
1367
1347
  peg$reportedPos = s0;
1368
- s1 = peg$c23(s2);
1348
+ s1 = peg$c24(s2);
1369
1349
  if (s1 === null) {
1370
1350
  peg$currPos = s0;
1371
1351
  s0 = s1;
@@ -1384,63 +1364,61 @@ Emblem.Parser = (function() {
1384
1364
  return s0;
1385
1365
  }
1386
1366
 
1387
- function peg$parsehtmlElementMaybeBlock() {
1388
- var s0, s1, s2, s3, s4, s5, s6, s7, s8;
1367
+ function peg$parsehtmlNestedTextNodes() {
1368
+ var s0, s1, s2, s3, s4, s5, s6;
1389
1369
 
1390
1370
  s0 = peg$currPos;
1391
- s1 = peg$parsehtmlTagAndOptionalAttributes();
1371
+ if (input.charCodeAt(peg$currPos) === 32) {
1372
+ s1 = peg$c25;
1373
+ peg$currPos++;
1374
+ } else {
1375
+ s1 = null;
1376
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
1377
+ }
1392
1378
  if (s1 !== null) {
1393
- s2 = peg$parse_();
1379
+ s2 = peg$parsetextNodes();
1394
1380
  if (s2 !== null) {
1395
- s3 = peg$parseTERM();
1396
- if (s3 !== null) {
1397
- s4 = peg$currPos;
1381
+ s3 = peg$currPos;
1382
+ s4 = peg$parseindentation();
1383
+ if (s4 !== null) {
1398
1384
  s5 = [];
1399
- s6 = peg$parseblankLine();
1400
- while (s6 !== null) {
1401
- s5.push(s6);
1402
- s6 = peg$parseblankLine();
1385
+ s6 = peg$parsewhitespaceableTextNodes();
1386
+ if (s6 !== null) {
1387
+ while (s6 !== null) {
1388
+ s5.push(s6);
1389
+ s6 = peg$parsewhitespaceableTextNodes();
1390
+ }
1391
+ } else {
1392
+ s5 = peg$c0;
1403
1393
  }
1404
1394
  if (s5 !== null) {
1405
- s6 = peg$parseindentation();
1395
+ s6 = peg$parseDEDENT();
1406
1396
  if (s6 !== null) {
1407
- s7 = peg$parsecontent();
1408
- if (s7 !== null) {
1409
- s8 = peg$parseDEDENT();
1410
- if (s8 !== null) {
1411
- s5 = [s5, s6, s7, s8];
1412
- s4 = s5;
1413
- } else {
1414
- peg$currPos = s4;
1415
- s4 = peg$c0;
1416
- }
1417
- } else {
1418
- peg$currPos = s4;
1419
- s4 = peg$c0;
1420
- }
1397
+ s4 = [s4, s5, s6];
1398
+ s3 = s4;
1421
1399
  } else {
1422
- peg$currPos = s4;
1423
- s4 = peg$c0;
1400
+ peg$currPos = s3;
1401
+ s3 = peg$c0;
1424
1402
  }
1425
1403
  } else {
1426
- peg$currPos = s4;
1427
- s4 = peg$c0;
1428
- }
1429
- if (s4 === null) {
1430
- s4 = peg$c1;
1404
+ peg$currPos = s3;
1405
+ s3 = peg$c0;
1431
1406
  }
1432
- if (s4 !== null) {
1433
- peg$reportedPos = s0;
1434
- s1 = peg$c24(s1,s4);
1435
- if (s1 === null) {
1436
- peg$currPos = s0;
1437
- s0 = s1;
1438
- } else {
1439
- s0 = s1;
1440
- }
1441
- } else {
1407
+ } else {
1408
+ peg$currPos = s3;
1409
+ s3 = peg$c0;
1410
+ }
1411
+ if (s3 === null) {
1412
+ s3 = peg$c1;
1413
+ }
1414
+ if (s3 !== null) {
1415
+ peg$reportedPos = s0;
1416
+ s1 = peg$c27(s2,s3);
1417
+ if (s1 === null) {
1442
1418
  peg$currPos = s0;
1443
- s0 = peg$c0;
1419
+ s0 = s1;
1420
+ } else {
1421
+ s0 = s1;
1444
1422
  }
1445
1423
  } else {
1446
1424
  peg$currPos = s0;
@@ -1458,76 +1436,25 @@ Emblem.Parser = (function() {
1458
1436
  return s0;
1459
1437
  }
1460
1438
 
1461
- function peg$parsehtmlElementWithInlineContent() {
1462
- var s0, s1, s2, s3, s4, s5, s6, s7;
1439
+ function peg$parseindentedContent() {
1440
+ var s0, s1, s2, s3, s4;
1463
1441
 
1464
1442
  s0 = peg$currPos;
1465
- s1 = peg$parsehtmlTagAndOptionalAttributes();
1443
+ s1 = [];
1444
+ s2 = peg$parseblankLine();
1445
+ while (s2 !== null) {
1446
+ s1.push(s2);
1447
+ s2 = peg$parseblankLine();
1448
+ }
1466
1449
  if (s1 !== null) {
1467
- if (input.charCodeAt(peg$currPos) === 32) {
1468
- s2 = peg$c25;
1469
- peg$currPos++;
1470
- } else {
1471
- s2 = null;
1472
- if (peg$silentFails === 0) { peg$fail(peg$c26); }
1473
- }
1474
- if (s2 === null) {
1475
- s2 = peg$currPos;
1476
- peg$silentFails++;
1477
- if (input.charCodeAt(peg$currPos) === 61) {
1478
- s3 = peg$c4;
1479
- peg$currPos++;
1480
- } else {
1481
- s3 = null;
1482
- if (peg$silentFails === 0) { peg$fail(peg$c5); }
1483
- }
1484
- peg$silentFails--;
1485
- if (s3 !== null) {
1486
- peg$currPos = s2;
1487
- s2 = peg$c1;
1488
- } else {
1489
- s2 = peg$c0;
1490
- }
1491
- }
1450
+ s2 = peg$parseindentation();
1492
1451
  if (s2 !== null) {
1493
- s3 = peg$parsehtmlInlineContent();
1452
+ s3 = peg$parsecontent();
1494
1453
  if (s3 !== null) {
1495
- s4 = peg$currPos;
1496
- s5 = peg$parseindentation();
1497
- if (s5 !== null) {
1498
- s6 = [];
1499
- s7 = peg$parsewhitespaceableTextNodes();
1500
- if (s7 !== null) {
1501
- while (s7 !== null) {
1502
- s6.push(s7);
1503
- s7 = peg$parsewhitespaceableTextNodes();
1504
- }
1505
- } else {
1506
- s6 = peg$c0;
1507
- }
1508
- if (s6 !== null) {
1509
- s7 = peg$parseDEDENT();
1510
- if (s7 !== null) {
1511
- s5 = [s5, s6, s7];
1512
- s4 = s5;
1513
- } else {
1514
- peg$currPos = s4;
1515
- s4 = peg$c0;
1516
- }
1517
- } else {
1518
- peg$currPos = s4;
1519
- s4 = peg$c0;
1520
- }
1521
- } else {
1522
- peg$currPos = s4;
1523
- s4 = peg$c0;
1524
- }
1525
- if (s4 === null) {
1526
- s4 = peg$c1;
1527
- }
1454
+ s4 = peg$parseDEDENT();
1528
1455
  if (s4 !== null) {
1529
1456
  peg$reportedPos = s0;
1530
- s1 = peg$c27(s1,s3,s4);
1457
+ s1 = peg$c28(s3);
1531
1458
  if (s1 === null) {
1532
1459
  peg$currPos = s0;
1533
1460
  s0 = s1;
@@ -1554,56 +1481,45 @@ Emblem.Parser = (function() {
1554
1481
  return s0;
1555
1482
  }
1556
1483
 
1557
- function peg$parsemustacheMaybeBlock() {
1558
- var s0, s1, s2, s3, s4, s5, s6, s7, s8;
1484
+ function peg$parsehtmlTerminator() {
1485
+ var s0, s1, s2, s3;
1559
1486
 
1560
- s0 = peg$parsemustacheInlineBlock();
1487
+ s0 = peg$parsecolonContent();
1561
1488
  if (s0 === null) {
1562
1489
  s0 = peg$currPos;
1563
- s1 = peg$parseinMustache();
1490
+ s1 = peg$parse_();
1564
1491
  if (s1 !== null) {
1565
- s2 = peg$parse_();
1492
+ s2 = peg$parseexplicitMustache();
1566
1493
  if (s2 !== null) {
1567
- s3 = peg$parseTERM();
1568
- if (s3 !== null) {
1569
- s4 = peg$currPos;
1570
- s5 = [];
1571
- s6 = peg$parseblankLine();
1572
- while (s6 !== null) {
1573
- s5.push(s6);
1574
- s6 = peg$parseblankLine();
1575
- }
1576
- if (s5 !== null) {
1577
- s6 = peg$parseindentation();
1578
- if (s6 !== null) {
1579
- s7 = peg$parseinvertibleContent();
1580
- if (s7 !== null) {
1581
- s8 = peg$parseDEDENT();
1582
- if (s8 !== null) {
1583
- s5 = [s5, s6, s7, s8];
1584
- s4 = s5;
1585
- } else {
1586
- peg$currPos = s4;
1587
- s4 = peg$c0;
1588
- }
1589
- } else {
1590
- peg$currPos = s4;
1591
- s4 = peg$c0;
1592
- }
1593
- } else {
1594
- peg$currPos = s4;
1595
- s4 = peg$c0;
1596
- }
1597
- } else {
1598
- peg$currPos = s4;
1599
- s4 = peg$c0;
1600
- }
1601
- if (s4 === null) {
1602
- s4 = peg$c1;
1494
+ peg$reportedPos = s0;
1495
+ s1 = peg$c29(s2);
1496
+ if (s1 === null) {
1497
+ peg$currPos = s0;
1498
+ s0 = s1;
1499
+ } else {
1500
+ s0 = s1;
1501
+ }
1502
+ } else {
1503
+ peg$currPos = s0;
1504
+ s0 = peg$c0;
1505
+ }
1506
+ } else {
1507
+ peg$currPos = s0;
1508
+ s0 = peg$c0;
1509
+ }
1510
+ if (s0 === null) {
1511
+ s0 = peg$currPos;
1512
+ s1 = peg$parse_();
1513
+ if (s1 !== null) {
1514
+ s2 = peg$parseTERM();
1515
+ if (s2 !== null) {
1516
+ s3 = peg$parseindentedContent();
1517
+ if (s3 === null) {
1518
+ s3 = peg$c1;
1603
1519
  }
1604
- if (s4 !== null) {
1520
+ if (s3 !== null) {
1605
1521
  peg$reportedPos = s0;
1606
- s1 = peg$c28(s1,s4);
1522
+ s1 = peg$c28(s3);
1607
1523
  if (s1 === null) {
1608
1524
  peg$currPos = s0;
1609
1525
  s0 = s1;
@@ -1622,16 +1538,44 @@ Emblem.Parser = (function() {
1622
1538
  peg$currPos = s0;
1623
1539
  s0 = peg$c0;
1624
1540
  }
1541
+ if (s0 === null) {
1542
+ s0 = peg$parsehtmlNestedTextNodes();
1543
+ }
1544
+ }
1545
+ }
1546
+
1547
+ return s0;
1548
+ }
1549
+
1550
+ function peg$parsehtmlElement() {
1551
+ var s0, s1, s2;
1552
+
1553
+ s0 = peg$currPos;
1554
+ s1 = peg$parseinHtmlTag();
1555
+ if (s1 !== null) {
1556
+ s2 = peg$parsehtmlTerminator();
1557
+ if (s2 !== null) {
1558
+ peg$reportedPos = s0;
1559
+ s1 = peg$c30(s1,s2);
1560
+ if (s1 === null) {
1561
+ peg$currPos = s0;
1562
+ s0 = s1;
1563
+ } else {
1564
+ s0 = s1;
1565
+ }
1625
1566
  } else {
1626
1567
  peg$currPos = s0;
1627
1568
  s0 = peg$c0;
1628
1569
  }
1570
+ } else {
1571
+ peg$currPos = s0;
1572
+ s0 = peg$c0;
1629
1573
  }
1630
1574
 
1631
1575
  return s0;
1632
1576
  }
1633
1577
 
1634
- function peg$parsemustacheInlineBlock() {
1578
+ function peg$parsemustacheOrBlock() {
1635
1579
  var s0, s1, s2, s3;
1636
1580
 
1637
1581
  s0 = peg$currPos;
@@ -1639,10 +1583,10 @@ Emblem.Parser = (function() {
1639
1583
  if (s1 !== null) {
1640
1584
  s2 = peg$parse_();
1641
1585
  if (s2 !== null) {
1642
- s3 = peg$parsetextLine();
1586
+ s3 = peg$parsemustacheNestedContent();
1643
1587
  if (s3 !== null) {
1644
1588
  peg$reportedPos = s0;
1645
- s1 = peg$c29(s1,s3);
1589
+ s1 = peg$c31(s1,s3);
1646
1590
  if (s1 === null) {
1647
1591
  peg$currPos = s0;
1648
1592
  s0 = s1;
@@ -1665,16 +1609,210 @@ Emblem.Parser = (function() {
1665
1609
  return s0;
1666
1610
  }
1667
1611
 
1612
+ function peg$parseinvertibleContent() {
1613
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
1614
+
1615
+ s0 = peg$currPos;
1616
+ s1 = peg$parsecontent();
1617
+ if (s1 !== null) {
1618
+ s2 = peg$currPos;
1619
+ s3 = peg$parseDEDENT();
1620
+ if (s3 !== null) {
1621
+ s4 = peg$parseelse();
1622
+ if (s4 !== null) {
1623
+ s5 = peg$parse_();
1624
+ if (s5 !== null) {
1625
+ s6 = peg$parseTERM();
1626
+ if (s6 !== null) {
1627
+ s7 = peg$parseindentation();
1628
+ if (s7 !== null) {
1629
+ s8 = peg$parsecontent();
1630
+ if (s8 !== null) {
1631
+ peg$reportedPos = s2;
1632
+ s3 = peg$c2(s8);
1633
+ if (s3 === null) {
1634
+ peg$currPos = s2;
1635
+ s2 = s3;
1636
+ } else {
1637
+ s2 = s3;
1638
+ }
1639
+ } else {
1640
+ peg$currPos = s2;
1641
+ s2 = peg$c0;
1642
+ }
1643
+ } else {
1644
+ peg$currPos = s2;
1645
+ s2 = peg$c0;
1646
+ }
1647
+ } else {
1648
+ peg$currPos = s2;
1649
+ s2 = peg$c0;
1650
+ }
1651
+ } else {
1652
+ peg$currPos = s2;
1653
+ s2 = peg$c0;
1654
+ }
1655
+ } else {
1656
+ peg$currPos = s2;
1657
+ s2 = peg$c0;
1658
+ }
1659
+ } else {
1660
+ peg$currPos = s2;
1661
+ s2 = peg$c0;
1662
+ }
1663
+ if (s2 === null) {
1664
+ s2 = peg$c1;
1665
+ }
1666
+ if (s2 !== null) {
1667
+ peg$reportedPos = s0;
1668
+ s1 = peg$c3(s1,s2);
1669
+ if (s1 === null) {
1670
+ peg$currPos = s0;
1671
+ s0 = s1;
1672
+ } else {
1673
+ s0 = s1;
1674
+ }
1675
+ } else {
1676
+ peg$currPos = s0;
1677
+ s0 = peg$c0;
1678
+ }
1679
+ } else {
1680
+ peg$currPos = s0;
1681
+ s0 = peg$c0;
1682
+ }
1683
+
1684
+ return s0;
1685
+ }
1686
+
1687
+ function peg$parsecolonContent() {
1688
+ var s0, s1, s2, s3;
1689
+
1690
+ s0 = peg$currPos;
1691
+ if (input.substr(peg$currPos, 2) === peg$c32) {
1692
+ s1 = peg$c32;
1693
+ peg$currPos += 2;
1694
+ } else {
1695
+ s1 = null;
1696
+ if (peg$silentFails === 0) { peg$fail(peg$c33); }
1697
+ }
1698
+ if (s1 !== null) {
1699
+ s2 = peg$parse_();
1700
+ if (s2 !== null) {
1701
+ s3 = peg$parsecontentStatement();
1702
+ if (s3 !== null) {
1703
+ peg$reportedPos = s0;
1704
+ s1 = peg$c28(s3);
1705
+ if (s1 === null) {
1706
+ peg$currPos = s0;
1707
+ s0 = s1;
1708
+ } else {
1709
+ s0 = s1;
1710
+ }
1711
+ } else {
1712
+ peg$currPos = s0;
1713
+ s0 = peg$c0;
1714
+ }
1715
+ } else {
1716
+ peg$currPos = s0;
1717
+ s0 = peg$c0;
1718
+ }
1719
+ } else {
1720
+ peg$currPos = s0;
1721
+ s0 = peg$c0;
1722
+ }
1723
+
1724
+ return s0;
1725
+ }
1726
+
1727
+ function peg$parsemustacheNestedContent() {
1728
+ var s0, s1, s2, s3, s4, s5, s6;
1729
+
1730
+ s0 = peg$currPos;
1731
+ s1 = peg$parsecolonContent();
1732
+ if (s1 === null) {
1733
+ s1 = peg$parsetextLine();
1734
+ }
1735
+ if (s1 !== null) {
1736
+ peg$reportedPos = s0;
1737
+ s1 = peg$c34(s1);
1738
+ }
1739
+ if (s1 === null) {
1740
+ peg$currPos = s0;
1741
+ s0 = s1;
1742
+ } else {
1743
+ s0 = s1;
1744
+ }
1745
+ if (s0 === null) {
1746
+ s0 = peg$currPos;
1747
+ s1 = peg$parseTERM();
1748
+ if (s1 !== null) {
1749
+ s2 = peg$currPos;
1750
+ s3 = [];
1751
+ s4 = peg$parseblankLine();
1752
+ while (s4 !== null) {
1753
+ s3.push(s4);
1754
+ s4 = peg$parseblankLine();
1755
+ }
1756
+ if (s3 !== null) {
1757
+ s4 = peg$parseindentation();
1758
+ if (s4 !== null) {
1759
+ s5 = peg$parseinvertibleContent();
1760
+ if (s5 !== null) {
1761
+ s6 = peg$parseDEDENT();
1762
+ if (s6 !== null) {
1763
+ s3 = [s3, s4, s5, s6];
1764
+ s2 = s3;
1765
+ } else {
1766
+ peg$currPos = s2;
1767
+ s2 = peg$c0;
1768
+ }
1769
+ } else {
1770
+ peg$currPos = s2;
1771
+ s2 = peg$c0;
1772
+ }
1773
+ } else {
1774
+ peg$currPos = s2;
1775
+ s2 = peg$c0;
1776
+ }
1777
+ } else {
1778
+ peg$currPos = s2;
1779
+ s2 = peg$c0;
1780
+ }
1781
+ if (s2 === null) {
1782
+ s2 = peg$c1;
1783
+ }
1784
+ if (s2 !== null) {
1785
+ peg$reportedPos = s0;
1786
+ s1 = peg$c35(s2);
1787
+ if (s1 === null) {
1788
+ peg$currPos = s0;
1789
+ s0 = s1;
1790
+ } else {
1791
+ s0 = s1;
1792
+ }
1793
+ } else {
1794
+ peg$currPos = s0;
1795
+ s0 = peg$c0;
1796
+ }
1797
+ } else {
1798
+ peg$currPos = s0;
1799
+ s0 = peg$c0;
1800
+ }
1801
+ }
1802
+
1803
+ return s0;
1804
+ }
1805
+
1668
1806
  function peg$parseexplicitMustache() {
1669
1807
  var s0, s1, s2;
1670
1808
 
1671
1809
  s0 = peg$currPos;
1672
1810
  s1 = peg$parseequalSign();
1673
1811
  if (s1 !== null) {
1674
- s2 = peg$parsemustacheMaybeBlock();
1812
+ s2 = peg$parsemustacheOrBlock();
1675
1813
  if (s2 !== null) {
1676
1814
  peg$reportedPos = s0;
1677
- s1 = peg$c30(s1,s2);
1815
+ s1 = peg$c36(s1,s2);
1678
1816
  if (s1 === null) {
1679
1817
  peg$currPos = s0;
1680
1818
  s0 = s1;
@@ -1698,11 +1836,11 @@ Emblem.Parser = (function() {
1698
1836
 
1699
1837
  s0 = peg$currPos;
1700
1838
  if (input.charCodeAt(peg$currPos) === 62) {
1701
- s1 = peg$c12;
1839
+ s1 = peg$c13;
1702
1840
  peg$currPos++;
1703
1841
  } else {
1704
1842
  s1 = null;
1705
- if (peg$silentFails === 0) { peg$fail(peg$c13); }
1843
+ if (peg$silentFails === 0) { peg$fail(peg$c14); }
1706
1844
  }
1707
1845
  if (s1 === null) {
1708
1846
  s1 = peg$c1;
@@ -1725,7 +1863,7 @@ Emblem.Parser = (function() {
1725
1863
  }
1726
1864
  if (s5 !== null) {
1727
1865
  peg$reportedPos = s0;
1728
- s1 = peg$c31(s1,s3,s4,s5);
1866
+ s1 = peg$c37(s1,s3,s4,s5);
1729
1867
  if (s1 === null) {
1730
1868
  peg$currPos = s0;
1731
1869
  s0 = s1;
@@ -1763,7 +1901,7 @@ Emblem.Parser = (function() {
1763
1901
  s1 = peg$parsetagNameShorthand();
1764
1902
  if (s1 !== null) {
1765
1903
  peg$reportedPos = s0;
1766
- s1 = peg$c32(s1);
1904
+ s1 = peg$c38(s1);
1767
1905
  }
1768
1906
  if (s1 === null) {
1769
1907
  peg$currPos = s0;
@@ -1776,7 +1914,7 @@ Emblem.Parser = (function() {
1776
1914
  s1 = peg$parseidShorthand();
1777
1915
  if (s1 !== null) {
1778
1916
  peg$reportedPos = s0;
1779
- s1 = peg$c33(s1);
1917
+ s1 = peg$c39(s1);
1780
1918
  }
1781
1919
  if (s1 === null) {
1782
1920
  peg$currPos = s0;
@@ -1789,7 +1927,7 @@ Emblem.Parser = (function() {
1789
1927
  s1 = peg$parseclassShorthand();
1790
1928
  if (s1 !== null) {
1791
1929
  peg$reportedPos = s0;
1792
- s1 = peg$c34(s1);
1930
+ s1 = peg$c40(s1);
1793
1931
  }
1794
1932
  if (s1 === null) {
1795
1933
  peg$currPos = s0;
@@ -1828,7 +1966,7 @@ Emblem.Parser = (function() {
1828
1966
  }
1829
1967
  if (s2 !== null) {
1830
1968
  peg$reportedPos = s0;
1831
- s1 = peg$c35(s1,s2);
1969
+ s1 = peg$c41(s1,s2);
1832
1970
  if (s1 === null) {
1833
1971
  peg$currPos = s0;
1834
1972
  s0 = s1;
@@ -1863,7 +2001,7 @@ Emblem.Parser = (function() {
1863
2001
  }
1864
2002
  if (s1 !== null) {
1865
2003
  peg$reportedPos = s0;
1866
- s1 = peg$c36(s1);
2004
+ s1 = peg$c42(s1);
1867
2005
  }
1868
2006
  if (s1 === null) {
1869
2007
  peg$currPos = s0;
@@ -1887,7 +2025,7 @@ Emblem.Parser = (function() {
1887
2025
  }
1888
2026
  if (s2 !== null) {
1889
2027
  peg$reportedPos = s0;
1890
- s1 = peg$c37(s2);
2028
+ s1 = peg$c43(s2);
1891
2029
  if (s1 === null) {
1892
2030
  peg$currPos = s0;
1893
2031
  s0 = s1;
@@ -1922,7 +2060,7 @@ Emblem.Parser = (function() {
1922
2060
  }
1923
2061
  if (s1 !== null) {
1924
2062
  peg$reportedPos = s0;
1925
- s1 = peg$c38(s1);
2063
+ s1 = peg$c44(s1);
1926
2064
  }
1927
2065
  if (s1 === null) {
1928
2066
  peg$currPos = s0;
@@ -1938,41 +2076,41 @@ Emblem.Parser = (function() {
1938
2076
  var s0, s1, s2, s3;
1939
2077
 
1940
2078
  peg$silentFails++;
1941
- if (input.substr(peg$currPos, 2) === peg$c40) {
1942
- s0 = peg$c40;
2079
+ if (input.substr(peg$currPos, 2) === peg$c46) {
2080
+ s0 = peg$c46;
1943
2081
  peg$currPos += 2;
1944
2082
  } else {
1945
2083
  s0 = null;
1946
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
2084
+ if (peg$silentFails === 0) { peg$fail(peg$c47); }
1947
2085
  }
1948
2086
  if (s0 === null) {
1949
2087
  if (input.charCodeAt(peg$currPos) === 46) {
1950
- s0 = peg$c42;
2088
+ s0 = peg$c48;
1951
2089
  peg$currPos++;
1952
2090
  } else {
1953
2091
  s0 = null;
1954
- if (peg$silentFails === 0) { peg$fail(peg$c43); }
2092
+ if (peg$silentFails === 0) { peg$fail(peg$c49); }
1955
2093
  }
1956
2094
  if (s0 === null) {
1957
2095
  s0 = peg$currPos;
1958
2096
  s1 = peg$currPos;
1959
2097
  s2 = [];
1960
- if (peg$c44.test(input.charAt(peg$currPos))) {
2098
+ if (peg$c50.test(input.charAt(peg$currPos))) {
1961
2099
  s3 = input.charAt(peg$currPos);
1962
2100
  peg$currPos++;
1963
2101
  } else {
1964
2102
  s3 = null;
1965
- if (peg$silentFails === 0) { peg$fail(peg$c45); }
2103
+ if (peg$silentFails === 0) { peg$fail(peg$c51); }
1966
2104
  }
1967
2105
  if (s3 !== null) {
1968
2106
  while (s3 !== null) {
1969
2107
  s2.push(s3);
1970
- if (peg$c44.test(input.charAt(peg$currPos))) {
2108
+ if (peg$c50.test(input.charAt(peg$currPos))) {
1971
2109
  s3 = input.charAt(peg$currPos);
1972
2110
  peg$currPos++;
1973
2111
  } else {
1974
2112
  s3 = null;
1975
- if (peg$silentFails === 0) { peg$fail(peg$c45); }
2113
+ if (peg$silentFails === 0) { peg$fail(peg$c51); }
1976
2114
  }
1977
2115
  }
1978
2116
  } else {
@@ -2001,7 +2139,7 @@ Emblem.Parser = (function() {
2001
2139
  }
2002
2140
  if (s2 !== null) {
2003
2141
  peg$reportedPos = s0;
2004
- s1 = peg$c46(s1);
2142
+ s1 = peg$c52(s1);
2005
2143
  if (s1 === null) {
2006
2144
  peg$currPos = s0;
2007
2145
  s0 = s1;
@@ -2021,7 +2159,7 @@ Emblem.Parser = (function() {
2021
2159
  peg$silentFails--;
2022
2160
  if (s0 === null) {
2023
2161
  s1 = null;
2024
- if (peg$silentFails === 0) { peg$fail(peg$c39); }
2162
+ if (peg$silentFails === 0) { peg$fail(peg$c45); }
2025
2163
  }
2026
2164
 
2027
2165
  return s0;
@@ -2035,7 +2173,7 @@ Emblem.Parser = (function() {
2035
2173
  peg$silentFails--;
2036
2174
  if (s0 === null) {
2037
2175
  s1 = null;
2038
- if (peg$silentFails === 0) { peg$fail(peg$c47); }
2176
+ if (peg$silentFails === 0) { peg$fail(peg$c53); }
2039
2177
  }
2040
2178
 
2041
2179
  return s0;
@@ -2163,7 +2301,7 @@ Emblem.Parser = (function() {
2163
2301
  }
2164
2302
  if (s2 !== null) {
2165
2303
  peg$reportedPos = s0;
2166
- s1 = peg$c48(s2);
2304
+ s1 = peg$c54(s2);
2167
2305
  if (s1 === null) {
2168
2306
  peg$currPos = s0;
2169
2307
  s0 = s1;
@@ -2212,7 +2350,7 @@ Emblem.Parser = (function() {
2212
2350
  s5 = peg$parsepathIdent();
2213
2351
  if (s5 !== null) {
2214
2352
  peg$reportedPos = s3;
2215
- s4 = peg$c49(s5);
2353
+ s4 = peg$c55(s5);
2216
2354
  if (s4 === null) {
2217
2355
  peg$currPos = s3;
2218
2356
  s3 = s4;
@@ -2235,7 +2373,7 @@ Emblem.Parser = (function() {
2235
2373
  s5 = peg$parsepathIdent();
2236
2374
  if (s5 !== null) {
2237
2375
  peg$reportedPos = s3;
2238
- s4 = peg$c49(s5);
2376
+ s4 = peg$c55(s5);
2239
2377
  if (s4 === null) {
2240
2378
  peg$currPos = s3;
2241
2379
  s3 = s4;
@@ -2253,7 +2391,7 @@ Emblem.Parser = (function() {
2253
2391
  }
2254
2392
  if (s2 !== null) {
2255
2393
  peg$reportedPos = s0;
2256
- s1 = peg$c50(s1,s2);
2394
+ s1 = peg$c56(s1,s2);
2257
2395
  if (s1 === null) {
2258
2396
  peg$currPos = s0;
2259
2397
  s0 = s1;
@@ -2276,17 +2414,17 @@ Emblem.Parser = (function() {
2276
2414
  var s0, s1;
2277
2415
 
2278
2416
  peg$silentFails++;
2279
- if (peg$c52.test(input.charAt(peg$currPos))) {
2417
+ if (peg$c58.test(input.charAt(peg$currPos))) {
2280
2418
  s0 = input.charAt(peg$currPos);
2281
2419
  peg$currPos++;
2282
2420
  } else {
2283
2421
  s0 = null;
2284
- if (peg$silentFails === 0) { peg$fail(peg$c53); }
2422
+ if (peg$silentFails === 0) { peg$fail(peg$c59); }
2285
2423
  }
2286
2424
  peg$silentFails--;
2287
2425
  if (s0 === null) {
2288
2426
  s1 = null;
2289
- if (peg$silentFails === 0) { peg$fail(peg$c51); }
2427
+ if (peg$silentFails === 0) { peg$fail(peg$c57); }
2290
2428
  }
2291
2429
 
2292
2430
  return s0;
@@ -2299,7 +2437,7 @@ Emblem.Parser = (function() {
2299
2437
  s1 = peg$parsepath();
2300
2438
  if (s1 !== null) {
2301
2439
  peg$reportedPos = s0;
2302
- s1 = peg$c54(s1);
2440
+ s1 = peg$c60(s1);
2303
2441
  }
2304
2442
  if (s1 === null) {
2305
2443
  peg$currPos = s0;
@@ -2318,7 +2456,7 @@ Emblem.Parser = (function() {
2318
2456
  s1 = peg$parsestring();
2319
2457
  if (s1 !== null) {
2320
2458
  peg$reportedPos = s0;
2321
- s1 = peg$c55(s1);
2459
+ s1 = peg$c61(s1);
2322
2460
  }
2323
2461
  if (s1 === null) {
2324
2462
  peg$currPos = s0;
@@ -2337,7 +2475,7 @@ Emblem.Parser = (function() {
2337
2475
  s1 = peg$parseinteger();
2338
2476
  if (s1 !== null) {
2339
2477
  peg$reportedPos = s0;
2340
- s1 = peg$c56(s1);
2478
+ s1 = peg$c62(s1);
2341
2479
  }
2342
2480
  if (s1 === null) {
2343
2481
  peg$currPos = s0;
@@ -2356,7 +2494,7 @@ Emblem.Parser = (function() {
2356
2494
  s1 = peg$parseboolean();
2357
2495
  if (s1 !== null) {
2358
2496
  peg$reportedPos = s0;
2359
- s1 = peg$c57(s1);
2497
+ s1 = peg$c63(s1);
2360
2498
  }
2361
2499
  if (s1 === null) {
2362
2500
  peg$currPos = s0;
@@ -2372,26 +2510,26 @@ Emblem.Parser = (function() {
2372
2510
  var s0, s1;
2373
2511
 
2374
2512
  peg$silentFails++;
2375
- if (input.substr(peg$currPos, 4) === peg$c59) {
2376
- s0 = peg$c59;
2513
+ if (input.substr(peg$currPos, 4) === peg$c65) {
2514
+ s0 = peg$c65;
2377
2515
  peg$currPos += 4;
2378
2516
  } else {
2379
2517
  s0 = null;
2380
- if (peg$silentFails === 0) { peg$fail(peg$c60); }
2518
+ if (peg$silentFails === 0) { peg$fail(peg$c66); }
2381
2519
  }
2382
2520
  if (s0 === null) {
2383
- if (input.substr(peg$currPos, 5) === peg$c61) {
2384
- s0 = peg$c61;
2521
+ if (input.substr(peg$currPos, 5) === peg$c67) {
2522
+ s0 = peg$c67;
2385
2523
  peg$currPos += 5;
2386
2524
  } else {
2387
2525
  s0 = null;
2388
- if (peg$silentFails === 0) { peg$fail(peg$c62); }
2526
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
2389
2527
  }
2390
2528
  }
2391
2529
  peg$silentFails--;
2392
2530
  if (s0 === null) {
2393
2531
  s1 = null;
2394
- if (peg$silentFails === 0) { peg$fail(peg$c58); }
2532
+ if (peg$silentFails === 0) { peg$fail(peg$c64); }
2395
2533
  }
2396
2534
 
2397
2535
  return s0;
@@ -2404,22 +2542,22 @@ Emblem.Parser = (function() {
2404
2542
  s0 = peg$currPos;
2405
2543
  s1 = peg$currPos;
2406
2544
  s2 = [];
2407
- if (peg$c64.test(input.charAt(peg$currPos))) {
2545
+ if (peg$c70.test(input.charAt(peg$currPos))) {
2408
2546
  s3 = input.charAt(peg$currPos);
2409
2547
  peg$currPos++;
2410
2548
  } else {
2411
2549
  s3 = null;
2412
- if (peg$silentFails === 0) { peg$fail(peg$c65); }
2550
+ if (peg$silentFails === 0) { peg$fail(peg$c71); }
2413
2551
  }
2414
2552
  if (s3 !== null) {
2415
2553
  while (s3 !== null) {
2416
2554
  s2.push(s3);
2417
- if (peg$c64.test(input.charAt(peg$currPos))) {
2555
+ if (peg$c70.test(input.charAt(peg$currPos))) {
2418
2556
  s3 = input.charAt(peg$currPos);
2419
2557
  peg$currPos++;
2420
2558
  } else {
2421
2559
  s3 = null;
2422
- if (peg$silentFails === 0) { peg$fail(peg$c65); }
2560
+ if (peg$silentFails === 0) { peg$fail(peg$c71); }
2423
2561
  }
2424
2562
  }
2425
2563
  } else {
@@ -2431,7 +2569,7 @@ Emblem.Parser = (function() {
2431
2569
  s1 = s2;
2432
2570
  if (s1 !== null) {
2433
2571
  peg$reportedPos = s0;
2434
- s1 = peg$c66(s1);
2572
+ s1 = peg$c72(s1);
2435
2573
  }
2436
2574
  if (s1 === null) {
2437
2575
  peg$currPos = s0;
@@ -2442,7 +2580,7 @@ Emblem.Parser = (function() {
2442
2580
  peg$silentFails--;
2443
2581
  if (s0 === null) {
2444
2582
  s1 = null;
2445
- if (peg$silentFails === 0) { peg$fail(peg$c63); }
2583
+ if (peg$silentFails === 0) { peg$fail(peg$c69); }
2446
2584
  }
2447
2585
 
2448
2586
  return s0;
@@ -2454,21 +2592,21 @@ Emblem.Parser = (function() {
2454
2592
  s0 = peg$currPos;
2455
2593
  s1 = peg$currPos;
2456
2594
  if (input.charCodeAt(peg$currPos) === 34) {
2457
- s2 = peg$c67;
2595
+ s2 = peg$c73;
2458
2596
  peg$currPos++;
2459
2597
  } else {
2460
2598
  s2 = null;
2461
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
2599
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
2462
2600
  }
2463
2601
  if (s2 !== null) {
2464
2602
  s3 = peg$parsehashDoubleQuoteStringValue();
2465
2603
  if (s3 !== null) {
2466
2604
  if (input.charCodeAt(peg$currPos) === 34) {
2467
- s4 = peg$c67;
2605
+ s4 = peg$c73;
2468
2606
  peg$currPos++;
2469
2607
  } else {
2470
2608
  s4 = null;
2471
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
2609
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
2472
2610
  }
2473
2611
  if (s4 !== null) {
2474
2612
  s2 = [s2, s3, s4];
@@ -2488,21 +2626,21 @@ Emblem.Parser = (function() {
2488
2626
  if (s1 === null) {
2489
2627
  s1 = peg$currPos;
2490
2628
  if (input.charCodeAt(peg$currPos) === 39) {
2491
- s2 = peg$c69;
2629
+ s2 = peg$c75;
2492
2630
  peg$currPos++;
2493
2631
  } else {
2494
2632
  s2 = null;
2495
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
2633
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
2496
2634
  }
2497
2635
  if (s2 !== null) {
2498
2636
  s3 = peg$parsehashSingleQuoteStringValue();
2499
2637
  if (s3 !== null) {
2500
2638
  if (input.charCodeAt(peg$currPos) === 39) {
2501
- s4 = peg$c69;
2639
+ s4 = peg$c75;
2502
2640
  peg$currPos++;
2503
2641
  } else {
2504
2642
  s4 = null;
2505
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
2643
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
2506
2644
  }
2507
2645
  if (s4 !== null) {
2508
2646
  s2 = [s2, s3, s4];
@@ -2522,7 +2660,7 @@ Emblem.Parser = (function() {
2522
2660
  }
2523
2661
  if (s1 !== null) {
2524
2662
  peg$reportedPos = s0;
2525
- s1 = peg$c71(s1);
2663
+ s1 = peg$c77(s1);
2526
2664
  }
2527
2665
  if (s1 === null) {
2528
2666
  peg$currPos = s0;
@@ -2551,12 +2689,12 @@ Emblem.Parser = (function() {
2551
2689
  s3 = peg$c0;
2552
2690
  }
2553
2691
  if (s3 !== null) {
2554
- if (peg$c72.test(input.charAt(peg$currPos))) {
2692
+ if (peg$c78.test(input.charAt(peg$currPos))) {
2555
2693
  s4 = input.charAt(peg$currPos);
2556
2694
  peg$currPos++;
2557
2695
  } else {
2558
2696
  s4 = null;
2559
- if (peg$silentFails === 0) { peg$fail(peg$c73); }
2697
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
2560
2698
  }
2561
2699
  if (s4 !== null) {
2562
2700
  s3 = [s3, s4];
@@ -2583,12 +2721,12 @@ Emblem.Parser = (function() {
2583
2721
  s3 = peg$c0;
2584
2722
  }
2585
2723
  if (s3 !== null) {
2586
- if (peg$c72.test(input.charAt(peg$currPos))) {
2724
+ if (peg$c78.test(input.charAt(peg$currPos))) {
2587
2725
  s4 = input.charAt(peg$currPos);
2588
2726
  peg$currPos++;
2589
2727
  } else {
2590
2728
  s4 = null;
2591
- if (peg$silentFails === 0) { peg$fail(peg$c73); }
2729
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
2592
2730
  }
2593
2731
  if (s4 !== null) {
2594
2732
  s3 = [s3, s4];
@@ -2627,12 +2765,12 @@ Emblem.Parser = (function() {
2627
2765
  s3 = peg$c0;
2628
2766
  }
2629
2767
  if (s3 !== null) {
2630
- if (peg$c74.test(input.charAt(peg$currPos))) {
2768
+ if (peg$c80.test(input.charAt(peg$currPos))) {
2631
2769
  s4 = input.charAt(peg$currPos);
2632
2770
  peg$currPos++;
2633
2771
  } else {
2634
2772
  s4 = null;
2635
- if (peg$silentFails === 0) { peg$fail(peg$c75); }
2773
+ if (peg$silentFails === 0) { peg$fail(peg$c81); }
2636
2774
  }
2637
2775
  if (s4 !== null) {
2638
2776
  s3 = [s3, s4];
@@ -2659,12 +2797,12 @@ Emblem.Parser = (function() {
2659
2797
  s3 = peg$c0;
2660
2798
  }
2661
2799
  if (s3 !== null) {
2662
- if (peg$c74.test(input.charAt(peg$currPos))) {
2800
+ if (peg$c80.test(input.charAt(peg$currPos))) {
2663
2801
  s4 = input.charAt(peg$currPos);
2664
2802
  peg$currPos++;
2665
2803
  } else {
2666
2804
  s4 = null;
2667
- if (peg$silentFails === 0) { peg$fail(peg$c75); }
2805
+ if (peg$silentFails === 0) { peg$fail(peg$c81); }
2668
2806
  }
2669
2807
  if (s4 !== null) {
2670
2808
  s3 = [s3, s4];
@@ -2685,47 +2823,16 @@ Emblem.Parser = (function() {
2685
2823
 
2686
2824
  return s0;
2687
2825
  }
2688
-
2689
- function peg$parsealpha() {
2690
- var s0;
2691
-
2692
- if (peg$c76.test(input.charAt(peg$currPos))) {
2693
- s0 = input.charAt(peg$currPos);
2694
- peg$currPos++;
2695
- } else {
2696
- s0 = null;
2697
- if (peg$silentFails === 0) { peg$fail(peg$c77); }
2698
- }
2699
-
2700
- return s0;
2701
- }
2702
-
2703
- function peg$parsehtmlInlineContent() {
2704
- var s0, s1, s2;
2705
-
2706
- s0 = peg$currPos;
2707
- s1 = peg$parse_();
2708
- if (s1 !== null) {
2709
- s2 = peg$parseexplicitMustache();
2710
- if (s2 !== null) {
2711
- peg$reportedPos = s0;
2712
- s1 = peg$c78(s2);
2713
- if (s1 === null) {
2714
- peg$currPos = s0;
2715
- s0 = s1;
2716
- } else {
2717
- s0 = s1;
2718
- }
2719
- } else {
2720
- peg$currPos = s0;
2721
- s0 = peg$c0;
2722
- }
2826
+
2827
+ function peg$parsealpha() {
2828
+ var s0;
2829
+
2830
+ if (peg$c82.test(input.charAt(peg$currPos))) {
2831
+ s0 = input.charAt(peg$currPos);
2832
+ peg$currPos++;
2723
2833
  } else {
2724
- peg$currPos = s0;
2725
- s0 = peg$c0;
2726
- }
2727
- if (s0 === null) {
2728
- s0 = peg$parsetextNodes();
2834
+ s0 = null;
2835
+ if (peg$silentFails === 0) { peg$fail(peg$c83); }
2729
2836
  }
2730
2837
 
2731
2838
  return s0;
@@ -2749,7 +2856,7 @@ Emblem.Parser = (function() {
2749
2856
  s4 = peg$parseanyDedent();
2750
2857
  if (s4 !== null) {
2751
2858
  peg$reportedPos = s0;
2752
- s1 = peg$c79(s1,s2,s3);
2859
+ s1 = peg$c84(s1,s2,s3);
2753
2860
  if (s1 === null) {
2754
2861
  peg$currPos = s0;
2755
2862
  s0 = s1;
@@ -2783,12 +2890,12 @@ Emblem.Parser = (function() {
2783
2890
  var s0, s1, s2;
2784
2891
 
2785
2892
  s0 = peg$currPos;
2786
- if (peg$c80.test(input.charAt(peg$currPos))) {
2893
+ if (peg$c85.test(input.charAt(peg$currPos))) {
2787
2894
  s1 = input.charAt(peg$currPos);
2788
2895
  peg$currPos++;
2789
2896
  } else {
2790
2897
  s1 = null;
2791
- if (peg$silentFails === 0) { peg$fail(peg$c81); }
2898
+ if (peg$silentFails === 0) { peg$fail(peg$c86); }
2792
2899
  }
2793
2900
  if (s1 !== null) {
2794
2901
  if (input.charCodeAt(peg$currPos) === 32) {
@@ -2803,7 +2910,7 @@ Emblem.Parser = (function() {
2803
2910
  }
2804
2911
  if (s2 !== null) {
2805
2912
  peg$reportedPos = s0;
2806
- s1 = peg$c46(s1);
2913
+ s1 = peg$c52(s1);
2807
2914
  if (s1 === null) {
2808
2915
  peg$currPos = s0;
2809
2916
  s0 = s1;
@@ -2823,11 +2930,11 @@ Emblem.Parser = (function() {
2823
2930
  s1 = peg$currPos;
2824
2931
  peg$silentFails++;
2825
2932
  if (input.charCodeAt(peg$currPos) === 60) {
2826
- s2 = peg$c82;
2933
+ s2 = peg$c87;
2827
2934
  peg$currPos++;
2828
2935
  } else {
2829
2936
  s2 = null;
2830
- if (peg$silentFails === 0) { peg$fail(peg$c83); }
2937
+ if (peg$silentFails === 0) { peg$fail(peg$c88); }
2831
2938
  }
2832
2939
  peg$silentFails--;
2833
2940
  if (s2 !== null) {
@@ -2838,7 +2945,7 @@ Emblem.Parser = (function() {
2838
2945
  }
2839
2946
  if (s1 !== null) {
2840
2947
  peg$reportedPos = s0;
2841
- s1 = peg$c84();
2948
+ s1 = peg$c89();
2842
2949
  }
2843
2950
  if (s1 === null) {
2844
2951
  peg$currPos = s0;
@@ -2890,7 +2997,7 @@ Emblem.Parser = (function() {
2890
2997
  }
2891
2998
  if (s3 !== null) {
2892
2999
  peg$reportedPos = s0;
2893
- s1 = peg$c85(s1,s2,s3);
3000
+ s1 = peg$c90(s1,s2,s3);
2894
3001
  if (s1 === null) {
2895
3002
  peg$currPos = s0;
2896
3003
  s0 = s1;
@@ -2966,7 +3073,7 @@ Emblem.Parser = (function() {
2966
3073
  s3 = peg$parseTERM();
2967
3074
  if (s3 !== null) {
2968
3075
  peg$reportedPos = s0;
2969
- s1 = peg$c86(s1,s2);
3076
+ s1 = peg$c91(s1,s2);
2970
3077
  if (s1 === null) {
2971
3078
  peg$currPos = s0;
2972
3079
  s0 = s1;
@@ -2994,25 +3101,25 @@ Emblem.Parser = (function() {
2994
3101
 
2995
3102
  s0 = peg$currPos;
2996
3103
  if (input.charCodeAt(peg$currPos) === 34) {
2997
- s1 = peg$c67;
3104
+ s1 = peg$c73;
2998
3105
  peg$currPos++;
2999
3106
  } else {
3000
3107
  s1 = null;
3001
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
3108
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
3002
3109
  }
3003
3110
  if (s1 !== null) {
3004
3111
  s2 = peg$parseattributeTextNodesInner();
3005
3112
  if (s2 !== null) {
3006
3113
  if (input.charCodeAt(peg$currPos) === 34) {
3007
- s3 = peg$c67;
3114
+ s3 = peg$c73;
3008
3115
  peg$currPos++;
3009
3116
  } else {
3010
3117
  s3 = null;
3011
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
3118
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
3012
3119
  }
3013
3120
  if (s3 !== null) {
3014
3121
  peg$reportedPos = s0;
3015
- s1 = peg$c87(s2);
3122
+ s1 = peg$c43(s2);
3016
3123
  if (s1 === null) {
3017
3124
  peg$currPos = s0;
3018
3125
  s0 = s1;
@@ -3034,25 +3141,25 @@ Emblem.Parser = (function() {
3034
3141
  if (s0 === null) {
3035
3142
  s0 = peg$currPos;
3036
3143
  if (input.charCodeAt(peg$currPos) === 39) {
3037
- s1 = peg$c69;
3144
+ s1 = peg$c75;
3038
3145
  peg$currPos++;
3039
3146
  } else {
3040
3147
  s1 = null;
3041
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
3148
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
3042
3149
  }
3043
3150
  if (s1 !== null) {
3044
3151
  s2 = peg$parseattributeTextNodesInnerSingle();
3045
3152
  if (s2 !== null) {
3046
3153
  if (input.charCodeAt(peg$currPos) === 39) {
3047
- s3 = peg$c69;
3154
+ s3 = peg$c75;
3048
3155
  peg$currPos++;
3049
3156
  } else {
3050
3157
  s3 = null;
3051
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
3158
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
3052
3159
  }
3053
3160
  if (s3 !== null) {
3054
3161
  peg$reportedPos = s0;
3055
- s1 = peg$c87(s2);
3162
+ s1 = peg$c43(s2);
3056
3163
  if (s1 === null) {
3057
3164
  peg$currPos = s0;
3058
3165
  s0 = s1;
@@ -3127,7 +3234,7 @@ Emblem.Parser = (function() {
3127
3234
  }
3128
3235
  if (s2 !== null) {
3129
3236
  peg$reportedPos = s0;
3130
- s1 = peg$c88(s1,s2);
3237
+ s1 = peg$c92(s1,s2);
3131
3238
  if (s1 === null) {
3132
3239
  peg$currPos = s0;
3133
3240
  s0 = s1;
@@ -3197,7 +3304,7 @@ Emblem.Parser = (function() {
3197
3304
  }
3198
3305
  if (s2 !== null) {
3199
3306
  peg$reportedPos = s0;
3200
- s1 = peg$c88(s1,s2);
3307
+ s1 = peg$c92(s1,s2);
3201
3308
  if (s1 === null) {
3202
3309
  peg$currPos = s0;
3203
3310
  s0 = s1;
@@ -3242,7 +3349,7 @@ Emblem.Parser = (function() {
3242
3349
  s5 = peg$parsedoubleClose();
3243
3350
  if (s5 !== null) {
3244
3351
  peg$reportedPos = s0;
3245
- s1 = peg$c89(s3);
3352
+ s1 = peg$c93(s3);
3246
3353
  if (s1 === null) {
3247
3354
  peg$currPos = s0;
3248
3355
  s0 = s1;
@@ -3282,7 +3389,7 @@ Emblem.Parser = (function() {
3282
3389
  s5 = peg$parsehashStacheClose();
3283
3390
  if (s5 !== null) {
3284
3391
  peg$reportedPos = s0;
3285
- s1 = peg$c89(s3);
3392
+ s1 = peg$c93(s3);
3286
3393
  if (s1 === null) {
3287
3394
  peg$currPos = s0;
3288
3395
  s0 = s1;
@@ -3329,7 +3436,7 @@ Emblem.Parser = (function() {
3329
3436
  s5 = peg$parsetripleClose();
3330
3437
  if (s5 !== null) {
3331
3438
  peg$reportedPos = s0;
3332
- s1 = peg$c90(s3);
3439
+ s1 = peg$c94(s3);
3333
3440
  if (s1 === null) {
3334
3441
  peg$currPos = s0;
3335
3442
  s0 = s1;
@@ -3381,7 +3488,7 @@ Emblem.Parser = (function() {
3381
3488
  s1 = s2;
3382
3489
  if (s1 !== null) {
3383
3490
  peg$reportedPos = s0;
3384
- s1 = peg$c91(s1);
3491
+ s1 = peg$c95(s1);
3385
3492
  }
3386
3493
  if (s1 === null) {
3387
3494
  peg$currPos = s0;
@@ -3414,7 +3521,7 @@ Emblem.Parser = (function() {
3414
3521
  s1 = s2;
3415
3522
  if (s1 !== null) {
3416
3523
  peg$reportedPos = s0;
3417
- s1 = peg$c91(s1);
3524
+ s1 = peg$c95(s1);
3418
3525
  }
3419
3526
  if (s1 === null) {
3420
3527
  peg$currPos = s0;
@@ -3435,11 +3542,11 @@ Emblem.Parser = (function() {
3435
3542
  s2 = peg$parsenonMustacheUnit();
3436
3543
  if (s2 === null) {
3437
3544
  if (input.charCodeAt(peg$currPos) === 34) {
3438
- s2 = peg$c67;
3545
+ s2 = peg$c73;
3439
3546
  peg$currPos++;
3440
3547
  } else {
3441
3548
  s2 = null;
3442
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
3549
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
3443
3550
  }
3444
3551
  }
3445
3552
  peg$silentFails--;
@@ -3455,11 +3562,11 @@ Emblem.Parser = (function() {
3455
3562
  peg$currPos++;
3456
3563
  } else {
3457
3564
  s2 = null;
3458
- if (peg$silentFails === 0) { peg$fail(peg$c92); }
3565
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
3459
3566
  }
3460
3567
  if (s2 !== null) {
3461
3568
  peg$reportedPos = s0;
3462
- s1 = peg$c93(s2);
3569
+ s1 = peg$c28(s2);
3463
3570
  if (s1 === null) {
3464
3571
  peg$currPos = s0;
3465
3572
  s0 = s1;
@@ -3487,11 +3594,11 @@ Emblem.Parser = (function() {
3487
3594
  s2 = peg$parsenonMustacheUnit();
3488
3595
  if (s2 === null) {
3489
3596
  if (input.charCodeAt(peg$currPos) === 39) {
3490
- s2 = peg$c69;
3597
+ s2 = peg$c75;
3491
3598
  peg$currPos++;
3492
3599
  } else {
3493
3600
  s2 = null;
3494
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
3601
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
3495
3602
  }
3496
3603
  }
3497
3604
  peg$silentFails--;
@@ -3507,11 +3614,11 @@ Emblem.Parser = (function() {
3507
3614
  peg$currPos++;
3508
3615
  } else {
3509
3616
  s2 = null;
3510
- if (peg$silentFails === 0) { peg$fail(peg$c92); }
3617
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
3511
3618
  }
3512
3619
  if (s2 !== null) {
3513
3620
  peg$reportedPos = s0;
3514
- s1 = peg$c93(s2);
3621
+ s1 = peg$c28(s2);
3515
3622
  if (s1 === null) {
3516
3623
  peg$currPos = s0;
3517
3624
  s0 = s1;
@@ -3551,7 +3658,7 @@ Emblem.Parser = (function() {
3551
3658
  s1 = s2;
3552
3659
  if (s1 !== null) {
3553
3660
  peg$reportedPos = s0;
3554
- s1 = peg$c91(s1);
3661
+ s1 = peg$c95(s1);
3555
3662
  }
3556
3663
  if (s1 === null) {
3557
3664
  peg$currPos = s0;
@@ -3583,11 +3690,11 @@ Emblem.Parser = (function() {
3583
3690
  peg$currPos++;
3584
3691
  } else {
3585
3692
  s2 = null;
3586
- if (peg$silentFails === 0) { peg$fail(peg$c92); }
3693
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
3587
3694
  }
3588
3695
  if (s2 !== null) {
3589
3696
  peg$reportedPos = s0;
3590
- s1 = peg$c93(s2);
3697
+ s1 = peg$c28(s2);
3591
3698
  if (s1 === null) {
3592
3699
  peg$currPos = s0;
3593
3700
  s0 = s1;
@@ -3641,7 +3748,7 @@ Emblem.Parser = (function() {
3641
3748
  s5 = peg$parsesingleClose();
3642
3749
  if (s5 !== null) {
3643
3750
  peg$reportedPos = s0;
3644
- s1 = peg$c89(s3);
3751
+ s1 = peg$c93(s3);
3645
3752
  if (s1 === null) {
3646
3753
  peg$currPos = s0;
3647
3754
  s0 = s1;
@@ -3691,16 +3798,16 @@ Emblem.Parser = (function() {
3691
3798
 
3692
3799
  peg$silentFails++;
3693
3800
  if (input.charCodeAt(peg$currPos) === 123) {
3694
- s0 = peg$c95;
3801
+ s0 = peg$c98;
3695
3802
  peg$currPos++;
3696
3803
  } else {
3697
3804
  s0 = null;
3698
- if (peg$silentFails === 0) { peg$fail(peg$c96); }
3805
+ if (peg$silentFails === 0) { peg$fail(peg$c99); }
3699
3806
  }
3700
3807
  peg$silentFails--;
3701
3808
  if (s0 === null) {
3702
3809
  s1 = null;
3703
- if (peg$silentFails === 0) { peg$fail(peg$c94); }
3810
+ if (peg$silentFails === 0) { peg$fail(peg$c97); }
3704
3811
  }
3705
3812
 
3706
3813
  return s0;
@@ -3710,17 +3817,17 @@ Emblem.Parser = (function() {
3710
3817
  var s0, s1;
3711
3818
 
3712
3819
  peg$silentFails++;
3713
- if (input.substr(peg$currPos, 2) === peg$c98) {
3714
- s0 = peg$c98;
3820
+ if (input.substr(peg$currPos, 2) === peg$c101) {
3821
+ s0 = peg$c101;
3715
3822
  peg$currPos += 2;
3716
3823
  } else {
3717
3824
  s0 = null;
3718
- if (peg$silentFails === 0) { peg$fail(peg$c99); }
3825
+ if (peg$silentFails === 0) { peg$fail(peg$c102); }
3719
3826
  }
3720
3827
  peg$silentFails--;
3721
3828
  if (s0 === null) {
3722
3829
  s1 = null;
3723
- if (peg$silentFails === 0) { peg$fail(peg$c97); }
3830
+ if (peg$silentFails === 0) { peg$fail(peg$c100); }
3724
3831
  }
3725
3832
 
3726
3833
  return s0;
@@ -3730,17 +3837,17 @@ Emblem.Parser = (function() {
3730
3837
  var s0, s1;
3731
3838
 
3732
3839
  peg$silentFails++;
3733
- if (input.substr(peg$currPos, 3) === peg$c101) {
3734
- s0 = peg$c101;
3840
+ if (input.substr(peg$currPos, 3) === peg$c104) {
3841
+ s0 = peg$c104;
3735
3842
  peg$currPos += 3;
3736
3843
  } else {
3737
3844
  s0 = null;
3738
- if (peg$silentFails === 0) { peg$fail(peg$c102); }
3845
+ if (peg$silentFails === 0) { peg$fail(peg$c105); }
3739
3846
  }
3740
3847
  peg$silentFails--;
3741
3848
  if (s0 === null) {
3742
3849
  s1 = null;
3743
- if (peg$silentFails === 0) { peg$fail(peg$c100); }
3850
+ if (peg$silentFails === 0) { peg$fail(peg$c103); }
3744
3851
  }
3745
3852
 
3746
3853
  return s0;
@@ -3751,16 +3858,16 @@ Emblem.Parser = (function() {
3751
3858
 
3752
3859
  peg$silentFails++;
3753
3860
  if (input.charCodeAt(peg$currPos) === 125) {
3754
- s0 = peg$c104;
3861
+ s0 = peg$c107;
3755
3862
  peg$currPos++;
3756
3863
  } else {
3757
3864
  s0 = null;
3758
- if (peg$silentFails === 0) { peg$fail(peg$c105); }
3865
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
3759
3866
  }
3760
3867
  peg$silentFails--;
3761
3868
  if (s0 === null) {
3762
3869
  s1 = null;
3763
- if (peg$silentFails === 0) { peg$fail(peg$c103); }
3870
+ if (peg$silentFails === 0) { peg$fail(peg$c106); }
3764
3871
  }
3765
3872
 
3766
3873
  return s0;
@@ -3770,17 +3877,17 @@ Emblem.Parser = (function() {
3770
3877
  var s0, s1;
3771
3878
 
3772
3879
  peg$silentFails++;
3773
- if (input.substr(peg$currPos, 2) === peg$c107) {
3774
- s0 = peg$c107;
3880
+ if (input.substr(peg$currPos, 2) === peg$c110) {
3881
+ s0 = peg$c110;
3775
3882
  peg$currPos += 2;
3776
3883
  } else {
3777
3884
  s0 = null;
3778
- if (peg$silentFails === 0) { peg$fail(peg$c108); }
3885
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
3779
3886
  }
3780
3887
  peg$silentFails--;
3781
3888
  if (s0 === null) {
3782
3889
  s1 = null;
3783
- if (peg$silentFails === 0) { peg$fail(peg$c106); }
3890
+ if (peg$silentFails === 0) { peg$fail(peg$c109); }
3784
3891
  }
3785
3892
 
3786
3893
  return s0;
@@ -3790,17 +3897,17 @@ Emblem.Parser = (function() {
3790
3897
  var s0, s1;
3791
3898
 
3792
3899
  peg$silentFails++;
3793
- if (input.substr(peg$currPos, 3) === peg$c110) {
3794
- s0 = peg$c110;
3900
+ if (input.substr(peg$currPos, 3) === peg$c113) {
3901
+ s0 = peg$c113;
3795
3902
  peg$currPos += 3;
3796
3903
  } else {
3797
3904
  s0 = null;
3798
- if (peg$silentFails === 0) { peg$fail(peg$c111); }
3905
+ if (peg$silentFails === 0) { peg$fail(peg$c114); }
3799
3906
  }
3800
3907
  peg$silentFails--;
3801
3908
  if (s0 === null) {
3802
3909
  s1 = null;
3803
- if (peg$silentFails === 0) { peg$fail(peg$c109); }
3910
+ if (peg$silentFails === 0) { peg$fail(peg$c112); }
3804
3911
  }
3805
3912
 
3806
3913
  return s0;
@@ -3810,17 +3917,17 @@ Emblem.Parser = (function() {
3810
3917
  var s0, s1;
3811
3918
 
3812
3919
  peg$silentFails++;
3813
- if (input.substr(peg$currPos, 2) === peg$c113) {
3814
- s0 = peg$c113;
3920
+ if (input.substr(peg$currPos, 2) === peg$c116) {
3921
+ s0 = peg$c116;
3815
3922
  peg$currPos += 2;
3816
3923
  } else {
3817
3924
  s0 = null;
3818
- if (peg$silentFails === 0) { peg$fail(peg$c114); }
3925
+ if (peg$silentFails === 0) { peg$fail(peg$c117); }
3819
3926
  }
3820
3927
  peg$silentFails--;
3821
3928
  if (s0 === null) {
3822
3929
  s1 = null;
3823
- if (peg$silentFails === 0) { peg$fail(peg$c112); }
3930
+ if (peg$silentFails === 0) { peg$fail(peg$c115); }
3824
3931
  }
3825
3932
 
3826
3933
  return s0;
@@ -3831,16 +3938,16 @@ Emblem.Parser = (function() {
3831
3938
 
3832
3939
  peg$silentFails++;
3833
3940
  if (input.charCodeAt(peg$currPos) === 125) {
3834
- s0 = peg$c104;
3941
+ s0 = peg$c107;
3835
3942
  peg$currPos++;
3836
3943
  } else {
3837
3944
  s0 = null;
3838
- if (peg$silentFails === 0) { peg$fail(peg$c105); }
3945
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
3839
3946
  }
3840
3947
  peg$silentFails--;
3841
3948
  if (s0 === null) {
3842
3949
  s1 = null;
3843
- if (peg$silentFails === 0) { peg$fail(peg$c115); }
3950
+ if (peg$silentFails === 0) { peg$fail(peg$c118); }
3844
3951
  }
3845
3952
 
3846
3953
  return s0;
@@ -3850,12 +3957,12 @@ Emblem.Parser = (function() {
3850
3957
  var s0, s1, s2;
3851
3958
 
3852
3959
  s0 = peg$currPos;
3853
- if (input.substr(peg$currPos, 2) === peg$c116) {
3854
- s1 = peg$c116;
3960
+ if (input.substr(peg$currPos, 2) === peg$c119) {
3961
+ s1 = peg$c119;
3855
3962
  peg$currPos += 2;
3856
3963
  } else {
3857
3964
  s1 = null;
3858
- if (peg$silentFails === 0) { peg$fail(peg$c117); }
3965
+ if (peg$silentFails === 0) { peg$fail(peg$c120); }
3859
3966
  }
3860
3967
  if (s1 !== null) {
3861
3968
  if (input.charCodeAt(peg$currPos) === 32) {
@@ -3870,7 +3977,7 @@ Emblem.Parser = (function() {
3870
3977
  }
3871
3978
  if (s2 !== null) {
3872
3979
  peg$reportedPos = s0;
3873
- s1 = peg$c118();
3980
+ s1 = peg$c121();
3874
3981
  if (s1 === null) {
3875
3982
  peg$currPos = s0;
3876
3983
  s0 = s1;
@@ -3907,7 +4014,7 @@ Emblem.Parser = (function() {
3907
4014
  }
3908
4015
  if (s2 !== null) {
3909
4016
  peg$reportedPos = s0;
3910
- s1 = peg$c119();
4017
+ s1 = peg$c122();
3911
4018
  if (s1 === null) {
3912
4019
  peg$currPos = s0;
3913
4020
  s0 = s1;
@@ -3927,104 +4034,85 @@ Emblem.Parser = (function() {
3927
4034
  return s0;
3928
4035
  }
3929
4036
 
3930
- function peg$parsehtmlTagAndOptionalAttributes() {
3931
- var s0, s1, s2, s3, s4, s5, s6;
4037
+ function peg$parsehtmlStart() {
4038
+ var s0, s1, s2, s3;
3932
4039
 
3933
4040
  s0 = peg$currPos;
3934
- s1 = peg$currPos;
3935
- s2 = peg$parsehtmlTagName();
3936
- if (s2 !== null) {
3937
- s3 = peg$parseshorthandAttributes();
3938
- if (s3 === null) {
3939
- s3 = peg$c1;
4041
+ s1 = peg$parsehtmlTagName();
4042
+ if (s1 === null) {
4043
+ s1 = peg$c1;
4044
+ }
4045
+ if (s1 !== null) {
4046
+ s2 = peg$parseshorthandAttributes();
4047
+ if (s2 === null) {
4048
+ s2 = peg$c1;
3940
4049
  }
3941
- if (s3 !== null) {
3942
- s4 = [];
3943
- s5 = peg$parseinTagMustache();
3944
- while (s5 !== null) {
3945
- s4.push(s5);
3946
- s5 = peg$parseinTagMustache();
4050
+ if (s2 !== null) {
4051
+ peg$reportedPos = peg$currPos;
4052
+ s3 = peg$c123(s1,s2);
4053
+ if (s3) {
4054
+ s3 = peg$c1;
4055
+ } else {
4056
+ s3 = peg$c0;
3947
4057
  }
3948
- if (s4 !== null) {
3949
- s5 = [];
3950
- s6 = peg$parsefullAttribute();
3951
- while (s6 !== null) {
3952
- s5.push(s6);
3953
- s6 = peg$parsefullAttribute();
3954
- }
3955
- if (s5 !== null) {
3956
- peg$reportedPos = s1;
3957
- s2 = peg$c120(s2,s3,s4,s5);
3958
- if (s2 === null) {
3959
- peg$currPos = s1;
3960
- s1 = s2;
3961
- } else {
3962
- s1 = s2;
3963
- }
3964
- } else {
3965
- peg$currPos = s1;
3966
- s1 = peg$c0;
3967
- }
4058
+ if (s3 !== null) {
4059
+ s1 = [s1, s2, s3];
4060
+ s0 = s1;
3968
4061
  } else {
3969
- peg$currPos = s1;
3970
- s1 = peg$c0;
4062
+ peg$currPos = s0;
4063
+ s0 = peg$c0;
3971
4064
  }
3972
4065
  } else {
3973
- peg$currPos = s1;
3974
- s1 = peg$c0;
4066
+ peg$currPos = s0;
4067
+ s0 = peg$c0;
3975
4068
  }
3976
4069
  } else {
3977
- peg$currPos = s1;
3978
- s1 = peg$c0;
4070
+ peg$currPos = s0;
4071
+ s0 = peg$c0;
3979
4072
  }
3980
- if (s1 === null) {
3981
- s1 = peg$currPos;
3982
- s2 = peg$parseshorthandAttributes();
4073
+
4074
+ return s0;
4075
+ }
4076
+
4077
+ function peg$parseinHtmlTag() {
4078
+ var s0, s1, s2, s3, s4;
4079
+
4080
+ s0 = peg$currPos;
4081
+ s1 = peg$parsehtmlStart();
4082
+ if (s1 !== null) {
4083
+ s2 = [];
4084
+ s3 = peg$parseinTagMustache();
4085
+ while (s3 !== null) {
4086
+ s2.push(s3);
4087
+ s3 = peg$parseinTagMustache();
4088
+ }
3983
4089
  if (s2 !== null) {
3984
4090
  s3 = [];
3985
- s4 = peg$parseinTagMustache();
4091
+ s4 = peg$parsefullAttribute();
3986
4092
  while (s4 !== null) {
3987
4093
  s3.push(s4);
3988
- s4 = peg$parseinTagMustache();
4094
+ s4 = peg$parsefullAttribute();
3989
4095
  }
3990
4096
  if (s3 !== null) {
3991
- s4 = [];
3992
- s5 = peg$parsefullAttribute();
3993
- while (s5 !== null) {
3994
- s4.push(s5);
3995
- s5 = peg$parsefullAttribute();
3996
- }
3997
- if (s4 !== null) {
3998
- peg$reportedPos = s1;
3999
- s2 = peg$c121(s2,s3,s4);
4000
- if (s2 === null) {
4001
- peg$currPos = s1;
4002
- s1 = s2;
4003
- } else {
4004
- s1 = s2;
4005
- }
4097
+ peg$reportedPos = s0;
4098
+ s1 = peg$c124(s1,s2,s3);
4099
+ if (s1 === null) {
4100
+ peg$currPos = s0;
4101
+ s0 = s1;
4006
4102
  } else {
4007
- peg$currPos = s1;
4008
- s1 = peg$c0;
4103
+ s0 = s1;
4009
4104
  }
4010
4105
  } else {
4011
- peg$currPos = s1;
4012
- s1 = peg$c0;
4106
+ peg$currPos = s0;
4107
+ s0 = peg$c0;
4013
4108
  }
4014
4109
  } else {
4015
- peg$currPos = s1;
4016
- s1 = peg$c0;
4110
+ peg$currPos = s0;
4111
+ s0 = peg$c0;
4017
4112
  }
4018
- }
4019
- if (s1 !== null) {
4020
- peg$reportedPos = s0;
4021
- s1 = peg$c122(s1);
4022
- }
4023
- if (s1 === null) {
4024
- peg$currPos = s0;
4025
- s0 = s1;
4026
4113
  } else {
4027
- s0 = s1;
4114
+ peg$currPos = s0;
4115
+ s0 = peg$c0;
4028
4116
  }
4029
4117
 
4030
4118
  return s0;
@@ -4039,7 +4127,7 @@ Emblem.Parser = (function() {
4039
4127
  s3 = peg$parseidShorthand();
4040
4128
  if (s3 !== null) {
4041
4129
  peg$reportedPos = s2;
4042
- s3 = peg$c123(s3);
4130
+ s3 = peg$c125(s3);
4043
4131
  }
4044
4132
  if (s3 === null) {
4045
4133
  peg$currPos = s2;
@@ -4052,7 +4140,7 @@ Emblem.Parser = (function() {
4052
4140
  s3 = peg$parseclassShorthand();
4053
4141
  if (s3 !== null) {
4054
4142
  peg$reportedPos = s2;
4055
- s3 = peg$c124(s3);
4143
+ s3 = peg$c126(s3);
4056
4144
  }
4057
4145
  if (s3 === null) {
4058
4146
  peg$currPos = s2;
@@ -4068,7 +4156,7 @@ Emblem.Parser = (function() {
4068
4156
  s3 = peg$parseidShorthand();
4069
4157
  if (s3 !== null) {
4070
4158
  peg$reportedPos = s2;
4071
- s3 = peg$c123(s3);
4159
+ s3 = peg$c125(s3);
4072
4160
  }
4073
4161
  if (s3 === null) {
4074
4162
  peg$currPos = s2;
@@ -4081,7 +4169,7 @@ Emblem.Parser = (function() {
4081
4169
  s3 = peg$parseclassShorthand();
4082
4170
  if (s3 !== null) {
4083
4171
  peg$reportedPos = s2;
4084
- s3 = peg$c124(s3);
4172
+ s3 = peg$c126(s3);
4085
4173
  }
4086
4174
  if (s3 === null) {
4087
4175
  peg$currPos = s2;
@@ -4096,7 +4184,7 @@ Emblem.Parser = (function() {
4096
4184
  }
4097
4185
  if (s1 !== null) {
4098
4186
  peg$reportedPos = s0;
4099
- s1 = peg$c125(s1);
4187
+ s1 = peg$c127(s1);
4100
4188
  }
4101
4189
  if (s1 === null) {
4102
4190
  peg$currPos = s0;
@@ -4147,7 +4235,7 @@ Emblem.Parser = (function() {
4147
4235
  }
4148
4236
  if (s2 !== null) {
4149
4237
  peg$reportedPos = s0;
4150
- s1 = peg$c126(s2);
4238
+ s1 = peg$c128(s2);
4151
4239
  if (s1 === null) {
4152
4240
  peg$currPos = s0;
4153
4241
  s0 = s1;
@@ -4169,12 +4257,12 @@ Emblem.Parser = (function() {
4169
4257
  function peg$parseboundAttributeValueChar() {
4170
4258
  var s0;
4171
4259
 
4172
- if (peg$c127.test(input.charAt(peg$currPos))) {
4260
+ if (peg$c129.test(input.charAt(peg$currPos))) {
4173
4261
  s0 = input.charAt(peg$currPos);
4174
4262
  peg$currPos++;
4175
4263
  } else {
4176
4264
  s0 = null;
4177
- if (peg$silentFails === 0) { peg$fail(peg$c128); }
4265
+ if (peg$silentFails === 0) { peg$fail(peg$c130); }
4178
4266
  }
4179
4267
 
4180
4268
  return s0;
@@ -4189,7 +4277,7 @@ Emblem.Parser = (function() {
4189
4277
  s1 = peg$parsepathIdNode();
4190
4278
  if (s1 !== null) {
4191
4279
  peg$reportedPos = s0;
4192
- s1 = peg$c129(s1);
4280
+ s1 = peg$c131(s1);
4193
4281
  }
4194
4282
  if (s1 === null) {
4195
4283
  peg$currPos = s0;
@@ -4208,21 +4296,21 @@ Emblem.Parser = (function() {
4208
4296
  s0 = peg$currPos;
4209
4297
  s1 = peg$currPos;
4210
4298
  if (input.charCodeAt(peg$currPos) === 34) {
4211
- s2 = peg$c67;
4299
+ s2 = peg$c73;
4212
4300
  peg$currPos++;
4213
4301
  } else {
4214
4302
  s2 = null;
4215
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
4303
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
4216
4304
  }
4217
4305
  if (s2 !== null) {
4218
4306
  s3 = peg$parseinMustache();
4219
4307
  if (s3 !== null) {
4220
4308
  if (input.charCodeAt(peg$currPos) === 34) {
4221
- s4 = peg$c67;
4309
+ s4 = peg$c73;
4222
4310
  peg$currPos++;
4223
4311
  } else {
4224
4312
  s4 = null;
4225
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
4313
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
4226
4314
  }
4227
4315
  if (s4 !== null) {
4228
4316
  s2 = [s2, s3, s4];
@@ -4242,21 +4330,21 @@ Emblem.Parser = (function() {
4242
4330
  if (s1 === null) {
4243
4331
  s1 = peg$currPos;
4244
4332
  if (input.charCodeAt(peg$currPos) === 39) {
4245
- s2 = peg$c69;
4333
+ s2 = peg$c75;
4246
4334
  peg$currPos++;
4247
4335
  } else {
4248
4336
  s2 = null;
4249
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
4337
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
4250
4338
  }
4251
4339
  if (s2 !== null) {
4252
4340
  s3 = peg$parseinMustache();
4253
4341
  if (s3 !== null) {
4254
4342
  if (input.charCodeAt(peg$currPos) === 39) {
4255
- s4 = peg$c69;
4343
+ s4 = peg$c75;
4256
4344
  peg$currPos++;
4257
4345
  } else {
4258
4346
  s4 = null;
4259
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
4347
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
4260
4348
  }
4261
4349
  if (s4 !== null) {
4262
4350
  s2 = [s2, s3, s4];
@@ -4276,7 +4364,7 @@ Emblem.Parser = (function() {
4276
4364
  }
4277
4365
  if (s1 !== null) {
4278
4366
  peg$reportedPos = s0;
4279
- s1 = peg$c71(s1);
4367
+ s1 = peg$c77(s1);
4280
4368
  }
4281
4369
  if (s1 === null) {
4282
4370
  peg$currPos = s0;
@@ -4305,7 +4393,7 @@ Emblem.Parser = (function() {
4305
4393
  s3 = peg$parseactionValue();
4306
4394
  if (s3 !== null) {
4307
4395
  peg$reportedPos = s0;
4308
- s1 = peg$c130(s1,s3);
4396
+ s1 = peg$c132(s1,s3);
4309
4397
  if (s1 === null) {
4310
4398
  peg$currPos = s0;
4311
4399
  s0 = s1;
@@ -4333,11 +4421,11 @@ Emblem.Parser = (function() {
4333
4421
 
4334
4422
  s0 = peg$currPos;
4335
4423
  if (input.charCodeAt(peg$currPos) === 123) {
4336
- s1 = peg$c95;
4424
+ s1 = peg$c98;
4337
4425
  peg$currPos++;
4338
4426
  } else {
4339
4427
  s1 = null;
4340
- if (peg$silentFails === 0) { peg$fail(peg$c96); }
4428
+ if (peg$silentFails === 0) { peg$fail(peg$c99); }
4341
4429
  }
4342
4430
  if (s1 !== null) {
4343
4431
  s2 = peg$parse_();
@@ -4379,15 +4467,15 @@ Emblem.Parser = (function() {
4379
4467
  s4 = peg$parse_();
4380
4468
  if (s4 !== null) {
4381
4469
  if (input.charCodeAt(peg$currPos) === 125) {
4382
- s5 = peg$c104;
4470
+ s5 = peg$c107;
4383
4471
  peg$currPos++;
4384
4472
  } else {
4385
4473
  s5 = null;
4386
- if (peg$silentFails === 0) { peg$fail(peg$c105); }
4474
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
4387
4475
  }
4388
4476
  if (s5 !== null) {
4389
4477
  peg$reportedPos = s0;
4390
- s1 = peg$c131(s3);
4478
+ s1 = peg$c133(s3);
4391
4479
  if (s1 === null) {
4392
4480
  peg$currPos = s0;
4393
4481
  s0 = s1;
@@ -4454,11 +4542,11 @@ Emblem.Parser = (function() {
4454
4542
  s4 = peg$currPos;
4455
4543
  peg$silentFails++;
4456
4544
  if (input.charCodeAt(peg$currPos) === 33) {
4457
- s5 = peg$c132;
4545
+ s5 = peg$c134;
4458
4546
  peg$currPos++;
4459
4547
  } else {
4460
4548
  s5 = null;
4461
- if (peg$silentFails === 0) { peg$fail(peg$c133); }
4549
+ if (peg$silentFails === 0) { peg$fail(peg$c135); }
4462
4550
  }
4463
4551
  peg$silentFails--;
4464
4552
  if (s5 === null) {
@@ -4469,7 +4557,7 @@ Emblem.Parser = (function() {
4469
4557
  }
4470
4558
  if (s4 !== null) {
4471
4559
  peg$reportedPos = peg$currPos;
4472
- s5 = peg$c134(s1,s3);
4560
+ s5 = peg$c136(s1,s3);
4473
4561
  if (s5) {
4474
4562
  s5 = peg$c1;
4475
4563
  } else {
@@ -4477,7 +4565,7 @@ Emblem.Parser = (function() {
4477
4565
  }
4478
4566
  if (s5 !== null) {
4479
4567
  peg$reportedPos = s0;
4480
- s1 = peg$c135(s1,s3);
4568
+ s1 = peg$c137(s1,s3);
4481
4569
  if (s1 === null) {
4482
4570
  peg$currPos = s0;
4483
4571
  s0 = s1;
@@ -4525,7 +4613,7 @@ Emblem.Parser = (function() {
4525
4613
  s3 = peg$parsepathIdNode();
4526
4614
  if (s3 !== null) {
4527
4615
  peg$reportedPos = s0;
4528
- s1 = peg$c136(s1,s3);
4616
+ s1 = peg$c138(s1,s3);
4529
4617
  if (s1 === null) {
4530
4618
  peg$currPos = s0;
4531
4619
  s0 = s1;
@@ -4565,7 +4653,7 @@ Emblem.Parser = (function() {
4565
4653
  s3 = peg$parseattributeTextNodes();
4566
4654
  if (s3 !== null) {
4567
4655
  peg$reportedPos = s0;
4568
- s1 = peg$c137(s1,s3);
4656
+ s1 = peg$c139(s1,s3);
4569
4657
  if (s1 === null) {
4570
4658
  peg$currPos = s0;
4571
4659
  s0 = s1;
@@ -4622,28 +4710,28 @@ Emblem.Parser = (function() {
4622
4710
 
4623
4711
  s0 = peg$parsealpha();
4624
4712
  if (s0 === null) {
4625
- if (peg$c64.test(input.charAt(peg$currPos))) {
4713
+ if (peg$c70.test(input.charAt(peg$currPos))) {
4626
4714
  s0 = input.charAt(peg$currPos);
4627
4715
  peg$currPos++;
4628
4716
  } else {
4629
4717
  s0 = null;
4630
- if (peg$silentFails === 0) { peg$fail(peg$c65); }
4718
+ if (peg$silentFails === 0) { peg$fail(peg$c71); }
4631
4719
  }
4632
4720
  if (s0 === null) {
4633
4721
  if (input.charCodeAt(peg$currPos) === 95) {
4634
- s0 = peg$c138;
4722
+ s0 = peg$c140;
4635
4723
  peg$currPos++;
4636
4724
  } else {
4637
4725
  s0 = null;
4638
- if (peg$silentFails === 0) { peg$fail(peg$c139); }
4726
+ if (peg$silentFails === 0) { peg$fail(peg$c141); }
4639
4727
  }
4640
4728
  if (s0 === null) {
4641
4729
  if (input.charCodeAt(peg$currPos) === 45) {
4642
- s0 = peg$c140;
4730
+ s0 = peg$c142;
4643
4731
  peg$currPos++;
4644
4732
  } else {
4645
4733
  s0 = null;
4646
- if (peg$silentFails === 0) { peg$fail(peg$c141); }
4734
+ if (peg$silentFails === 0) { peg$fail(peg$c143); }
4647
4735
  }
4648
4736
  }
4649
4737
  }
@@ -4657,17 +4745,17 @@ Emblem.Parser = (function() {
4657
4745
 
4658
4746
  s0 = peg$currPos;
4659
4747
  if (input.charCodeAt(peg$currPos) === 37) {
4660
- s1 = peg$c142;
4748
+ s1 = peg$c144;
4661
4749
  peg$currPos++;
4662
4750
  } else {
4663
4751
  s1 = null;
4664
- if (peg$silentFails === 0) { peg$fail(peg$c143); }
4752
+ if (peg$silentFails === 0) { peg$fail(peg$c145); }
4665
4753
  }
4666
4754
  if (s1 !== null) {
4667
4755
  s2 = peg$parsecssIdentifier();
4668
4756
  if (s2 !== null) {
4669
4757
  peg$reportedPos = s0;
4670
- s1 = peg$c93(s2);
4758
+ s1 = peg$c28(s2);
4671
4759
  if (s1 === null) {
4672
4760
  peg$currPos = s0;
4673
4761
  s0 = s1;
@@ -4691,17 +4779,17 @@ Emblem.Parser = (function() {
4691
4779
 
4692
4780
  s0 = peg$currPos;
4693
4781
  if (input.charCodeAt(peg$currPos) === 35) {
4694
- s1 = peg$c144;
4782
+ s1 = peg$c146;
4695
4783
  peg$currPos++;
4696
4784
  } else {
4697
4785
  s1 = null;
4698
- if (peg$silentFails === 0) { peg$fail(peg$c145); }
4786
+ if (peg$silentFails === 0) { peg$fail(peg$c147); }
4699
4787
  }
4700
4788
  if (s1 !== null) {
4701
4789
  s2 = peg$parsecssIdentifier();
4702
4790
  if (s2 !== null) {
4703
4791
  peg$reportedPos = s0;
4704
- s1 = peg$c146(s2);
4792
+ s1 = peg$c148(s2);
4705
4793
  if (s1 === null) {
4706
4794
  peg$currPos = s0;
4707
4795
  s0 = s1;
@@ -4725,17 +4813,17 @@ Emblem.Parser = (function() {
4725
4813
 
4726
4814
  s0 = peg$currPos;
4727
4815
  if (input.charCodeAt(peg$currPos) === 46) {
4728
- s1 = peg$c42;
4816
+ s1 = peg$c48;
4729
4817
  peg$currPos++;
4730
4818
  } else {
4731
4819
  s1 = null;
4732
- if (peg$silentFails === 0) { peg$fail(peg$c43); }
4820
+ if (peg$silentFails === 0) { peg$fail(peg$c49); }
4733
4821
  }
4734
4822
  if (s1 !== null) {
4735
4823
  s2 = peg$parsecssIdentifier();
4736
4824
  if (s2 !== null) {
4737
4825
  peg$reportedPos = s0;
4738
- s1 = peg$c93(s2);
4826
+ s1 = peg$c28(s2);
4739
4827
  if (s1 === null) {
4740
4828
  peg$currPos = s0;
4741
4829
  s0 = s1;
@@ -4762,7 +4850,7 @@ Emblem.Parser = (function() {
4762
4850
  peg$silentFails--;
4763
4851
  if (s0 === null) {
4764
4852
  s1 = null;
4765
- if (peg$silentFails === 0) { peg$fail(peg$c147); }
4853
+ if (peg$silentFails === 0) { peg$fail(peg$c149); }
4766
4854
  }
4767
4855
 
4768
4856
  return s0;
@@ -4787,7 +4875,7 @@ Emblem.Parser = (function() {
4787
4875
  s2 = s3;
4788
4876
  if (s2 !== null) {
4789
4877
  peg$reportedPos = s0;
4790
- s1 = peg$c148(s1,s2);
4878
+ s1 = peg$c150(s1,s2);
4791
4879
  if (s1 === null) {
4792
4880
  peg$currPos = s0;
4793
4881
  s0 = s1;
@@ -4809,12 +4897,12 @@ Emblem.Parser = (function() {
4809
4897
  function peg$parsenmchar() {
4810
4898
  var s0;
4811
4899
 
4812
- if (peg$c149.test(input.charAt(peg$currPos))) {
4900
+ if (peg$c151.test(input.charAt(peg$currPos))) {
4813
4901
  s0 = input.charAt(peg$currPos);
4814
4902
  peg$currPos++;
4815
4903
  } else {
4816
4904
  s0 = null;
4817
- if (peg$silentFails === 0) { peg$fail(peg$c150); }
4905
+ if (peg$silentFails === 0) { peg$fail(peg$c152); }
4818
4906
  }
4819
4907
  if (s0 === null) {
4820
4908
  s0 = peg$parsenonascii();
@@ -4826,12 +4914,12 @@ Emblem.Parser = (function() {
4826
4914
  function peg$parsenmstart() {
4827
4915
  var s0;
4828
4916
 
4829
- if (peg$c151.test(input.charAt(peg$currPos))) {
4917
+ if (peg$c153.test(input.charAt(peg$currPos))) {
4830
4918
  s0 = input.charAt(peg$currPos);
4831
4919
  peg$currPos++;
4832
4920
  } else {
4833
4921
  s0 = null;
4834
- if (peg$silentFails === 0) { peg$fail(peg$c152); }
4922
+ if (peg$silentFails === 0) { peg$fail(peg$c154); }
4835
4923
  }
4836
4924
  if (s0 === null) {
4837
4925
  s0 = peg$parsenonascii();
@@ -4843,12 +4931,12 @@ Emblem.Parser = (function() {
4843
4931
  function peg$parsenonascii() {
4844
4932
  var s0;
4845
4933
 
4846
- if (peg$c153.test(input.charAt(peg$currPos))) {
4934
+ if (peg$c155.test(input.charAt(peg$currPos))) {
4847
4935
  s0 = input.charAt(peg$currPos);
4848
4936
  peg$currPos++;
4849
4937
  } else {
4850
4938
  s0 = null;
4851
- if (peg$silentFails === 0) { peg$fail(peg$c154); }
4939
+ if (peg$silentFails === 0) { peg$fail(peg$c156); }
4852
4940
  }
4853
4941
 
4854
4942
  return s0;
@@ -4877,27 +4965,33 @@ Emblem.Parser = (function() {
4877
4965
  }
4878
4966
 
4879
4967
  function peg$parsehtmlTagName() {
4880
- var s0, s1, s2;
4968
+ var s0, s1, s2, s3;
4881
4969
 
4882
4970
  peg$silentFails++;
4883
4971
  s0 = peg$currPos;
4884
4972
  if (input.charCodeAt(peg$currPos) === 37) {
4885
- s1 = peg$c142;
4973
+ s1 = peg$c144;
4886
4974
  peg$currPos++;
4887
4975
  } else {
4888
4976
  s1 = null;
4889
- if (peg$silentFails === 0) { peg$fail(peg$c143); }
4977
+ if (peg$silentFails === 0) { peg$fail(peg$c145); }
4890
4978
  }
4891
4979
  if (s1 !== null) {
4892
- s2 = peg$parsetagString();
4980
+ s2 = peg$parse_();
4893
4981
  if (s2 !== null) {
4894
- peg$reportedPos = s0;
4895
- s1 = peg$c46(s2);
4896
- if (s1 === null) {
4897
- peg$currPos = s0;
4898
- s0 = s1;
4982
+ s3 = peg$parsetagString();
4983
+ if (s3 !== null) {
4984
+ peg$reportedPos = s0;
4985
+ s1 = peg$c52(s3);
4986
+ if (s1 === null) {
4987
+ peg$currPos = s0;
4988
+ s0 = s1;
4989
+ } else {
4990
+ s0 = s1;
4991
+ }
4899
4992
  } else {
4900
- s0 = s1;
4993
+ peg$currPos = s0;
4994
+ s0 = peg$c0;
4901
4995
  }
4902
4996
  } else {
4903
4997
  peg$currPos = s0;
@@ -4913,7 +5007,7 @@ Emblem.Parser = (function() {
4913
5007
  peg$silentFails--;
4914
5008
  if (s0 === null) {
4915
5009
  s1 = null;
4916
- if (peg$silentFails === 0) { peg$fail(peg$c155); }
5010
+ if (peg$silentFails === 0) { peg$fail(peg$c157); }
4917
5011
  }
4918
5012
 
4919
5013
  return s0;
@@ -4926,7 +5020,7 @@ Emblem.Parser = (function() {
4926
5020
  s1 = peg$parsetagString();
4927
5021
  if (s1 !== null) {
4928
5022
  peg$reportedPos = peg$currPos;
4929
- s2 = peg$c156(s1);
5023
+ s2 = peg$c158(s1);
4930
5024
  if (s2) {
4931
5025
  s2 = peg$c1;
4932
5026
  } else {
@@ -4934,7 +5028,7 @@ Emblem.Parser = (function() {
4934
5028
  }
4935
5029
  if (s2 !== null) {
4936
5030
  peg$reportedPos = s0;
4937
- s1 = peg$c157(s1);
5031
+ s1 = peg$c159(s1);
4938
5032
  if (s1 === null) {
4939
5033
  peg$currPos = s0;
4940
5034
  s0 = s1;
@@ -4954,14 +5048,58 @@ Emblem.Parser = (function() {
4954
5048
  }
4955
5049
 
4956
5050
  function peg$parsetagChar() {
4957
- var s0;
5051
+ var s0, s1, s2, s3;
4958
5052
 
4959
- if (peg$c158.test(input.charAt(peg$currPos))) {
5053
+ if (peg$c151.test(input.charAt(peg$currPos))) {
4960
5054
  s0 = input.charAt(peg$currPos);
4961
5055
  peg$currPos++;
4962
5056
  } else {
4963
5057
  s0 = null;
4964
- if (peg$silentFails === 0) { peg$fail(peg$c159); }
5058
+ if (peg$silentFails === 0) { peg$fail(peg$c152); }
5059
+ }
5060
+ if (s0 === null) {
5061
+ s0 = peg$currPos;
5062
+ if (input.charCodeAt(peg$currPos) === 58) {
5063
+ s1 = peg$c160;
5064
+ peg$currPos++;
5065
+ } else {
5066
+ s1 = null;
5067
+ if (peg$silentFails === 0) { peg$fail(peg$c161); }
5068
+ }
5069
+ if (s1 !== null) {
5070
+ s2 = peg$currPos;
5071
+ peg$silentFails++;
5072
+ if (input.charCodeAt(peg$currPos) === 32) {
5073
+ s3 = peg$c25;
5074
+ peg$currPos++;
5075
+ } else {
5076
+ s3 = null;
5077
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
5078
+ }
5079
+ peg$silentFails--;
5080
+ if (s3 === null) {
5081
+ s2 = peg$c1;
5082
+ } else {
5083
+ peg$currPos = s2;
5084
+ s2 = peg$c0;
5085
+ }
5086
+ if (s2 !== null) {
5087
+ peg$reportedPos = s0;
5088
+ s1 = peg$c28(s1);
5089
+ if (s1 === null) {
5090
+ peg$currPos = s0;
5091
+ s0 = s1;
5092
+ } else {
5093
+ s0 = s1;
5094
+ }
5095
+ } else {
5096
+ peg$currPos = s0;
5097
+ s0 = peg$c0;
5098
+ }
5099
+ } else {
5100
+ peg$currPos = s0;
5101
+ s0 = peg$c0;
5102
+ }
4965
5103
  }
4966
5104
 
4967
5105
  return s0;
@@ -4975,7 +5113,7 @@ Emblem.Parser = (function() {
4975
5113
  s1 = peg$parsetagString();
4976
5114
  if (s1 !== null) {
4977
5115
  peg$reportedPos = peg$currPos;
4978
- s2 = peg$c161(s1);
5116
+ s2 = peg$c163(s1);
4979
5117
  if (s2) {
4980
5118
  s2 = peg$c1;
4981
5119
  } else {
@@ -4983,7 +5121,7 @@ Emblem.Parser = (function() {
4983
5121
  }
4984
5122
  if (s2 !== null) {
4985
5123
  peg$reportedPos = s0;
4986
- s1 = peg$c157(s1);
5124
+ s1 = peg$c159(s1);
4987
5125
  if (s1 === null) {
4988
5126
  peg$currPos = s0;
4989
5127
  s0 = s1;
@@ -5001,7 +5139,7 @@ Emblem.Parser = (function() {
5001
5139
  peg$silentFails--;
5002
5140
  if (s0 === null) {
5003
5141
  s1 = null;
5004
- if (peg$silentFails === 0) { peg$fail(peg$c160); }
5142
+ if (peg$silentFails === 0) { peg$fail(peg$c162); }
5005
5143
  }
5006
5144
 
5007
5145
  return s0;
@@ -5016,7 +5154,7 @@ Emblem.Parser = (function() {
5016
5154
  s2 = peg$parse__();
5017
5155
  if (s2 !== null) {
5018
5156
  peg$reportedPos = s0;
5019
- s1 = peg$c46(s2);
5157
+ s1 = peg$c52(s2);
5020
5158
  if (s1 === null) {
5021
5159
  peg$currPos = s0;
5022
5160
  s0 = s1;
@@ -5041,15 +5179,15 @@ Emblem.Parser = (function() {
5041
5179
  peg$silentFails++;
5042
5180
  s0 = peg$currPos;
5043
5181
  if (input.charCodeAt(peg$currPos) === 61423) {
5044
- s1 = peg$c163;
5182
+ s1 = peg$c165;
5045
5183
  peg$currPos++;
5046
5184
  } else {
5047
5185
  s1 = null;
5048
- if (peg$silentFails === 0) { peg$fail(peg$c164); }
5186
+ if (peg$silentFails === 0) { peg$fail(peg$c166); }
5049
5187
  }
5050
5188
  if (s1 !== null) {
5051
5189
  peg$reportedPos = s0;
5052
- s1 = peg$c165();
5190
+ s1 = peg$c167();
5053
5191
  }
5054
5192
  if (s1 === null) {
5055
5193
  peg$currPos = s0;
@@ -5060,7 +5198,7 @@ Emblem.Parser = (function() {
5060
5198
  peg$silentFails--;
5061
5199
  if (s0 === null) {
5062
5200
  s1 = null;
5063
- if (peg$silentFails === 0) { peg$fail(peg$c162); }
5201
+ if (peg$silentFails === 0) { peg$fail(peg$c164); }
5064
5202
  }
5065
5203
 
5066
5204
  return s0;
@@ -5072,15 +5210,15 @@ Emblem.Parser = (function() {
5072
5210
  peg$silentFails++;
5073
5211
  s0 = peg$currPos;
5074
5212
  if (input.charCodeAt(peg$currPos) === 61438) {
5075
- s1 = peg$c167;
5213
+ s1 = peg$c169;
5076
5214
  peg$currPos++;
5077
5215
  } else {
5078
5216
  s1 = null;
5079
- if (peg$silentFails === 0) { peg$fail(peg$c168); }
5217
+ if (peg$silentFails === 0) { peg$fail(peg$c170); }
5080
5218
  }
5081
5219
  if (s1 !== null) {
5082
5220
  peg$reportedPos = s0;
5083
- s1 = peg$c165();
5221
+ s1 = peg$c167();
5084
5222
  }
5085
5223
  if (s1 === null) {
5086
5224
  peg$currPos = s0;
@@ -5091,7 +5229,7 @@ Emblem.Parser = (function() {
5091
5229
  peg$silentFails--;
5092
5230
  if (s0 === null) {
5093
5231
  s1 = null;
5094
- if (peg$silentFails === 0) { peg$fail(peg$c166); }
5232
+ if (peg$silentFails === 0) { peg$fail(peg$c168); }
5095
5233
  }
5096
5234
 
5097
5235
  return s0;
@@ -5103,15 +5241,15 @@ Emblem.Parser = (function() {
5103
5241
  peg$silentFails++;
5104
5242
  s0 = peg$currPos;
5105
5243
  if (input.charCodeAt(peg$currPos) === 61422) {
5106
- s1 = peg$c170;
5244
+ s1 = peg$c172;
5107
5245
  peg$currPos++;
5108
5246
  } else {
5109
5247
  s1 = null;
5110
- if (peg$silentFails === 0) { peg$fail(peg$c171); }
5248
+ if (peg$silentFails === 0) { peg$fail(peg$c173); }
5111
5249
  }
5112
5250
  if (s1 !== null) {
5113
5251
  peg$reportedPos = s0;
5114
- s1 = peg$c165();
5252
+ s1 = peg$c167();
5115
5253
  }
5116
5254
  if (s1 === null) {
5117
5255
  peg$currPos = s0;
@@ -5122,7 +5260,7 @@ Emblem.Parser = (function() {
5122
5260
  peg$silentFails--;
5123
5261
  if (s0 === null) {
5124
5262
  s1 = null;
5125
- if (peg$silentFails === 0) { peg$fail(peg$c169); }
5263
+ if (peg$silentFails === 0) { peg$fail(peg$c171); }
5126
5264
  }
5127
5265
 
5128
5266
  return s0;
@@ -5134,23 +5272,29 @@ Emblem.Parser = (function() {
5134
5272
  peg$silentFails++;
5135
5273
  s0 = peg$currPos;
5136
5274
  if (input.charCodeAt(peg$currPos) === 61439) {
5137
- s1 = peg$c173;
5275
+ s1 = peg$c175;
5138
5276
  peg$currPos++;
5139
5277
  } else {
5140
5278
  s1 = null;
5141
- if (peg$silentFails === 0) { peg$fail(peg$c174); }
5279
+ if (peg$silentFails === 0) { peg$fail(peg$c176); }
5142
5280
  }
5143
5281
  if (s1 !== null) {
5144
5282
  if (input.charCodeAt(peg$currPos) === 10) {
5145
- s2 = peg$c175;
5283
+ s2 = peg$c177;
5146
5284
  peg$currPos++;
5147
5285
  } else {
5148
5286
  s2 = null;
5149
- if (peg$silentFails === 0) { peg$fail(peg$c176); }
5287
+ if (peg$silentFails === 0) { peg$fail(peg$c178); }
5150
5288
  }
5151
5289
  if (s2 !== null) {
5152
- s1 = [s1, s2];
5153
- s0 = s1;
5290
+ peg$reportedPos = s0;
5291
+ s1 = peg$c121();
5292
+ if (s1 === null) {
5293
+ peg$currPos = s0;
5294
+ s0 = s1;
5295
+ } else {
5296
+ s0 = s1;
5297
+ }
5154
5298
  } else {
5155
5299
  peg$currPos = s0;
5156
5300
  s0 = peg$c0;
@@ -5162,7 +5306,7 @@ Emblem.Parser = (function() {
5162
5306
  peg$silentFails--;
5163
5307
  if (s0 === null) {
5164
5308
  s1 = null;
5165
- if (peg$silentFails === 0) { peg$fail(peg$c172); }
5309
+ if (peg$silentFails === 0) { peg$fail(peg$c174); }
5166
5310
  }
5167
5311
 
5168
5312
  return s0;
@@ -5179,7 +5323,7 @@ Emblem.Parser = (function() {
5179
5323
  peg$silentFails--;
5180
5324
  if (s0 === null) {
5181
5325
  s1 = null;
5182
- if (peg$silentFails === 0) { peg$fail(peg$c177); }
5326
+ if (peg$silentFails === 0) { peg$fail(peg$c179); }
5183
5327
  }
5184
5328
 
5185
5329
  return s0;
@@ -5207,7 +5351,7 @@ Emblem.Parser = (function() {
5207
5351
  peg$silentFails--;
5208
5352
  if (s0 === null) {
5209
5353
  s1 = null;
5210
- if (peg$silentFails === 0) { peg$fail(peg$c178); }
5354
+ if (peg$silentFails === 0) { peg$fail(peg$c180); }
5211
5355
  }
5212
5356
 
5213
5357
  return s0;
@@ -5226,7 +5370,7 @@ Emblem.Parser = (function() {
5226
5370
  peg$silentFails--;
5227
5371
  if (s0 === null) {
5228
5372
  s1 = null;
5229
- if (peg$silentFails === 0) { peg$fail(peg$c179); }
5373
+ if (peg$silentFails === 0) { peg$fail(peg$c181); }
5230
5374
  }
5231
5375
 
5232
5376
  return s0;
@@ -5236,17 +5380,17 @@ Emblem.Parser = (function() {
5236
5380
  var s0, s1;
5237
5381
 
5238
5382
  peg$silentFails++;
5239
- if (peg$c181.test(input.charAt(peg$currPos))) {
5383
+ if (peg$c183.test(input.charAt(peg$currPos))) {
5240
5384
  s0 = input.charAt(peg$currPos);
5241
5385
  peg$currPos++;
5242
5386
  } else {
5243
5387
  s0 = null;
5244
- if (peg$silentFails === 0) { peg$fail(peg$c182); }
5388
+ if (peg$silentFails === 0) { peg$fail(peg$c184); }
5245
5389
  }
5246
5390
  peg$silentFails--;
5247
5391
  if (s0 === null) {
5248
5392
  s1 = null;
5249
- if (peg$silentFails === 0) { peg$fail(peg$c180); }
5393
+ if (peg$silentFails === 0) { peg$fail(peg$c182); }
5250
5394
  }
5251
5395
 
5252
5396
  return s0;
@@ -5278,11 +5422,11 @@ Emblem.Parser = (function() {
5278
5422
  peg$currPos++;
5279
5423
  } else {
5280
5424
  s2 = null;
5281
- if (peg$silentFails === 0) { peg$fail(peg$c92); }
5425
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
5282
5426
  }
5283
5427
  if (s2 !== null) {
5284
5428
  peg$reportedPos = s0;
5285
- s1 = peg$c93(s2);
5429
+ s1 = peg$c28(s2);
5286
5430
  if (s1 === null) {
5287
5431
  peg$currPos = s0;
5288
5432
  s0 = s1;