emblem-source 0.1.9 → 0.1.10

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 +709 -499
  2. data/dist/emblem.min.js +2 -2
  3. metadata +2 -2
@@ -340,7 +340,7 @@ Emblem.Parser = (function() {
340
340
 
341
341
  // Make sure a suffix modifier hasn't already been applied.
342
342
  var ch = ret.id.string.charAt(0);
343
- if(!ch.match(/[A-Z]/)) return ret;
343
+ if(!IS_EMBER || !ch.match(/[A-Z]/)) return ret;
344
344
 
345
345
  return unshiftParam(ret, defaultCapitalizedHelper);
346
346
  }
@@ -402,7 +402,7 @@ Emblem.Parser = (function() {
402
402
  mustache.escaped = e;
403
403
  return ret;
404
404
  },
405
- peg$c31 = function(path, tm, params, hash) {
405
+ peg$c31 = function(path, params, hash) {
406
406
  var actualParams = [];
407
407
  var attrs = {};
408
408
  var hasAttrs = false;
@@ -432,43 +432,36 @@ Emblem.Parser = (function() {
432
432
 
433
433
  var mustacheNode = new AST.MustacheNode(actualParams, hash);
434
434
 
435
- if(tm == '!') {
435
+ var tm = path._emblemSuffixModifier;
436
+ if(tm === '!') {
436
437
  return unshiftParam(mustacheNode, 'unbound');
437
- } else if(tm == '?') {
438
+ } else if(tm === '?') {
438
439
  return unshiftParam(mustacheNode, 'if');
439
- } else if(tm == '^') {
440
+ } else if(tm === '^') {
440
441
  return unshiftParam(mustacheNode, 'unless');
441
442
  }
442
443
 
443
444
  return mustacheNode;
444
445
  },
445
- peg$c32 = function(p, m) {
446
- var ret = new String(p);
447
- ret.trailingModifier = m;
448
- return ret;
449
- },
450
- peg$c33 = function(t) { return ['tagName', t]; },
451
- peg$c34 = function(i) { return ['elementId', i]; },
452
- peg$c35 = function(c) { return ['class', c]; },
453
- peg$c36 = function(id, classes) { return [id, classes]; },
454
- peg$c37 = function(classes) { return [null, classes]; },
455
- peg$c38 = function(h) { return h; },
456
- peg$c39 = "TrailingModifier",
457
- peg$c40 = /^[!?*\^]/,
458
- peg$c41 = "[!?*\\^]",
459
- peg$c42 = function(h) { return new AST.HashNode(h); },
460
- peg$c43 = "PathIdent",
461
- peg$c44 = "..",
462
- peg$c45 = "\"..\"",
463
- peg$c46 = ".",
464
- peg$c47 = "\".\"",
465
- peg$c48 = /^[a-zA-Z0-9_$\-]/,
466
- peg$c49 = "[a-zA-Z0-9_$\\-]",
467
- peg$c50 = function(s) { return s; },
468
- peg$c51 = "Key",
469
- peg$c52 = function(h) { return [h[0], h[2]]; },
470
- peg$c53 = function(p) { return p; },
471
- peg$c54 = function(first, tail) {
446
+ peg$c32 = function(t) { return ['tagName', t]; },
447
+ peg$c33 = function(i) { return ['elementId', i]; },
448
+ peg$c34 = function(c) { return ['class', c]; },
449
+ peg$c35 = function(id, classes) { return [id, classes]; },
450
+ peg$c36 = function(classes) { return [null, classes]; },
451
+ peg$c37 = function(h) { return h; },
452
+ peg$c38 = function(h) { return new AST.HashNode(h); },
453
+ peg$c39 = "PathIdent",
454
+ peg$c40 = "..",
455
+ peg$c41 = "\"..\"",
456
+ peg$c42 = ".",
457
+ peg$c43 = "\".\"",
458
+ peg$c44 = /^[a-zA-Z0-9_$\-!?\^]/,
459
+ peg$c45 = "[a-zA-Z0-9_$\\-!?\\^]",
460
+ peg$c46 = function(s) { return s; },
461
+ peg$c47 = "Key",
462
+ peg$c48 = function(h) { return [h[0], h[2]]; },
463
+ peg$c49 = function(p) { return p; },
464
+ peg$c50 = function(first, tail) {
472
465
  var ret = [first];
473
466
  for(var i = 0; i < tail.length; ++i) {
474
467
  //ret = ret.concat(tail[i]);
@@ -476,35 +469,48 @@ Emblem.Parser = (function() {
476
469
  }
477
470
  return ret;
478
471
  },
479
- peg$c55 = "PathSeparator",
480
- peg$c56 = /^[\/.]/,
481
- peg$c57 = "[\\/.]",
482
- peg$c58 = function(v) { return new AST.IdNode(v); },
483
- peg$c59 = function(v) { return new AST.StringNode(v); },
484
- peg$c60 = function(v) { return new AST.IntegerNode(v); },
485
- peg$c61 = function(v) { return new AST.BooleanNode(v); },
486
- peg$c62 = "Boolean",
487
- peg$c63 = "true",
488
- peg$c64 = "\"true\"",
489
- peg$c65 = "false",
490
- peg$c66 = "\"false\"",
491
- peg$c67 = "Integer",
492
- peg$c68 = /^[0-9]/,
493
- peg$c69 = "[0-9]",
494
- peg$c70 = function(s) { return parseInt(s); },
495
- peg$c71 = "\"",
496
- peg$c72 = "\"\\\"\"",
497
- peg$c73 = "'",
498
- peg$c74 = "\"'\"",
499
- peg$c75 = function(p) { return p[1]; },
500
- peg$c76 = /^[^"}]/,
501
- peg$c77 = "[^\"}]",
502
- peg$c78 = /^[^'}]/,
503
- peg$c79 = "[^'}]",
504
- peg$c80 = /^[A-Za-z]/,
505
- peg$c81 = "[A-Za-z]",
506
- peg$c82 = function(m) { return [m]; },
507
- peg$c83 = function(ind, nodes, w) {
472
+ peg$c51 = "PathSeparator",
473
+ peg$c52 = /^[\/.]/,
474
+ peg$c53 = "[\\/.]",
475
+ peg$c54 = function(v) {
476
+ var last = v[v.length - 1];
477
+ var match;
478
+ var suffixModifier;
479
+ if(match = last.match(/[!\?\^]$/)) {
480
+ suffixModifier = match[0];
481
+ v[v.length - 1] = last.slice(0, -1);
482
+ }
483
+
484
+ var idNode = new AST.IdNode(v);
485
+ idNode._emblemSuffixModifier = suffixModifier;
486
+
487
+ return idNode;
488
+ },
489
+ peg$c55 = function(v) { return new AST.StringNode(v); },
490
+ peg$c56 = function(v) { return new AST.IntegerNode(v); },
491
+ peg$c57 = function(v) { return new AST.BooleanNode(v); },
492
+ peg$c58 = "Boolean",
493
+ peg$c59 = "true",
494
+ peg$c60 = "\"true\"",
495
+ peg$c61 = "false",
496
+ peg$c62 = "\"false\"",
497
+ peg$c63 = "Integer",
498
+ peg$c64 = /^[0-9]/,
499
+ peg$c65 = "[0-9]",
500
+ peg$c66 = function(s) { return parseInt(s); },
501
+ peg$c67 = "\"",
502
+ peg$c68 = "\"\\\"\"",
503
+ peg$c69 = "'",
504
+ peg$c70 = "\"'\"",
505
+ peg$c71 = function(p) { return p[1]; },
506
+ peg$c72 = /^[^"}]/,
507
+ peg$c73 = "[^\"}]",
508
+ peg$c74 = /^[^'}]/,
509
+ peg$c75 = "[^'}]",
510
+ peg$c76 = /^[A-Za-z]/,
511
+ peg$c77 = "[A-Za-z]",
512
+ peg$c78 = function(m) { return [m]; },
513
+ peg$c79 = function(ind, nodes, w) {
508
514
  nodes.unshift(new AST.ContentNode(ind));
509
515
 
510
516
  for(var i = 0; i < w.length; ++i) {
@@ -514,12 +520,12 @@ Emblem.Parser = (function() {
514
520
  }
515
521
  return nodes;
516
522
  },
517
- peg$c84 = /^[|`]/,
518
- peg$c85 = "[|`]",
519
- peg$c86 = "<",
520
- peg$c87 = "\"<\"",
521
- peg$c88 = function() { return '<'; },
522
- peg$c89 = function(s, nodes, indentedNodes) {
523
+ peg$c80 = /^[|`]/,
524
+ peg$c81 = "[|`]",
525
+ peg$c82 = "<",
526
+ peg$c83 = "\"<\"",
527
+ peg$c84 = function() { return '<'; },
528
+ peg$c85 = function(s, nodes, indentedNodes) {
523
529
  if(nodes.length || !indentedNodes) {
524
530
  nodes.push("\n");
525
531
  }
@@ -548,50 +554,44 @@ Emblem.Parser = (function() {
548
554
 
549
555
  return ret;
550
556
  },
551
- peg$c90 = function(first, tail) {
552
- var ret = [];
553
- if(first) { ret.push(first); }
554
- for(var i = 0; i < tail.length; ++i) {
555
- var t = tail[i];
556
- ret.push(t[0]);
557
- if(t[1]) { ret.push(t[1]); }
558
- }
559
- return ret;
557
+ peg$c86 = function(first, tail) {
558
+ return textNodesResult(first, tail);
560
559
  },
561
- peg$c91 = function(m) { m.escaped = true; return m; },
562
- peg$c92 = function(m) { m.escaped = false; return m; },
563
- peg$c93 = function(a) { return new AST.ContentNode(a.join('')); },
564
- peg$c94 = "any character",
565
- peg$c95 = function(c) { return c; },
566
- peg$c96 = "SingleMustacheOpen",
567
- peg$c97 = "{",
568
- peg$c98 = "\"{\"",
569
- peg$c99 = "DoubleMustacheOpen",
570
- peg$c100 = "{{",
571
- peg$c101 = "\"{{\"",
572
- peg$c102 = "TripleMustacheOpen",
573
- peg$c103 = "{{{",
574
- peg$c104 = "\"{{{\"",
575
- peg$c105 = "SingleMustacheClose",
576
- peg$c106 = "}",
577
- peg$c107 = "\"}\"",
578
- peg$c108 = "DoubleMustacheClose",
579
- peg$c109 = "}}",
580
- peg$c110 = "\"}}\"",
581
- peg$c111 = "TripleMustacheClose",
582
- peg$c112 = "}}}",
583
- peg$c113 = "\"}}}\"",
584
- peg$c114 = "InterpolationOpen",
585
- peg$c115 = "#{",
586
- peg$c116 = "\"#{\"",
587
- peg$c117 = "InterpolationClose",
588
- peg$c118 = "==",
589
- peg$c119 = "\"==\"",
590
- peg$c120 = function() { return false; },
591
- peg$c121 = function() { return true; },
592
- peg$c122 = function(h, s, m, f) { return [h, s, m, f]; },
593
- peg$c123 = function(s, m, f) { return [null, s, m, f] },
594
- peg$c124 = function(h) {
560
+ peg$c87 = function(a) { return a; },
561
+ peg$c88 = function(m) { m.escaped = true; return m; },
562
+ peg$c89 = function(m) { m.escaped = false; return m; },
563
+ peg$c90 = function(a) { return new AST.ContentNode(a); },
564
+ peg$c91 = "any character",
565
+ peg$c92 = function(c) { return c; },
566
+ peg$c93 = "SingleMustacheOpen",
567
+ peg$c94 = "{",
568
+ peg$c95 = "\"{\"",
569
+ peg$c96 = "DoubleMustacheOpen",
570
+ peg$c97 = "{{",
571
+ peg$c98 = "\"{{\"",
572
+ peg$c99 = "TripleMustacheOpen",
573
+ peg$c100 = "{{{",
574
+ peg$c101 = "\"{{{\"",
575
+ peg$c102 = "SingleMustacheClose",
576
+ peg$c103 = "}",
577
+ peg$c104 = "\"}\"",
578
+ peg$c105 = "DoubleMustacheClose",
579
+ peg$c106 = "}}",
580
+ peg$c107 = "\"}}\"",
581
+ peg$c108 = "TripleMustacheClose",
582
+ peg$c109 = "}}}",
583
+ peg$c110 = "\"}}}\"",
584
+ peg$c111 = "InterpolationOpen",
585
+ peg$c112 = "#{",
586
+ peg$c113 = "\"#{\"",
587
+ peg$c114 = "InterpolationClose",
588
+ peg$c115 = "==",
589
+ peg$c116 = "\"==\"",
590
+ peg$c117 = function() { return false; },
591
+ peg$c118 = function() { return true; },
592
+ peg$c119 = function(h, s, m, f) { return [h, s, m, f]; },
593
+ peg$c120 = function(s, m, f) { return [null, s, m, f] },
594
+ peg$c121 = function(h) {
595
595
  var tagName = h[0] || 'div',
596
596
  shorthandAttributes = h[1] || [],
597
597
  inTagMustaches = h[2],
@@ -628,79 +628,95 @@ Emblem.Parser = (function() {
628
628
  return [tagOpenContent, new AST.ContentNode('</' + tagName + '>')];
629
629
  }
630
630
  },
631
- peg$c125 = function(a) {
631
+ peg$c122 = function(a) {
632
632
  return [new AST.ContentNode(' ')].concat(a);
633
633
  },
634
- peg$c126 = /^[A-Za-z.:0-9_\-]/,
635
- peg$c127 = "[A-Za-z.:0-9_\\-]",
636
- peg$c128 = function(id) { return new AST.MustacheNode([id]); },
637
- peg$c129 = function(event, mustacheNode) {
634
+ peg$c123 = /^[A-Za-z.:0-9_\-]/,
635
+ peg$c124 = "[A-Za-z.:0-9_\\-]",
636
+ peg$c125 = function(id) { return new AST.MustacheNode([id]); },
637
+ peg$c126 = function(event, mustacheNode) {
638
638
  // Unshift the action helper and augment the hash
639
639
  return [unshiftParam(mustacheNode, 'action', [['on', new AST.StringNode(event)]])];
640
640
  },
641
- peg$c130 = function(value) { return value.replace(/ *$/, ''); },
642
- peg$c131 = function(key, value) { return IS_EMBER; },
643
- peg$c132 = function(key, value) {
641
+ peg$c127 = function(value) { return value.replace(/ *$/, ''); },
642
+ peg$c128 = "!",
643
+ peg$c129 = "\"!\"",
644
+ peg$c130 = function(key, value) { return IS_EMBER; },
645
+ peg$c131 = function(key, value) {
644
646
  var hashNode = new AST.HashNode([[key, new AST.StringNode(value)]]);
645
647
  var params = [new AST.IdNode(['bindAttr'])];
646
- return [new AST.MustacheNode(params, hashNode)];
648
+ var mustacheNode = new AST.MustacheNode(params, hashNode);
649
+
650
+ /*
651
+ if(whatever) {
652
+ mustacheNode = return unshiftParam(mustacheNode, 'unbound');
653
+ }
654
+ */
655
+
656
+ return [mustacheNode];
647
657
  },
648
- peg$c133 = function(key, id) {
658
+ peg$c132 = function(key, id) {
659
+ var mustacheNode = new AST.MustacheNode([id]);
660
+
661
+ if(IS_EMBER && id._emblemSuffixModifier === '!') {
662
+ mustacheNode = unshiftParam(mustacheNode, 'unbound');
663
+ }
664
+
649
665
  return [
650
666
  new AST.ContentNode(key + '=' + '"'),
651
- new AST.MustacheNode([id]),
667
+ mustacheNode,
652
668
  new AST.ContentNode('"'),
653
669
  ];
654
670
  },
655
- peg$c134 = function(key, value) {
656
- var s = key + '=' + '"' + value + '"';
657
- return [new AST.ContentNode(s)];
671
+ peg$c133 = function(key, nodes) {
672
+ var result = [ new AST.ContentNode(key + '=' + '"') ].concat(nodes);
673
+ return result.concat([new AST.ContentNode('"')]);
658
674
  },
659
- peg$c135 = "_",
660
- peg$c136 = "\"_\"",
661
- peg$c137 = "-",
662
- peg$c138 = "\"-\"",
663
- peg$c139 = "%",
664
- peg$c140 = "\"%\"",
665
- peg$c141 = "#",
666
- peg$c142 = "\"#\"",
667
- peg$c143 = function(c) { return c;},
668
- peg$c144 = "CSSIdentifier",
669
- peg$c145 = function(nmstart, nmchars) { return nmstart + nmchars; },
670
- peg$c146 = /^[_a-zA-Z0-9\-]/,
671
- peg$c147 = "[_a-zA-Z0-9\\-]",
672
- peg$c148 = /^[_a-zA-Z]/,
673
- peg$c149 = "[_a-zA-Z]",
674
- peg$c150 = /^[\x80-\xFF]/,
675
- peg$c151 = "[\\x80-\\xFF]",
676
- peg$c152 = "KnownHTMLTagName",
677
- peg$c153 = function(t) { return !!KNOWN_TAGS[t]; },
678
- peg$c154 = function(t) { return t; },
679
- peg$c155 = /^[:_a-zA-Z0-9\-]/,
680
- peg$c156 = "[:_a-zA-Z0-9\\-]",
681
- peg$c157 = "a JS event",
682
- peg$c158 = function(t) { return !!KNOWN_EVENTS[t]; },
683
- peg$c159 = "INDENT",
684
- peg$c160 = "\uEFEF",
685
- peg$c161 = "\"\\uEFEF\"",
686
- peg$c162 = function() { return ''; },
687
- peg$c163 = "DEDENT",
688
- peg$c164 = "\uEFFE",
689
- peg$c165 = "\"\\uEFFE\"",
690
- peg$c166 = "Unmatched DEDENT",
691
- peg$c167 = "\uEFEE",
692
- peg$c168 = "\"\\uEFEE\"",
693
- peg$c169 = "LineEnd",
694
- peg$c170 = "\uEFFF",
695
- peg$c171 = "\"\\uEFFF\"",
696
- peg$c172 = "\n",
697
- peg$c173 = "\"\\n\"",
698
- peg$c174 = "ANYDEDENT",
699
- peg$c175 = "RequiredWhitespace",
700
- peg$c176 = "OptionalWhitespace",
701
- peg$c177 = "InlineWhitespace",
702
- peg$c178 = /^[ \t]/,
703
- peg$c179 = "[ \\t]",
675
+ peg$c134 = "_",
676
+ peg$c135 = "\"_\"",
677
+ peg$c136 = "-",
678
+ peg$c137 = "\"-\"",
679
+ peg$c138 = "%",
680
+ peg$c139 = "\"%\"",
681
+ peg$c140 = "#",
682
+ peg$c141 = "\"#\"",
683
+ peg$c142 = function(c) { return c;},
684
+ peg$c143 = "CSSIdentifier",
685
+ peg$c144 = function(nmstart, nmchars) { return nmstart + nmchars; },
686
+ peg$c145 = /^[_a-zA-Z0-9\-]/,
687
+ peg$c146 = "[_a-zA-Z0-9\\-]",
688
+ peg$c147 = /^[_a-zA-Z]/,
689
+ peg$c148 = "[_a-zA-Z]",
690
+ peg$c149 = /^[\x80-\xFF]/,
691
+ peg$c150 = "[\\x80-\\xFF]",
692
+ peg$c151 = "KnownHTMLTagName",
693
+ peg$c152 = function(t) { return !!KNOWN_TAGS[t]; },
694
+ peg$c153 = function(t) { return t; },
695
+ peg$c154 = /^[:_a-zA-Z0-9\-]/,
696
+ peg$c155 = "[:_a-zA-Z0-9\\-]",
697
+ peg$c156 = "a JS event",
698
+ peg$c157 = function(t) { return !!KNOWN_EVENTS[t]; },
699
+ peg$c158 = "INDENT",
700
+ peg$c159 = "\uEFEF",
701
+ peg$c160 = "\"\\uEFEF\"",
702
+ peg$c161 = function() { return ''; },
703
+ peg$c162 = "DEDENT",
704
+ peg$c163 = "\uEFFE",
705
+ peg$c164 = "\"\\uEFFE\"",
706
+ peg$c165 = "Unmatched DEDENT",
707
+ peg$c166 = "\uEFEE",
708
+ peg$c167 = "\"\\uEFEE\"",
709
+ peg$c168 = "LineEnd",
710
+ peg$c169 = "\uEFFF",
711
+ peg$c170 = "\"\\uEFFF\"",
712
+ peg$c171 = "\n",
713
+ peg$c172 = "\"\\n\"",
714
+ peg$c173 = "ANYDEDENT",
715
+ peg$c174 = "RequiredWhitespace",
716
+ peg$c175 = "OptionalWhitespace",
717
+ peg$c176 = "InlineWhitespace",
718
+ peg$c177 = /^[ \t]/,
719
+ peg$c178 = "[ \\t]",
704
720
 
705
721
  peg$currPos = 0,
706
722
  peg$reportedPos = 0,
@@ -1604,39 +1620,30 @@ Emblem.Parser = (function() {
1604
1620
  }
1605
1621
 
1606
1622
  function peg$parseinMustache() {
1607
- var s0, s1, s2, s3, s4;
1623
+ var s0, s1, s2, s3;
1608
1624
 
1609
1625
  s0 = peg$currPos;
1610
1626
  s1 = peg$parsepathIdNode();
1611
1627
  if (s1 !== null) {
1612
- s2 = peg$parsetrailingModifier();
1613
- if (s2 === null) {
1614
- s2 = peg$c1;
1628
+ s2 = [];
1629
+ s3 = peg$parseinMustacheParam();
1630
+ while (s3 !== null) {
1631
+ s2.push(s3);
1632
+ s3 = peg$parseinMustacheParam();
1615
1633
  }
1616
1634
  if (s2 !== null) {
1617
- s3 = [];
1618
- s4 = peg$parseinMustacheParam();
1619
- while (s4 !== null) {
1620
- s3.push(s4);
1621
- s4 = peg$parseinMustacheParam();
1635
+ s3 = peg$parsehash();
1636
+ if (s3 === null) {
1637
+ s3 = peg$c1;
1622
1638
  }
1623
1639
  if (s3 !== null) {
1624
- s4 = peg$parsehash();
1625
- if (s4 === null) {
1626
- s4 = peg$c1;
1627
- }
1628
- if (s4 !== null) {
1629
- peg$reportedPos = s0;
1630
- s1 = peg$c31(s1,s2,s3,s4);
1631
- if (s1 === null) {
1632
- peg$currPos = s0;
1633
- s0 = s1;
1634
- } else {
1635
- s0 = s1;
1636
- }
1637
- } else {
1640
+ peg$reportedPos = s0;
1641
+ s1 = peg$c31(s1,s2,s3);
1642
+ if (s1 === null) {
1638
1643
  peg$currPos = s0;
1639
- s0 = peg$c0;
1644
+ s0 = s1;
1645
+ } else {
1646
+ s0 = s1;
1640
1647
  }
1641
1648
  } else {
1642
1649
  peg$currPos = s0;
@@ -1654,34 +1661,6 @@ Emblem.Parser = (function() {
1654
1661
  return s0;
1655
1662
  }
1656
1663
 
1657
- function peg$parsemodifiedParam() {
1658
- var s0, s1, s2;
1659
-
1660
- s0 = peg$currPos;
1661
- s1 = peg$parseparam();
1662
- if (s1 !== null) {
1663
- s2 = peg$parsetrailingModifier();
1664
- if (s2 !== null) {
1665
- peg$reportedPos = s0;
1666
- s1 = peg$c32(s1,s2);
1667
- if (s1 === null) {
1668
- peg$currPos = s0;
1669
- s0 = s1;
1670
- } else {
1671
- s0 = s1;
1672
- }
1673
- } else {
1674
- peg$currPos = s0;
1675
- s0 = peg$c0;
1676
- }
1677
- } else {
1678
- peg$currPos = s0;
1679
- s0 = peg$c0;
1680
- }
1681
-
1682
- return s0;
1683
- }
1684
-
1685
1664
  function peg$parsehtmlMustacheAttribute() {
1686
1665
  var s0, s1;
1687
1666
 
@@ -1689,7 +1668,7 @@ Emblem.Parser = (function() {
1689
1668
  s1 = peg$parsetagNameShorthand();
1690
1669
  if (s1 !== null) {
1691
1670
  peg$reportedPos = s0;
1692
- s1 = peg$c33(s1);
1671
+ s1 = peg$c32(s1);
1693
1672
  }
1694
1673
  if (s1 === null) {
1695
1674
  peg$currPos = s0;
@@ -1702,7 +1681,7 @@ Emblem.Parser = (function() {
1702
1681
  s1 = peg$parseidShorthand();
1703
1682
  if (s1 !== null) {
1704
1683
  peg$reportedPos = s0;
1705
- s1 = peg$c34(s1);
1684
+ s1 = peg$c33(s1);
1706
1685
  }
1707
1686
  if (s1 === null) {
1708
1687
  peg$currPos = s0;
@@ -1715,7 +1694,7 @@ Emblem.Parser = (function() {
1715
1694
  s1 = peg$parseclassShorthand();
1716
1695
  if (s1 !== null) {
1717
1696
  peg$reportedPos = s0;
1718
- s1 = peg$c35(s1);
1697
+ s1 = peg$c34(s1);
1719
1698
  }
1720
1699
  if (s1 === null) {
1721
1700
  peg$currPos = s0;
@@ -1754,7 +1733,7 @@ Emblem.Parser = (function() {
1754
1733
  }
1755
1734
  if (s2 !== null) {
1756
1735
  peg$reportedPos = s0;
1757
- s1 = peg$c36(s1,s2);
1736
+ s1 = peg$c35(s1,s2);
1758
1737
  if (s1 === null) {
1759
1738
  peg$currPos = s0;
1760
1739
  s0 = s1;
@@ -1789,7 +1768,7 @@ Emblem.Parser = (function() {
1789
1768
  }
1790
1769
  if (s1 !== null) {
1791
1770
  peg$reportedPos = s0;
1792
- s1 = peg$c37(s1);
1771
+ s1 = peg$c36(s1);
1793
1772
  }
1794
1773
  if (s1 === null) {
1795
1774
  peg$currPos = s0;
@@ -1813,7 +1792,7 @@ Emblem.Parser = (function() {
1813
1792
  }
1814
1793
  if (s2 !== null) {
1815
1794
  peg$reportedPos = s0;
1816
- s1 = peg$c38(s2);
1795
+ s1 = peg$c37(s2);
1817
1796
  if (s1 === null) {
1818
1797
  peg$currPos = s0;
1819
1798
  s0 = s1;
@@ -1832,26 +1811,6 @@ Emblem.Parser = (function() {
1832
1811
  return s0;
1833
1812
  }
1834
1813
 
1835
- function peg$parsetrailingModifier() {
1836
- var s0, s1;
1837
-
1838
- peg$silentFails++;
1839
- if (peg$c40.test(input.charAt(peg$currPos))) {
1840
- s0 = input.charAt(peg$currPos);
1841
- peg$currPos++;
1842
- } else {
1843
- s0 = null;
1844
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
1845
- }
1846
- peg$silentFails--;
1847
- if (s0 === null) {
1848
- s1 = null;
1849
- if (peg$silentFails === 0) { peg$fail(peg$c39); }
1850
- }
1851
-
1852
- return s0;
1853
- }
1854
-
1855
1814
  function peg$parsehash() {
1856
1815
  var s0, s1, s2;
1857
1816
 
@@ -1868,7 +1827,7 @@ Emblem.Parser = (function() {
1868
1827
  }
1869
1828
  if (s1 !== null) {
1870
1829
  peg$reportedPos = s0;
1871
- s1 = peg$c42(s1);
1830
+ s1 = peg$c38(s1);
1872
1831
  }
1873
1832
  if (s1 === null) {
1874
1833
  peg$currPos = s0;
@@ -1884,41 +1843,41 @@ Emblem.Parser = (function() {
1884
1843
  var s0, s1, s2, s3;
1885
1844
 
1886
1845
  peg$silentFails++;
1887
- if (input.substr(peg$currPos, 2) === peg$c44) {
1888
- s0 = peg$c44;
1846
+ if (input.substr(peg$currPos, 2) === peg$c40) {
1847
+ s0 = peg$c40;
1889
1848
  peg$currPos += 2;
1890
1849
  } else {
1891
1850
  s0 = null;
1892
- if (peg$silentFails === 0) { peg$fail(peg$c45); }
1851
+ if (peg$silentFails === 0) { peg$fail(peg$c41); }
1893
1852
  }
1894
1853
  if (s0 === null) {
1895
1854
  if (input.charCodeAt(peg$currPos) === 46) {
1896
- s0 = peg$c46;
1855
+ s0 = peg$c42;
1897
1856
  peg$currPos++;
1898
1857
  } else {
1899
1858
  s0 = null;
1900
- if (peg$silentFails === 0) { peg$fail(peg$c47); }
1859
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
1901
1860
  }
1902
1861
  if (s0 === null) {
1903
1862
  s0 = peg$currPos;
1904
1863
  s1 = peg$currPos;
1905
1864
  s2 = [];
1906
- if (peg$c48.test(input.charAt(peg$currPos))) {
1865
+ if (peg$c44.test(input.charAt(peg$currPos))) {
1907
1866
  s3 = input.charAt(peg$currPos);
1908
1867
  peg$currPos++;
1909
1868
  } else {
1910
1869
  s3 = null;
1911
- if (peg$silentFails === 0) { peg$fail(peg$c49); }
1870
+ if (peg$silentFails === 0) { peg$fail(peg$c45); }
1912
1871
  }
1913
1872
  if (s3 !== null) {
1914
1873
  while (s3 !== null) {
1915
1874
  s2.push(s3);
1916
- if (peg$c48.test(input.charAt(peg$currPos))) {
1875
+ if (peg$c44.test(input.charAt(peg$currPos))) {
1917
1876
  s3 = input.charAt(peg$currPos);
1918
1877
  peg$currPos++;
1919
1878
  } else {
1920
1879
  s3 = null;
1921
- if (peg$silentFails === 0) { peg$fail(peg$c49); }
1880
+ if (peg$silentFails === 0) { peg$fail(peg$c45); }
1922
1881
  }
1923
1882
  }
1924
1883
  } else {
@@ -1947,7 +1906,7 @@ Emblem.Parser = (function() {
1947
1906
  }
1948
1907
  if (s2 !== null) {
1949
1908
  peg$reportedPos = s0;
1950
- s1 = peg$c50(s1);
1909
+ s1 = peg$c46(s1);
1951
1910
  if (s1 === null) {
1952
1911
  peg$currPos = s0;
1953
1912
  s0 = s1;
@@ -1967,7 +1926,7 @@ Emblem.Parser = (function() {
1967
1926
  peg$silentFails--;
1968
1927
  if (s0 === null) {
1969
1928
  s1 = null;
1970
- if (peg$silentFails === 0) { peg$fail(peg$c43); }
1929
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
1971
1930
  }
1972
1931
 
1973
1932
  return s0;
@@ -1981,7 +1940,7 @@ Emblem.Parser = (function() {
1981
1940
  peg$silentFails--;
1982
1941
  if (s0 === null) {
1983
1942
  s1 = null;
1984
- if (peg$silentFails === 0) { peg$fail(peg$c51); }
1943
+ if (peg$silentFails === 0) { peg$fail(peg$c47); }
1985
1944
  }
1986
1945
 
1987
1946
  return s0;
@@ -2109,7 +2068,7 @@ Emblem.Parser = (function() {
2109
2068
  }
2110
2069
  if (s2 !== null) {
2111
2070
  peg$reportedPos = s0;
2112
- s1 = peg$c52(s2);
2071
+ s1 = peg$c48(s2);
2113
2072
  if (s1 === null) {
2114
2073
  peg$currPos = s0;
2115
2074
  s0 = s1;
@@ -2158,7 +2117,7 @@ Emblem.Parser = (function() {
2158
2117
  s5 = peg$parsepathIdent();
2159
2118
  if (s5 !== null) {
2160
2119
  peg$reportedPos = s3;
2161
- s4 = peg$c53(s5);
2120
+ s4 = peg$c49(s5);
2162
2121
  if (s4 === null) {
2163
2122
  peg$currPos = s3;
2164
2123
  s3 = s4;
@@ -2181,7 +2140,7 @@ Emblem.Parser = (function() {
2181
2140
  s5 = peg$parsepathIdent();
2182
2141
  if (s5 !== null) {
2183
2142
  peg$reportedPos = s3;
2184
- s4 = peg$c53(s5);
2143
+ s4 = peg$c49(s5);
2185
2144
  if (s4 === null) {
2186
2145
  peg$currPos = s3;
2187
2146
  s3 = s4;
@@ -2199,7 +2158,7 @@ Emblem.Parser = (function() {
2199
2158
  }
2200
2159
  if (s2 !== null) {
2201
2160
  peg$reportedPos = s0;
2202
- s1 = peg$c54(s1,s2);
2161
+ s1 = peg$c50(s1,s2);
2203
2162
  if (s1 === null) {
2204
2163
  peg$currPos = s0;
2205
2164
  s0 = s1;
@@ -2222,17 +2181,17 @@ Emblem.Parser = (function() {
2222
2181
  var s0, s1;
2223
2182
 
2224
2183
  peg$silentFails++;
2225
- if (peg$c56.test(input.charAt(peg$currPos))) {
2184
+ if (peg$c52.test(input.charAt(peg$currPos))) {
2226
2185
  s0 = input.charAt(peg$currPos);
2227
2186
  peg$currPos++;
2228
2187
  } else {
2229
2188
  s0 = null;
2230
- if (peg$silentFails === 0) { peg$fail(peg$c57); }
2189
+ if (peg$silentFails === 0) { peg$fail(peg$c53); }
2231
2190
  }
2232
2191
  peg$silentFails--;
2233
2192
  if (s0 === null) {
2234
2193
  s1 = null;
2235
- if (peg$silentFails === 0) { peg$fail(peg$c55); }
2194
+ if (peg$silentFails === 0) { peg$fail(peg$c51); }
2236
2195
  }
2237
2196
 
2238
2197
  return s0;
@@ -2245,7 +2204,7 @@ Emblem.Parser = (function() {
2245
2204
  s1 = peg$parsepath();
2246
2205
  if (s1 !== null) {
2247
2206
  peg$reportedPos = s0;
2248
- s1 = peg$c58(s1);
2207
+ s1 = peg$c54(s1);
2249
2208
  }
2250
2209
  if (s1 === null) {
2251
2210
  peg$currPos = s0;
@@ -2264,7 +2223,7 @@ Emblem.Parser = (function() {
2264
2223
  s1 = peg$parsestring();
2265
2224
  if (s1 !== null) {
2266
2225
  peg$reportedPos = s0;
2267
- s1 = peg$c59(s1);
2226
+ s1 = peg$c55(s1);
2268
2227
  }
2269
2228
  if (s1 === null) {
2270
2229
  peg$currPos = s0;
@@ -2283,7 +2242,7 @@ Emblem.Parser = (function() {
2283
2242
  s1 = peg$parseinteger();
2284
2243
  if (s1 !== null) {
2285
2244
  peg$reportedPos = s0;
2286
- s1 = peg$c60(s1);
2245
+ s1 = peg$c56(s1);
2287
2246
  }
2288
2247
  if (s1 === null) {
2289
2248
  peg$currPos = s0;
@@ -2302,7 +2261,7 @@ Emblem.Parser = (function() {
2302
2261
  s1 = peg$parseboolean();
2303
2262
  if (s1 !== null) {
2304
2263
  peg$reportedPos = s0;
2305
- s1 = peg$c61(s1);
2264
+ s1 = peg$c57(s1);
2306
2265
  }
2307
2266
  if (s1 === null) {
2308
2267
  peg$currPos = s0;
@@ -2318,26 +2277,26 @@ Emblem.Parser = (function() {
2318
2277
  var s0, s1;
2319
2278
 
2320
2279
  peg$silentFails++;
2321
- if (input.substr(peg$currPos, 4) === peg$c63) {
2322
- s0 = peg$c63;
2280
+ if (input.substr(peg$currPos, 4) === peg$c59) {
2281
+ s0 = peg$c59;
2323
2282
  peg$currPos += 4;
2324
2283
  } else {
2325
2284
  s0 = null;
2326
- if (peg$silentFails === 0) { peg$fail(peg$c64); }
2285
+ if (peg$silentFails === 0) { peg$fail(peg$c60); }
2327
2286
  }
2328
2287
  if (s0 === null) {
2329
- if (input.substr(peg$currPos, 5) === peg$c65) {
2330
- s0 = peg$c65;
2288
+ if (input.substr(peg$currPos, 5) === peg$c61) {
2289
+ s0 = peg$c61;
2331
2290
  peg$currPos += 5;
2332
2291
  } else {
2333
2292
  s0 = null;
2334
- if (peg$silentFails === 0) { peg$fail(peg$c66); }
2293
+ if (peg$silentFails === 0) { peg$fail(peg$c62); }
2335
2294
  }
2336
2295
  }
2337
2296
  peg$silentFails--;
2338
2297
  if (s0 === null) {
2339
2298
  s1 = null;
2340
- if (peg$silentFails === 0) { peg$fail(peg$c62); }
2299
+ if (peg$silentFails === 0) { peg$fail(peg$c58); }
2341
2300
  }
2342
2301
 
2343
2302
  return s0;
@@ -2350,22 +2309,22 @@ Emblem.Parser = (function() {
2350
2309
  s0 = peg$currPos;
2351
2310
  s1 = peg$currPos;
2352
2311
  s2 = [];
2353
- if (peg$c68.test(input.charAt(peg$currPos))) {
2312
+ if (peg$c64.test(input.charAt(peg$currPos))) {
2354
2313
  s3 = input.charAt(peg$currPos);
2355
2314
  peg$currPos++;
2356
2315
  } else {
2357
2316
  s3 = null;
2358
- if (peg$silentFails === 0) { peg$fail(peg$c69); }
2317
+ if (peg$silentFails === 0) { peg$fail(peg$c65); }
2359
2318
  }
2360
2319
  if (s3 !== null) {
2361
2320
  while (s3 !== null) {
2362
2321
  s2.push(s3);
2363
- if (peg$c68.test(input.charAt(peg$currPos))) {
2322
+ if (peg$c64.test(input.charAt(peg$currPos))) {
2364
2323
  s3 = input.charAt(peg$currPos);
2365
2324
  peg$currPos++;
2366
2325
  } else {
2367
2326
  s3 = null;
2368
- if (peg$silentFails === 0) { peg$fail(peg$c69); }
2327
+ if (peg$silentFails === 0) { peg$fail(peg$c65); }
2369
2328
  }
2370
2329
  }
2371
2330
  } else {
@@ -2377,7 +2336,7 @@ Emblem.Parser = (function() {
2377
2336
  s1 = s2;
2378
2337
  if (s1 !== null) {
2379
2338
  peg$reportedPos = s0;
2380
- s1 = peg$c70(s1);
2339
+ s1 = peg$c66(s1);
2381
2340
  }
2382
2341
  if (s1 === null) {
2383
2342
  peg$currPos = s0;
@@ -2388,7 +2347,7 @@ Emblem.Parser = (function() {
2388
2347
  peg$silentFails--;
2389
2348
  if (s0 === null) {
2390
2349
  s1 = null;
2391
- if (peg$silentFails === 0) { peg$fail(peg$c67); }
2350
+ if (peg$silentFails === 0) { peg$fail(peg$c63); }
2392
2351
  }
2393
2352
 
2394
2353
  return s0;
@@ -2400,21 +2359,21 @@ Emblem.Parser = (function() {
2400
2359
  s0 = peg$currPos;
2401
2360
  s1 = peg$currPos;
2402
2361
  if (input.charCodeAt(peg$currPos) === 34) {
2403
- s2 = peg$c71;
2362
+ s2 = peg$c67;
2404
2363
  peg$currPos++;
2405
2364
  } else {
2406
2365
  s2 = null;
2407
- if (peg$silentFails === 0) { peg$fail(peg$c72); }
2366
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
2408
2367
  }
2409
2368
  if (s2 !== null) {
2410
2369
  s3 = peg$parsehashDoubleQuoteStringValue();
2411
2370
  if (s3 !== null) {
2412
2371
  if (input.charCodeAt(peg$currPos) === 34) {
2413
- s4 = peg$c71;
2372
+ s4 = peg$c67;
2414
2373
  peg$currPos++;
2415
2374
  } else {
2416
2375
  s4 = null;
2417
- if (peg$silentFails === 0) { peg$fail(peg$c72); }
2376
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
2418
2377
  }
2419
2378
  if (s4 !== null) {
2420
2379
  s2 = [s2, s3, s4];
@@ -2434,21 +2393,21 @@ Emblem.Parser = (function() {
2434
2393
  if (s1 === null) {
2435
2394
  s1 = peg$currPos;
2436
2395
  if (input.charCodeAt(peg$currPos) === 39) {
2437
- s2 = peg$c73;
2396
+ s2 = peg$c69;
2438
2397
  peg$currPos++;
2439
2398
  } else {
2440
2399
  s2 = null;
2441
- if (peg$silentFails === 0) { peg$fail(peg$c74); }
2400
+ if (peg$silentFails === 0) { peg$fail(peg$c70); }
2442
2401
  }
2443
2402
  if (s2 !== null) {
2444
2403
  s3 = peg$parsehashSingleQuoteStringValue();
2445
2404
  if (s3 !== null) {
2446
2405
  if (input.charCodeAt(peg$currPos) === 39) {
2447
- s4 = peg$c73;
2406
+ s4 = peg$c69;
2448
2407
  peg$currPos++;
2449
2408
  } else {
2450
2409
  s4 = null;
2451
- if (peg$silentFails === 0) { peg$fail(peg$c74); }
2410
+ if (peg$silentFails === 0) { peg$fail(peg$c70); }
2452
2411
  }
2453
2412
  if (s4 !== null) {
2454
2413
  s2 = [s2, s3, s4];
@@ -2468,7 +2427,7 @@ Emblem.Parser = (function() {
2468
2427
  }
2469
2428
  if (s1 !== null) {
2470
2429
  peg$reportedPos = s0;
2471
- s1 = peg$c75(s1);
2430
+ s1 = peg$c71(s1);
2472
2431
  }
2473
2432
  if (s1 === null) {
2474
2433
  peg$currPos = s0;
@@ -2497,12 +2456,12 @@ Emblem.Parser = (function() {
2497
2456
  s3 = peg$c0;
2498
2457
  }
2499
2458
  if (s3 !== null) {
2500
- if (peg$c76.test(input.charAt(peg$currPos))) {
2459
+ if (peg$c72.test(input.charAt(peg$currPos))) {
2501
2460
  s4 = input.charAt(peg$currPos);
2502
2461
  peg$currPos++;
2503
2462
  } else {
2504
2463
  s4 = null;
2505
- if (peg$silentFails === 0) { peg$fail(peg$c77); }
2464
+ if (peg$silentFails === 0) { peg$fail(peg$c73); }
2506
2465
  }
2507
2466
  if (s4 !== null) {
2508
2467
  s3 = [s3, s4];
@@ -2529,12 +2488,12 @@ Emblem.Parser = (function() {
2529
2488
  s3 = peg$c0;
2530
2489
  }
2531
2490
  if (s3 !== null) {
2532
- if (peg$c76.test(input.charAt(peg$currPos))) {
2491
+ if (peg$c72.test(input.charAt(peg$currPos))) {
2533
2492
  s4 = input.charAt(peg$currPos);
2534
2493
  peg$currPos++;
2535
2494
  } else {
2536
2495
  s4 = null;
2537
- if (peg$silentFails === 0) { peg$fail(peg$c77); }
2496
+ if (peg$silentFails === 0) { peg$fail(peg$c73); }
2538
2497
  }
2539
2498
  if (s4 !== null) {
2540
2499
  s3 = [s3, s4];
@@ -2573,12 +2532,12 @@ Emblem.Parser = (function() {
2573
2532
  s3 = peg$c0;
2574
2533
  }
2575
2534
  if (s3 !== null) {
2576
- if (peg$c78.test(input.charAt(peg$currPos))) {
2535
+ if (peg$c74.test(input.charAt(peg$currPos))) {
2577
2536
  s4 = input.charAt(peg$currPos);
2578
2537
  peg$currPos++;
2579
2538
  } else {
2580
2539
  s4 = null;
2581
- if (peg$silentFails === 0) { peg$fail(peg$c79); }
2540
+ if (peg$silentFails === 0) { peg$fail(peg$c75); }
2582
2541
  }
2583
2542
  if (s4 !== null) {
2584
2543
  s3 = [s3, s4];
@@ -2605,12 +2564,12 @@ Emblem.Parser = (function() {
2605
2564
  s3 = peg$c0;
2606
2565
  }
2607
2566
  if (s3 !== null) {
2608
- if (peg$c78.test(input.charAt(peg$currPos))) {
2567
+ if (peg$c74.test(input.charAt(peg$currPos))) {
2609
2568
  s4 = input.charAt(peg$currPos);
2610
2569
  peg$currPos++;
2611
2570
  } else {
2612
2571
  s4 = null;
2613
- if (peg$silentFails === 0) { peg$fail(peg$c79); }
2572
+ if (peg$silentFails === 0) { peg$fail(peg$c75); }
2614
2573
  }
2615
2574
  if (s4 !== null) {
2616
2575
  s3 = [s3, s4];
@@ -2635,12 +2594,12 @@ Emblem.Parser = (function() {
2635
2594
  function peg$parsealpha() {
2636
2595
  var s0;
2637
2596
 
2638
- if (peg$c80.test(input.charAt(peg$currPos))) {
2597
+ if (peg$c76.test(input.charAt(peg$currPos))) {
2639
2598
  s0 = input.charAt(peg$currPos);
2640
2599
  peg$currPos++;
2641
2600
  } else {
2642
2601
  s0 = null;
2643
- if (peg$silentFails === 0) { peg$fail(peg$c81); }
2602
+ if (peg$silentFails === 0) { peg$fail(peg$c77); }
2644
2603
  }
2645
2604
 
2646
2605
  return s0;
@@ -2655,7 +2614,7 @@ Emblem.Parser = (function() {
2655
2614
  s2 = peg$parseexplicitMustache();
2656
2615
  if (s2 !== null) {
2657
2616
  peg$reportedPos = s0;
2658
- s1 = peg$c82(s2);
2617
+ s1 = peg$c78(s2);
2659
2618
  if (s1 === null) {
2660
2619
  peg$currPos = s0;
2661
2620
  s0 = s1;
@@ -2695,7 +2654,7 @@ Emblem.Parser = (function() {
2695
2654
  s4 = peg$parseanyDedent();
2696
2655
  if (s4 !== null) {
2697
2656
  peg$reportedPos = s0;
2698
- s1 = peg$c83(s1,s2,s3);
2657
+ s1 = peg$c79(s1,s2,s3);
2699
2658
  if (s1 === null) {
2700
2659
  peg$currPos = s0;
2701
2660
  s0 = s1;
@@ -2729,12 +2688,12 @@ Emblem.Parser = (function() {
2729
2688
  var s0, s1, s2;
2730
2689
 
2731
2690
  s0 = peg$currPos;
2732
- if (peg$c84.test(input.charAt(peg$currPos))) {
2691
+ if (peg$c80.test(input.charAt(peg$currPos))) {
2733
2692
  s1 = input.charAt(peg$currPos);
2734
2693
  peg$currPos++;
2735
2694
  } else {
2736
2695
  s1 = null;
2737
- if (peg$silentFails === 0) { peg$fail(peg$c85); }
2696
+ if (peg$silentFails === 0) { peg$fail(peg$c81); }
2738
2697
  }
2739
2698
  if (s1 !== null) {
2740
2699
  if (input.charCodeAt(peg$currPos) === 32) {
@@ -2749,7 +2708,7 @@ Emblem.Parser = (function() {
2749
2708
  }
2750
2709
  if (s2 !== null) {
2751
2710
  peg$reportedPos = s0;
2752
- s1 = peg$c50(s1);
2711
+ s1 = peg$c46(s1);
2753
2712
  if (s1 === null) {
2754
2713
  peg$currPos = s0;
2755
2714
  s0 = s1;
@@ -2769,11 +2728,11 @@ Emblem.Parser = (function() {
2769
2728
  s1 = peg$currPos;
2770
2729
  peg$silentFails++;
2771
2730
  if (input.charCodeAt(peg$currPos) === 60) {
2772
- s2 = peg$c86;
2731
+ s2 = peg$c82;
2773
2732
  peg$currPos++;
2774
2733
  } else {
2775
2734
  s2 = null;
2776
- if (peg$silentFails === 0) { peg$fail(peg$c87); }
2735
+ if (peg$silentFails === 0) { peg$fail(peg$c83); }
2777
2736
  }
2778
2737
  peg$silentFails--;
2779
2738
  if (s2 !== null) {
@@ -2784,7 +2743,7 @@ Emblem.Parser = (function() {
2784
2743
  }
2785
2744
  if (s1 !== null) {
2786
2745
  peg$reportedPos = s0;
2787
- s1 = peg$c88();
2746
+ s1 = peg$c84();
2788
2747
  }
2789
2748
  if (s1 === null) {
2790
2749
  peg$currPos = s0;
@@ -2836,7 +2795,7 @@ Emblem.Parser = (function() {
2836
2795
  }
2837
2796
  if (s3 !== null) {
2838
2797
  peg$reportedPos = s0;
2839
- s1 = peg$c89(s1,s2,s3);
2798
+ s1 = peg$c85(s1,s2,s3);
2840
2799
  if (s1 === null) {
2841
2800
  peg$currPos = s0;
2842
2801
  s0 = s1;
@@ -2912,7 +2871,7 @@ Emblem.Parser = (function() {
2912
2871
  s3 = peg$parseTERM();
2913
2872
  if (s3 !== null) {
2914
2873
  peg$reportedPos = s0;
2915
- s1 = peg$c90(s1,s2);
2874
+ s1 = peg$c86(s1,s2);
2916
2875
  if (s1 === null) {
2917
2876
  peg$currPos = s0;
2918
2877
  s0 = s1;
@@ -2935,50 +2894,109 @@ Emblem.Parser = (function() {
2935
2894
  return s0;
2936
2895
  }
2937
2896
 
2938
- function peg$parserawMustache() {
2939
- var s0;
2897
+ function peg$parseattributeTextNodes() {
2898
+ var s0, s1, s2, s3;
2940
2899
 
2941
- s0 = peg$parserawMustacheUnescaped();
2942
- if (s0 === null) {
2943
- s0 = peg$parserawMustacheEscaped();
2900
+ s0 = peg$currPos;
2901
+ if (input.charCodeAt(peg$currPos) === 34) {
2902
+ s1 = peg$c67;
2903
+ peg$currPos++;
2904
+ } else {
2905
+ s1 = null;
2906
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
2907
+ }
2908
+ if (s1 !== null) {
2909
+ s2 = peg$parseattributeTextNodesInner();
2910
+ if (s2 !== null) {
2911
+ if (input.charCodeAt(peg$currPos) === 34) {
2912
+ s3 = peg$c67;
2913
+ peg$currPos++;
2914
+ } else {
2915
+ s3 = null;
2916
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
2917
+ }
2918
+ if (s3 !== null) {
2919
+ peg$reportedPos = s0;
2920
+ s1 = peg$c87(s2);
2921
+ if (s1 === null) {
2922
+ peg$currPos = s0;
2923
+ s0 = s1;
2924
+ } else {
2925
+ s0 = s1;
2926
+ }
2927
+ } else {
2928
+ peg$currPos = s0;
2929
+ s0 = peg$c0;
2930
+ }
2931
+ } else {
2932
+ peg$currPos = s0;
2933
+ s0 = peg$c0;
2934
+ }
2935
+ } else {
2936
+ peg$currPos = s0;
2937
+ s0 = peg$c0;
2944
2938
  }
2945
2939
 
2946
2940
  return s0;
2947
2941
  }
2948
2942
 
2949
- function peg$parserawMustacheSingle() {
2943
+ function peg$parseattributeTextNodesInner() {
2950
2944
  var s0, s1, s2, s3, s4, s5;
2951
2945
 
2952
2946
  s0 = peg$currPos;
2953
- s1 = peg$parsesingleOpen();
2947
+ s1 = peg$parsepreAttrMustacheText();
2948
+ if (s1 === null) {
2949
+ s1 = peg$c1;
2950
+ }
2954
2951
  if (s1 !== null) {
2955
- s2 = peg$parse_();
2956
- if (s2 !== null) {
2957
- s3 = peg$parseinMustache();
2958
- if (s3 !== null) {
2959
- s4 = peg$parse_();
2960
- if (s4 !== null) {
2961
- s5 = peg$parsesingleClose();
2962
- if (s5 !== null) {
2963
- peg$reportedPos = s0;
2964
- s1 = peg$c91(s3);
2965
- if (s1 === null) {
2966
- peg$currPos = s0;
2967
- s0 = s1;
2968
- } else {
2969
- s0 = s1;
2970
- }
2971
- } else {
2972
- peg$currPos = s0;
2973
- s0 = peg$c0;
2974
- }
2952
+ s2 = [];
2953
+ s3 = peg$currPos;
2954
+ s4 = peg$parserawMustache();
2955
+ if (s4 !== null) {
2956
+ s5 = peg$parsepreAttrMustacheText();
2957
+ if (s5 === null) {
2958
+ s5 = peg$c1;
2959
+ }
2960
+ if (s5 !== null) {
2961
+ s4 = [s4, s5];
2962
+ s3 = s4;
2963
+ } else {
2964
+ peg$currPos = s3;
2965
+ s3 = peg$c0;
2966
+ }
2967
+ } else {
2968
+ peg$currPos = s3;
2969
+ s3 = peg$c0;
2970
+ }
2971
+ while (s3 !== null) {
2972
+ s2.push(s3);
2973
+ s3 = peg$currPos;
2974
+ s4 = peg$parserawMustache();
2975
+ if (s4 !== null) {
2976
+ s5 = peg$parsepreAttrMustacheText();
2977
+ if (s5 === null) {
2978
+ s5 = peg$c1;
2979
+ }
2980
+ if (s5 !== null) {
2981
+ s4 = [s4, s5];
2982
+ s3 = s4;
2975
2983
  } else {
2976
- peg$currPos = s0;
2977
- s0 = peg$c0;
2984
+ peg$currPos = s3;
2985
+ s3 = peg$c0;
2978
2986
  }
2979
2987
  } else {
2988
+ peg$currPos = s3;
2989
+ s3 = peg$c0;
2990
+ }
2991
+ }
2992
+ if (s2 !== null) {
2993
+ peg$reportedPos = s0;
2994
+ s1 = peg$c86(s1,s2);
2995
+ if (s1 === null) {
2980
2996
  peg$currPos = s0;
2981
- s0 = peg$c0;
2997
+ s0 = s1;
2998
+ } else {
2999
+ s0 = s1;
2982
3000
  }
2983
3001
  } else {
2984
3002
  peg$currPos = s0;
@@ -2992,6 +3010,17 @@ Emblem.Parser = (function() {
2992
3010
  return s0;
2993
3011
  }
2994
3012
 
3013
+ function peg$parserawMustache() {
3014
+ var s0;
3015
+
3016
+ s0 = peg$parserawMustacheUnescaped();
3017
+ if (s0 === null) {
3018
+ s0 = peg$parserawMustacheEscaped();
3019
+ }
3020
+
3021
+ return s0;
3022
+ }
3023
+
2995
3024
  function peg$parserawMustacheEscaped() {
2996
3025
  var s0, s1, s2, s3, s4, s5;
2997
3026
 
@@ -3007,7 +3036,7 @@ Emblem.Parser = (function() {
3007
3036
  s5 = peg$parsedoubleClose();
3008
3037
  if (s5 !== null) {
3009
3038
  peg$reportedPos = s0;
3010
- s1 = peg$c91(s3);
3039
+ s1 = peg$c88(s3);
3011
3040
  if (s1 === null) {
3012
3041
  peg$currPos = s0;
3013
3042
  s0 = s1;
@@ -3047,7 +3076,7 @@ Emblem.Parser = (function() {
3047
3076
  s5 = peg$parsehashStacheClose();
3048
3077
  if (s5 !== null) {
3049
3078
  peg$reportedPos = s0;
3050
- s1 = peg$c91(s3);
3079
+ s1 = peg$c88(s3);
3051
3080
  if (s1 === null) {
3052
3081
  peg$currPos = s0;
3053
3082
  s0 = s1;
@@ -3094,7 +3123,7 @@ Emblem.Parser = (function() {
3094
3123
  s5 = peg$parsetripleClose();
3095
3124
  if (s5 !== null) {
3096
3125
  peg$reportedPos = s0;
3097
- s1 = peg$c92(s3);
3126
+ s1 = peg$c89(s3);
3098
3127
  if (s1 === null) {
3099
3128
  peg$currPos = s0;
3100
3129
  s0 = s1;
@@ -3125,23 +3154,28 @@ Emblem.Parser = (function() {
3125
3154
  return s0;
3126
3155
  }
3127
3156
 
3128
- function peg$parsepreMustacheText() {
3129
- var s0, s1, s2;
3157
+ function peg$parsepreAttrMustacheText() {
3158
+ var s0, s1, s2, s3;
3130
3159
 
3131
3160
  s0 = peg$currPos;
3132
- s1 = [];
3133
- s2 = peg$parsepreMustacheUnit();
3134
- if (s2 !== null) {
3135
- while (s2 !== null) {
3136
- s1.push(s2);
3137
- s2 = peg$parsepreMustacheUnit();
3161
+ s1 = peg$currPos;
3162
+ s2 = [];
3163
+ s3 = peg$parsepreAttrMustacheUnit();
3164
+ if (s3 !== null) {
3165
+ while (s3 !== null) {
3166
+ s2.push(s3);
3167
+ s3 = peg$parsepreAttrMustacheUnit();
3138
3168
  }
3139
3169
  } else {
3140
- s1 = peg$c0;
3170
+ s2 = peg$c0;
3141
3171
  }
3172
+ if (s2 !== null) {
3173
+ s2 = input.substring(s1, peg$currPos);
3174
+ }
3175
+ s1 = s2;
3142
3176
  if (s1 !== null) {
3143
3177
  peg$reportedPos = s0;
3144
- s1 = peg$c93(s1);
3178
+ s1 = peg$c90(s1);
3145
3179
  }
3146
3180
  if (s1 === null) {
3147
3181
  peg$currPos = s0;
@@ -3153,25 +3187,98 @@ Emblem.Parser = (function() {
3153
3187
  return s0;
3154
3188
  }
3155
3189
 
3156
- function peg$parsepreMustacheUnit() {
3190
+ function peg$parsepreAttrMustacheUnit() {
3157
3191
  var s0, s1, s2;
3158
3192
 
3159
3193
  s0 = peg$currPos;
3160
3194
  s1 = peg$currPos;
3161
3195
  peg$silentFails++;
3162
- s2 = peg$parsetripleOpen();
3196
+ s2 = peg$parsenonMustacheUnit();
3163
3197
  if (s2 === null) {
3164
- s2 = peg$parsedoubleOpen();
3165
- if (s2 === null) {
3166
- s2 = peg$parsehashStacheOpen();
3167
- if (s2 === null) {
3168
- s2 = peg$parseanyDedent();
3169
- if (s2 === null) {
3170
- s2 = peg$parseTERM();
3171
- }
3198
+ if (input.charCodeAt(peg$currPos) === 34) {
3199
+ s2 = peg$c67;
3200
+ peg$currPos++;
3201
+ } else {
3202
+ s2 = null;
3203
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
3204
+ }
3205
+ }
3206
+ peg$silentFails--;
3207
+ if (s2 === null) {
3208
+ s1 = peg$c1;
3209
+ } else {
3210
+ peg$currPos = s1;
3211
+ s1 = peg$c0;
3212
+ }
3213
+ if (s1 !== null) {
3214
+ if (input.length > peg$currPos) {
3215
+ s2 = input.charAt(peg$currPos);
3216
+ peg$currPos++;
3217
+ } else {
3218
+ s2 = null;
3219
+ if (peg$silentFails === 0) { peg$fail(peg$c91); }
3220
+ }
3221
+ if (s2 !== null) {
3222
+ peg$reportedPos = s0;
3223
+ s1 = peg$c92(s2);
3224
+ if (s1 === null) {
3225
+ peg$currPos = s0;
3226
+ s0 = s1;
3227
+ } else {
3228
+ s0 = s1;
3172
3229
  }
3230
+ } else {
3231
+ peg$currPos = s0;
3232
+ s0 = peg$c0;
3173
3233
  }
3234
+ } else {
3235
+ peg$currPos = s0;
3236
+ s0 = peg$c0;
3174
3237
  }
3238
+
3239
+ return s0;
3240
+ }
3241
+
3242
+ function peg$parsepreMustacheText() {
3243
+ var s0, s1, s2, s3;
3244
+
3245
+ s0 = peg$currPos;
3246
+ s1 = peg$currPos;
3247
+ s2 = [];
3248
+ s3 = peg$parsepreMustacheUnit();
3249
+ if (s3 !== null) {
3250
+ while (s3 !== null) {
3251
+ s2.push(s3);
3252
+ s3 = peg$parsepreMustacheUnit();
3253
+ }
3254
+ } else {
3255
+ s2 = peg$c0;
3256
+ }
3257
+ if (s2 !== null) {
3258
+ s2 = input.substring(s1, peg$currPos);
3259
+ }
3260
+ s1 = s2;
3261
+ if (s1 !== null) {
3262
+ peg$reportedPos = s0;
3263
+ s1 = peg$c90(s1);
3264
+ }
3265
+ if (s1 === null) {
3266
+ peg$currPos = s0;
3267
+ s0 = s1;
3268
+ } else {
3269
+ s0 = s1;
3270
+ }
3271
+
3272
+ return s0;
3273
+ }
3274
+
3275
+ function peg$parsepreMustacheUnit() {
3276
+ var s0, s1, s2;
3277
+
3278
+ s0 = peg$currPos;
3279
+ s1 = peg$currPos;
3280
+ peg$silentFails++;
3281
+ s2 = peg$parsenonMustacheUnit();
3175
3282
  peg$silentFails--;
3176
3283
  if (s2 === null) {
3177
3284
  s1 = peg$c1;
@@ -3185,11 +3292,11 @@ Emblem.Parser = (function() {
3185
3292
  peg$currPos++;
3186
3293
  } else {
3187
3294
  s2 = null;
3188
- if (peg$silentFails === 0) { peg$fail(peg$c94); }
3295
+ if (peg$silentFails === 0) { peg$fail(peg$c91); }
3189
3296
  }
3190
3297
  if (s2 !== null) {
3191
3298
  peg$reportedPos = s0;
3192
- s1 = peg$c95(s2);
3299
+ s1 = peg$c92(s2);
3193
3300
  if (s1 === null) {
3194
3301
  peg$currPos = s0;
3195
3302
  s0 = s1;
@@ -3208,6 +3315,72 @@ Emblem.Parser = (function() {
3208
3315
  return s0;
3209
3316
  }
3210
3317
 
3318
+ function peg$parsenonMustacheUnit() {
3319
+ var s0;
3320
+
3321
+ s0 = peg$parsetripleOpen();
3322
+ if (s0 === null) {
3323
+ s0 = peg$parsedoubleOpen();
3324
+ if (s0 === null) {
3325
+ s0 = peg$parsehashStacheOpen();
3326
+ if (s0 === null) {
3327
+ s0 = peg$parseanyDedent();
3328
+ if (s0 === null) {
3329
+ s0 = peg$parseTERM();
3330
+ }
3331
+ }
3332
+ }
3333
+ }
3334
+
3335
+ return s0;
3336
+ }
3337
+
3338
+ function peg$parserawMustacheSingle() {
3339
+ var s0, s1, s2, s3, s4, s5;
3340
+
3341
+ s0 = peg$currPos;
3342
+ s1 = peg$parsesingleOpen();
3343
+ if (s1 !== null) {
3344
+ s2 = peg$parse_();
3345
+ if (s2 !== null) {
3346
+ s3 = peg$parseinMustache();
3347
+ if (s3 !== null) {
3348
+ s4 = peg$parse_();
3349
+ if (s4 !== null) {
3350
+ s5 = peg$parsesingleClose();
3351
+ if (s5 !== null) {
3352
+ peg$reportedPos = s0;
3353
+ s1 = peg$c88(s3);
3354
+ if (s1 === null) {
3355
+ peg$currPos = s0;
3356
+ s0 = s1;
3357
+ } else {
3358
+ s0 = s1;
3359
+ }
3360
+ } else {
3361
+ peg$currPos = s0;
3362
+ s0 = peg$c0;
3363
+ }
3364
+ } else {
3365
+ peg$currPos = s0;
3366
+ s0 = peg$c0;
3367
+ }
3368
+ } else {
3369
+ peg$currPos = s0;
3370
+ s0 = peg$c0;
3371
+ }
3372
+ } else {
3373
+ peg$currPos = s0;
3374
+ s0 = peg$c0;
3375
+ }
3376
+ } else {
3377
+ peg$currPos = s0;
3378
+ s0 = peg$c0;
3379
+ }
3380
+
3381
+ return s0;
3382
+ }
3383
+
3211
3384
  function peg$parseinTagMustache() {
3212
3385
  var s0;
3213
3386
 
@@ -3227,16 +3400,16 @@ Emblem.Parser = (function() {
3227
3400
 
3228
3401
  peg$silentFails++;
3229
3402
  if (input.charCodeAt(peg$currPos) === 123) {
3230
- s0 = peg$c97;
3403
+ s0 = peg$c94;
3231
3404
  peg$currPos++;
3232
3405
  } else {
3233
3406
  s0 = null;
3234
- if (peg$silentFails === 0) { peg$fail(peg$c98); }
3407
+ if (peg$silentFails === 0) { peg$fail(peg$c95); }
3235
3408
  }
3236
3409
  peg$silentFails--;
3237
3410
  if (s0 === null) {
3238
3411
  s1 = null;
3239
- if (peg$silentFails === 0) { peg$fail(peg$c96); }
3412
+ if (peg$silentFails === 0) { peg$fail(peg$c93); }
3240
3413
  }
3241
3414
 
3242
3415
  return s0;
@@ -3246,17 +3419,17 @@ Emblem.Parser = (function() {
3246
3419
  var s0, s1;
3247
3420
 
3248
3421
  peg$silentFails++;
3249
- if (input.substr(peg$currPos, 2) === peg$c100) {
3250
- s0 = peg$c100;
3422
+ if (input.substr(peg$currPos, 2) === peg$c97) {
3423
+ s0 = peg$c97;
3251
3424
  peg$currPos += 2;
3252
3425
  } else {
3253
3426
  s0 = null;
3254
- if (peg$silentFails === 0) { peg$fail(peg$c101); }
3427
+ if (peg$silentFails === 0) { peg$fail(peg$c98); }
3255
3428
  }
3256
3429
  peg$silentFails--;
3257
3430
  if (s0 === null) {
3258
3431
  s1 = null;
3259
- if (peg$silentFails === 0) { peg$fail(peg$c99); }
3432
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
3260
3433
  }
3261
3434
 
3262
3435
  return s0;
@@ -3266,17 +3439,17 @@ Emblem.Parser = (function() {
3266
3439
  var s0, s1;
3267
3440
 
3268
3441
  peg$silentFails++;
3269
- if (input.substr(peg$currPos, 3) === peg$c103) {
3270
- s0 = peg$c103;
3442
+ if (input.substr(peg$currPos, 3) === peg$c100) {
3443
+ s0 = peg$c100;
3271
3444
  peg$currPos += 3;
3272
3445
  } else {
3273
3446
  s0 = null;
3274
- if (peg$silentFails === 0) { peg$fail(peg$c104); }
3447
+ if (peg$silentFails === 0) { peg$fail(peg$c101); }
3275
3448
  }
3276
3449
  peg$silentFails--;
3277
3450
  if (s0 === null) {
3278
3451
  s1 = null;
3279
- if (peg$silentFails === 0) { peg$fail(peg$c102); }
3452
+ if (peg$silentFails === 0) { peg$fail(peg$c99); }
3280
3453
  }
3281
3454
 
3282
3455
  return s0;
@@ -3287,16 +3460,16 @@ Emblem.Parser = (function() {
3287
3460
 
3288
3461
  peg$silentFails++;
3289
3462
  if (input.charCodeAt(peg$currPos) === 125) {
3290
- s0 = peg$c106;
3463
+ s0 = peg$c103;
3291
3464
  peg$currPos++;
3292
3465
  } else {
3293
3466
  s0 = null;
3294
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
3467
+ if (peg$silentFails === 0) { peg$fail(peg$c104); }
3295
3468
  }
3296
3469
  peg$silentFails--;
3297
3470
  if (s0 === null) {
3298
3471
  s1 = null;
3299
- if (peg$silentFails === 0) { peg$fail(peg$c105); }
3472
+ if (peg$silentFails === 0) { peg$fail(peg$c102); }
3300
3473
  }
3301
3474
 
3302
3475
  return s0;
@@ -3306,17 +3479,17 @@ Emblem.Parser = (function() {
3306
3479
  var s0, s1;
3307
3480
 
3308
3481
  peg$silentFails++;
3309
- if (input.substr(peg$currPos, 2) === peg$c109) {
3310
- s0 = peg$c109;
3482
+ if (input.substr(peg$currPos, 2) === peg$c106) {
3483
+ s0 = peg$c106;
3311
3484
  peg$currPos += 2;
3312
3485
  } else {
3313
3486
  s0 = null;
3314
- if (peg$silentFails === 0) { peg$fail(peg$c110); }
3487
+ if (peg$silentFails === 0) { peg$fail(peg$c107); }
3315
3488
  }
3316
3489
  peg$silentFails--;
3317
3490
  if (s0 === null) {
3318
3491
  s1 = null;
3319
- if (peg$silentFails === 0) { peg$fail(peg$c108); }
3492
+ if (peg$silentFails === 0) { peg$fail(peg$c105); }
3320
3493
  }
3321
3494
 
3322
3495
  return s0;
@@ -3326,17 +3499,17 @@ Emblem.Parser = (function() {
3326
3499
  var s0, s1;
3327
3500
 
3328
3501
  peg$silentFails++;
3329
- if (input.substr(peg$currPos, 3) === peg$c112) {
3330
- s0 = peg$c112;
3502
+ if (input.substr(peg$currPos, 3) === peg$c109) {
3503
+ s0 = peg$c109;
3331
3504
  peg$currPos += 3;
3332
3505
  } else {
3333
3506
  s0 = null;
3334
- if (peg$silentFails === 0) { peg$fail(peg$c113); }
3507
+ if (peg$silentFails === 0) { peg$fail(peg$c110); }
3335
3508
  }
3336
3509
  peg$silentFails--;
3337
3510
  if (s0 === null) {
3338
3511
  s1 = null;
3339
- if (peg$silentFails === 0) { peg$fail(peg$c111); }
3512
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
3340
3513
  }
3341
3514
 
3342
3515
  return s0;
@@ -3346,17 +3519,17 @@ Emblem.Parser = (function() {
3346
3519
  var s0, s1;
3347
3520
 
3348
3521
  peg$silentFails++;
3349
- if (input.substr(peg$currPos, 2) === peg$c115) {
3350
- s0 = peg$c115;
3522
+ if (input.substr(peg$currPos, 2) === peg$c112) {
3523
+ s0 = peg$c112;
3351
3524
  peg$currPos += 2;
3352
3525
  } else {
3353
3526
  s0 = null;
3354
- if (peg$silentFails === 0) { peg$fail(peg$c116); }
3527
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
3355
3528
  }
3356
3529
  peg$silentFails--;
3357
3530
  if (s0 === null) {
3358
3531
  s1 = null;
3359
- if (peg$silentFails === 0) { peg$fail(peg$c114); }
3532
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
3360
3533
  }
3361
3534
 
3362
3535
  return s0;
@@ -3367,16 +3540,16 @@ Emblem.Parser = (function() {
3367
3540
 
3368
3541
  peg$silentFails++;
3369
3542
  if (input.charCodeAt(peg$currPos) === 125) {
3370
- s0 = peg$c106;
3543
+ s0 = peg$c103;
3371
3544
  peg$currPos++;
3372
3545
  } else {
3373
3546
  s0 = null;
3374
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
3547
+ if (peg$silentFails === 0) { peg$fail(peg$c104); }
3375
3548
  }
3376
3549
  peg$silentFails--;
3377
3550
  if (s0 === null) {
3378
3551
  s1 = null;
3379
- if (peg$silentFails === 0) { peg$fail(peg$c117); }
3552
+ if (peg$silentFails === 0) { peg$fail(peg$c114); }
3380
3553
  }
3381
3554
 
3382
3555
  return s0;
@@ -3386,12 +3559,12 @@ Emblem.Parser = (function() {
3386
3559
  var s0, s1, s2;
3387
3560
 
3388
3561
  s0 = peg$currPos;
3389
- if (input.substr(peg$currPos, 2) === peg$c118) {
3390
- s1 = peg$c118;
3562
+ if (input.substr(peg$currPos, 2) === peg$c115) {
3563
+ s1 = peg$c115;
3391
3564
  peg$currPos += 2;
3392
3565
  } else {
3393
3566
  s1 = null;
3394
- if (peg$silentFails === 0) { peg$fail(peg$c119); }
3567
+ if (peg$silentFails === 0) { peg$fail(peg$c116); }
3395
3568
  }
3396
3569
  if (s1 !== null) {
3397
3570
  if (input.charCodeAt(peg$currPos) === 32) {
@@ -3406,7 +3579,7 @@ Emblem.Parser = (function() {
3406
3579
  }
3407
3580
  if (s2 !== null) {
3408
3581
  peg$reportedPos = s0;
3409
- s1 = peg$c120();
3582
+ s1 = peg$c117();
3410
3583
  if (s1 === null) {
3411
3584
  peg$currPos = s0;
3412
3585
  s0 = s1;
@@ -3443,7 +3616,7 @@ Emblem.Parser = (function() {
3443
3616
  }
3444
3617
  if (s2 !== null) {
3445
3618
  peg$reportedPos = s0;
3446
- s1 = peg$c121();
3619
+ s1 = peg$c118();
3447
3620
  if (s1 === null) {
3448
3621
  peg$currPos = s0;
3449
3622
  s0 = s1;
@@ -3490,7 +3663,7 @@ Emblem.Parser = (function() {
3490
3663
  }
3491
3664
  if (s5 !== null) {
3492
3665
  peg$reportedPos = s1;
3493
- s2 = peg$c122(s2,s3,s4,s5);
3666
+ s2 = peg$c119(s2,s3,s4,s5);
3494
3667
  if (s2 === null) {
3495
3668
  peg$currPos = s1;
3496
3669
  s1 = s2;
@@ -3532,7 +3705,7 @@ Emblem.Parser = (function() {
3532
3705
  }
3533
3706
  if (s4 !== null) {
3534
3707
  peg$reportedPos = s1;
3535
- s2 = peg$c123(s2,s3,s4);
3708
+ s2 = peg$c120(s2,s3,s4);
3536
3709
  if (s2 === null) {
3537
3710
  peg$currPos = s1;
3538
3711
  s1 = s2;
@@ -3554,7 +3727,7 @@ Emblem.Parser = (function() {
3554
3727
  }
3555
3728
  if (s1 !== null) {
3556
3729
  peg$reportedPos = s0;
3557
- s1 = peg$c124(s1);
3730
+ s1 = peg$c121(s1);
3558
3731
  }
3559
3732
  if (s1 === null) {
3560
3733
  peg$currPos = s0;
@@ -3591,7 +3764,7 @@ Emblem.Parser = (function() {
3591
3764
  }
3592
3765
  if (s2 !== null) {
3593
3766
  peg$reportedPos = s0;
3594
- s1 = peg$c36(s1,s2);
3767
+ s1 = peg$c35(s1,s2);
3595
3768
  if (s1 === null) {
3596
3769
  peg$currPos = s0;
3597
3770
  s0 = s1;
@@ -3626,7 +3799,7 @@ Emblem.Parser = (function() {
3626
3799
  }
3627
3800
  if (s1 !== null) {
3628
3801
  peg$reportedPos = s0;
3629
- s1 = peg$c37(s1);
3802
+ s1 = peg$c36(s1);
3630
3803
  }
3631
3804
  if (s1 === null) {
3632
3805
  peg$currPos = s0;
@@ -3677,7 +3850,7 @@ Emblem.Parser = (function() {
3677
3850
  }
3678
3851
  if (s2 !== null) {
3679
3852
  peg$reportedPos = s0;
3680
- s1 = peg$c125(s2);
3853
+ s1 = peg$c122(s2);
3681
3854
  if (s1 === null) {
3682
3855
  peg$currPos = s0;
3683
3856
  s0 = s1;
@@ -3699,12 +3872,12 @@ Emblem.Parser = (function() {
3699
3872
  function peg$parseboundAttributeValueChar() {
3700
3873
  var s0;
3701
3874
 
3702
- if (peg$c126.test(input.charAt(peg$currPos))) {
3875
+ if (peg$c123.test(input.charAt(peg$currPos))) {
3703
3876
  s0 = input.charAt(peg$currPos);
3704
3877
  peg$currPos++;
3705
3878
  } else {
3706
3879
  s0 = null;
3707
- if (peg$silentFails === 0) { peg$fail(peg$c127); }
3880
+ if (peg$silentFails === 0) { peg$fail(peg$c124); }
3708
3881
  }
3709
3882
 
3710
3883
  return s0;
@@ -3719,7 +3892,7 @@ Emblem.Parser = (function() {
3719
3892
  s1 = peg$parsepathIdNode();
3720
3893
  if (s1 !== null) {
3721
3894
  peg$reportedPos = s0;
3722
- s1 = peg$c128(s1);
3895
+ s1 = peg$c125(s1);
3723
3896
  }
3724
3897
  if (s1 === null) {
3725
3898
  peg$currPos = s0;
@@ -3738,21 +3911,21 @@ Emblem.Parser = (function() {
3738
3911
  s0 = peg$currPos;
3739
3912
  s1 = peg$currPos;
3740
3913
  if (input.charCodeAt(peg$currPos) === 34) {
3741
- s2 = peg$c71;
3914
+ s2 = peg$c67;
3742
3915
  peg$currPos++;
3743
3916
  } else {
3744
3917
  s2 = null;
3745
- if (peg$silentFails === 0) { peg$fail(peg$c72); }
3918
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
3746
3919
  }
3747
3920
  if (s2 !== null) {
3748
3921
  s3 = peg$parseinMustache();
3749
3922
  if (s3 !== null) {
3750
3923
  if (input.charCodeAt(peg$currPos) === 34) {
3751
- s4 = peg$c71;
3924
+ s4 = peg$c67;
3752
3925
  peg$currPos++;
3753
3926
  } else {
3754
3927
  s4 = null;
3755
- if (peg$silentFails === 0) { peg$fail(peg$c72); }
3928
+ if (peg$silentFails === 0) { peg$fail(peg$c68); }
3756
3929
  }
3757
3930
  if (s4 !== null) {
3758
3931
  s2 = [s2, s3, s4];
@@ -3772,21 +3945,21 @@ Emblem.Parser = (function() {
3772
3945
  if (s1 === null) {
3773
3946
  s1 = peg$currPos;
3774
3947
  if (input.charCodeAt(peg$currPos) === 39) {
3775
- s2 = peg$c73;
3948
+ s2 = peg$c69;
3776
3949
  peg$currPos++;
3777
3950
  } else {
3778
3951
  s2 = null;
3779
- if (peg$silentFails === 0) { peg$fail(peg$c74); }
3952
+ if (peg$silentFails === 0) { peg$fail(peg$c70); }
3780
3953
  }
3781
3954
  if (s2 !== null) {
3782
3955
  s3 = peg$parseinMustache();
3783
3956
  if (s3 !== null) {
3784
3957
  if (input.charCodeAt(peg$currPos) === 39) {
3785
- s4 = peg$c73;
3958
+ s4 = peg$c69;
3786
3959
  peg$currPos++;
3787
3960
  } else {
3788
3961
  s4 = null;
3789
- if (peg$silentFails === 0) { peg$fail(peg$c74); }
3962
+ if (peg$silentFails === 0) { peg$fail(peg$c70); }
3790
3963
  }
3791
3964
  if (s4 !== null) {
3792
3965
  s2 = [s2, s3, s4];
@@ -3806,7 +3979,7 @@ Emblem.Parser = (function() {
3806
3979
  }
3807
3980
  if (s1 !== null) {
3808
3981
  peg$reportedPos = s0;
3809
- s1 = peg$c75(s1);
3982
+ s1 = peg$c71(s1);
3810
3983
  }
3811
3984
  if (s1 === null) {
3812
3985
  peg$currPos = s0;
@@ -3835,7 +4008,7 @@ Emblem.Parser = (function() {
3835
4008
  s3 = peg$parseactionValue();
3836
4009
  if (s3 !== null) {
3837
4010
  peg$reportedPos = s0;
3838
- s1 = peg$c129(s1,s3);
4011
+ s1 = peg$c126(s1,s3);
3839
4012
  if (s1 === null) {
3840
4013
  peg$currPos = s0;
3841
4014
  s0 = s1;
@@ -3863,11 +4036,11 @@ Emblem.Parser = (function() {
3863
4036
 
3864
4037
  s0 = peg$currPos;
3865
4038
  if (input.charCodeAt(peg$currPos) === 123) {
3866
- s1 = peg$c97;
4039
+ s1 = peg$c94;
3867
4040
  peg$currPos++;
3868
4041
  } else {
3869
4042
  s1 = null;
3870
- if (peg$silentFails === 0) { peg$fail(peg$c98); }
4043
+ if (peg$silentFails === 0) { peg$fail(peg$c95); }
3871
4044
  }
3872
4045
  if (s1 !== null) {
3873
4046
  s2 = peg$parse_();
@@ -3909,15 +4082,15 @@ Emblem.Parser = (function() {
3909
4082
  s4 = peg$parse_();
3910
4083
  if (s4 !== null) {
3911
4084
  if (input.charCodeAt(peg$currPos) === 125) {
3912
- s5 = peg$c106;
4085
+ s5 = peg$c103;
3913
4086
  peg$currPos++;
3914
4087
  } else {
3915
4088
  s5 = null;
3916
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
4089
+ if (peg$silentFails === 0) { peg$fail(peg$c104); }
3917
4090
  }
3918
4091
  if (s5 !== null) {
3919
4092
  peg$reportedPos = s0;
3920
- s1 = peg$c130(s3);
4093
+ s1 = peg$c127(s3);
3921
4094
  if (s1 === null) {
3922
4095
  peg$currPos = s0;
3923
4096
  s0 = s1;
@@ -3966,7 +4139,7 @@ Emblem.Parser = (function() {
3966
4139
  }
3967
4140
 
3968
4141
  function peg$parseboundAttribute() {
3969
- var s0, s1, s2, s3, s4;
4142
+ var s0, s1, s2, s3, s4, s5;
3970
4143
 
3971
4144
  s0 = peg$currPos;
3972
4145
  s1 = peg$parsekey();
@@ -3981,21 +4154,42 @@ Emblem.Parser = (function() {
3981
4154
  if (s2 !== null) {
3982
4155
  s3 = peg$parseboundAttributeValue();
3983
4156
  if (s3 !== null) {
3984
- peg$reportedPos = peg$currPos;
3985
- s4 = peg$c131(s1,s3);
3986
- if (s4) {
4157
+ s4 = peg$currPos;
4158
+ peg$silentFails++;
4159
+ if (input.charCodeAt(peg$currPos) === 33) {
4160
+ s5 = peg$c128;
4161
+ peg$currPos++;
4162
+ } else {
4163
+ s5 = null;
4164
+ if (peg$silentFails === 0) { peg$fail(peg$c129); }
4165
+ }
4166
+ peg$silentFails--;
4167
+ if (s5 === null) {
3987
4168
  s4 = peg$c1;
3988
4169
  } else {
4170
+ peg$currPos = s4;
3989
4171
  s4 = peg$c0;
3990
4172
  }
3991
4173
  if (s4 !== null) {
3992
- peg$reportedPos = s0;
3993
- s1 = peg$c132(s1,s3);
3994
- if (s1 === null) {
3995
- peg$currPos = s0;
3996
- s0 = s1;
4174
+ peg$reportedPos = peg$currPos;
4175
+ s5 = peg$c130(s1,s3);
4176
+ if (s5) {
4177
+ s5 = peg$c1;
3997
4178
  } else {
3998
- s0 = s1;
4179
+ s5 = peg$c0;
4180
+ }
4181
+ if (s5 !== null) {
4182
+ peg$reportedPos = s0;
4183
+ s1 = peg$c131(s1,s3);
4184
+ if (s1 === null) {
4185
+ peg$currPos = s0;
4186
+ s0 = s1;
4187
+ } else {
4188
+ s0 = s1;
4189
+ }
4190
+ } else {
4191
+ peg$currPos = s0;
4192
+ s0 = peg$c0;
3999
4193
  }
4000
4194
  } else {
4001
4195
  peg$currPos = s0;
@@ -4034,7 +4228,7 @@ Emblem.Parser = (function() {
4034
4228
  s3 = peg$parsepathIdNode();
4035
4229
  if (s3 !== null) {
4036
4230
  peg$reportedPos = s0;
4037
- s1 = peg$c133(s1,s3);
4231
+ s1 = peg$c132(s1,s3);
4038
4232
  if (s1 === null) {
4039
4233
  peg$currPos = s0;
4040
4234
  s0 = s1;
@@ -4071,10 +4265,10 @@ Emblem.Parser = (function() {
4071
4265
  if (peg$silentFails === 0) { peg$fail(peg$c26); }
4072
4266
  }
4073
4267
  if (s2 !== null) {
4074
- s3 = peg$parsestring();
4268
+ s3 = peg$parseattributeTextNodes();
4075
4269
  if (s3 !== null) {
4076
4270
  peg$reportedPos = s0;
4077
- s1 = peg$c134(s1,s3);
4271
+ s1 = peg$c133(s1,s3);
4078
4272
  if (s1 === null) {
4079
4273
  peg$currPos = s0;
4080
4274
  s0 = s1;
@@ -4131,28 +4325,28 @@ Emblem.Parser = (function() {
4131
4325
 
4132
4326
  s0 = peg$parsealpha();
4133
4327
  if (s0 === null) {
4134
- if (peg$c68.test(input.charAt(peg$currPos))) {
4328
+ if (peg$c64.test(input.charAt(peg$currPos))) {
4135
4329
  s0 = input.charAt(peg$currPos);
4136
4330
  peg$currPos++;
4137
4331
  } else {
4138
4332
  s0 = null;
4139
- if (peg$silentFails === 0) { peg$fail(peg$c69); }
4333
+ if (peg$silentFails === 0) { peg$fail(peg$c65); }
4140
4334
  }
4141
4335
  if (s0 === null) {
4142
4336
  if (input.charCodeAt(peg$currPos) === 95) {
4143
- s0 = peg$c135;
4337
+ s0 = peg$c134;
4144
4338
  peg$currPos++;
4145
4339
  } else {
4146
4340
  s0 = null;
4147
- if (peg$silentFails === 0) { peg$fail(peg$c136); }
4341
+ if (peg$silentFails === 0) { peg$fail(peg$c135); }
4148
4342
  }
4149
4343
  if (s0 === null) {
4150
4344
  if (input.charCodeAt(peg$currPos) === 45) {
4151
- s0 = peg$c137;
4345
+ s0 = peg$c136;
4152
4346
  peg$currPos++;
4153
4347
  } else {
4154
4348
  s0 = null;
4155
- if (peg$silentFails === 0) { peg$fail(peg$c138); }
4349
+ if (peg$silentFails === 0) { peg$fail(peg$c137); }
4156
4350
  }
4157
4351
  }
4158
4352
  }
@@ -4166,17 +4360,17 @@ Emblem.Parser = (function() {
4166
4360
 
4167
4361
  s0 = peg$currPos;
4168
4362
  if (input.charCodeAt(peg$currPos) === 37) {
4169
- s1 = peg$c139;
4363
+ s1 = peg$c138;
4170
4364
  peg$currPos++;
4171
4365
  } else {
4172
4366
  s1 = null;
4173
- if (peg$silentFails === 0) { peg$fail(peg$c140); }
4367
+ if (peg$silentFails === 0) { peg$fail(peg$c139); }
4174
4368
  }
4175
4369
  if (s1 !== null) {
4176
4370
  s2 = peg$parsecssIdentifier();
4177
4371
  if (s2 !== null) {
4178
4372
  peg$reportedPos = s0;
4179
- s1 = peg$c95(s2);
4373
+ s1 = peg$c92(s2);
4180
4374
  if (s1 === null) {
4181
4375
  peg$currPos = s0;
4182
4376
  s0 = s1;
@@ -4200,17 +4394,17 @@ Emblem.Parser = (function() {
4200
4394
 
4201
4395
  s0 = peg$currPos;
4202
4396
  if (input.charCodeAt(peg$currPos) === 35) {
4203
- s1 = peg$c141;
4397
+ s1 = peg$c140;
4204
4398
  peg$currPos++;
4205
4399
  } else {
4206
4400
  s1 = null;
4207
- if (peg$silentFails === 0) { peg$fail(peg$c142); }
4401
+ if (peg$silentFails === 0) { peg$fail(peg$c141); }
4208
4402
  }
4209
4403
  if (s1 !== null) {
4210
4404
  s2 = peg$parsecssIdentifier();
4211
4405
  if (s2 !== null) {
4212
4406
  peg$reportedPos = s0;
4213
- s1 = peg$c143(s2);
4407
+ s1 = peg$c142(s2);
4214
4408
  if (s1 === null) {
4215
4409
  peg$currPos = s0;
4216
4410
  s0 = s1;
@@ -4234,17 +4428,17 @@ Emblem.Parser = (function() {
4234
4428
 
4235
4429
  s0 = peg$currPos;
4236
4430
  if (input.charCodeAt(peg$currPos) === 46) {
4237
- s1 = peg$c46;
4431
+ s1 = peg$c42;
4238
4432
  peg$currPos++;
4239
4433
  } else {
4240
4434
  s1 = null;
4241
- if (peg$silentFails === 0) { peg$fail(peg$c47); }
4435
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
4242
4436
  }
4243
4437
  if (s1 !== null) {
4244
4438
  s2 = peg$parsecssIdentifier();
4245
4439
  if (s2 !== null) {
4246
4440
  peg$reportedPos = s0;
4247
- s1 = peg$c95(s2);
4441
+ s1 = peg$c92(s2);
4248
4442
  if (s1 === null) {
4249
4443
  peg$currPos = s0;
4250
4444
  s0 = s1;
@@ -4271,7 +4465,7 @@ Emblem.Parser = (function() {
4271
4465
  peg$silentFails--;
4272
4466
  if (s0 === null) {
4273
4467
  s1 = null;
4274
- if (peg$silentFails === 0) { peg$fail(peg$c144); }
4468
+ if (peg$silentFails === 0) { peg$fail(peg$c143); }
4275
4469
  }
4276
4470
 
4277
4471
  return s0;
@@ -4296,7 +4490,7 @@ Emblem.Parser = (function() {
4296
4490
  s2 = s3;
4297
4491
  if (s2 !== null) {
4298
4492
  peg$reportedPos = s0;
4299
- s1 = peg$c145(s1,s2);
4493
+ s1 = peg$c144(s1,s2);
4300
4494
  if (s1 === null) {
4301
4495
  peg$currPos = s0;
4302
4496
  s0 = s1;
@@ -4318,12 +4512,12 @@ Emblem.Parser = (function() {
4318
4512
  function peg$parsenmchar() {
4319
4513
  var s0;
4320
4514
 
4321
- if (peg$c146.test(input.charAt(peg$currPos))) {
4515
+ if (peg$c145.test(input.charAt(peg$currPos))) {
4322
4516
  s0 = input.charAt(peg$currPos);
4323
4517
  peg$currPos++;
4324
4518
  } else {
4325
4519
  s0 = null;
4326
- if (peg$silentFails === 0) { peg$fail(peg$c147); }
4520
+ if (peg$silentFails === 0) { peg$fail(peg$c146); }
4327
4521
  }
4328
4522
  if (s0 === null) {
4329
4523
  s0 = peg$parsenonascii();
@@ -4335,12 +4529,12 @@ Emblem.Parser = (function() {
4335
4529
  function peg$parsenmstart() {
4336
4530
  var s0;
4337
4531
 
4338
- if (peg$c148.test(input.charAt(peg$currPos))) {
4532
+ if (peg$c147.test(input.charAt(peg$currPos))) {
4339
4533
  s0 = input.charAt(peg$currPos);
4340
4534
  peg$currPos++;
4341
4535
  } else {
4342
4536
  s0 = null;
4343
- if (peg$silentFails === 0) { peg$fail(peg$c149); }
4537
+ if (peg$silentFails === 0) { peg$fail(peg$c148); }
4344
4538
  }
4345
4539
  if (s0 === null) {
4346
4540
  s0 = peg$parsenonascii();
@@ -4352,12 +4546,12 @@ Emblem.Parser = (function() {
4352
4546
  function peg$parsenonascii() {
4353
4547
  var s0;
4354
4548
 
4355
- if (peg$c150.test(input.charAt(peg$currPos))) {
4549
+ if (peg$c149.test(input.charAt(peg$currPos))) {
4356
4550
  s0 = input.charAt(peg$currPos);
4357
4551
  peg$currPos++;
4358
4552
  } else {
4359
4553
  s0 = null;
4360
- if (peg$silentFails === 0) { peg$fail(peg$c151); }
4554
+ if (peg$silentFails === 0) { peg$fail(peg$c150); }
4361
4555
  }
4362
4556
 
4363
4557
  return s0;
@@ -4391,17 +4585,17 @@ Emblem.Parser = (function() {
4391
4585
  peg$silentFails++;
4392
4586
  s0 = peg$currPos;
4393
4587
  if (input.charCodeAt(peg$currPos) === 37) {
4394
- s1 = peg$c139;
4588
+ s1 = peg$c138;
4395
4589
  peg$currPos++;
4396
4590
  } else {
4397
4591
  s1 = null;
4398
- if (peg$silentFails === 0) { peg$fail(peg$c140); }
4592
+ if (peg$silentFails === 0) { peg$fail(peg$c139); }
4399
4593
  }
4400
4594
  if (s1 !== null) {
4401
4595
  s2 = peg$parsetagString();
4402
4596
  if (s2 !== null) {
4403
4597
  peg$reportedPos = s0;
4404
- s1 = peg$c50(s2);
4598
+ s1 = peg$c46(s2);
4405
4599
  if (s1 === null) {
4406
4600
  peg$currPos = s0;
4407
4601
  s0 = s1;
@@ -4422,7 +4616,7 @@ Emblem.Parser = (function() {
4422
4616
  peg$silentFails--;
4423
4617
  if (s0 === null) {
4424
4618
  s1 = null;
4425
- if (peg$silentFails === 0) { peg$fail(peg$c152); }
4619
+ if (peg$silentFails === 0) { peg$fail(peg$c151); }
4426
4620
  }
4427
4621
 
4428
4622
  return s0;
@@ -4435,7 +4629,7 @@ Emblem.Parser = (function() {
4435
4629
  s1 = peg$parsetagString();
4436
4630
  if (s1 !== null) {
4437
4631
  peg$reportedPos = peg$currPos;
4438
- s2 = peg$c153(s1);
4632
+ s2 = peg$c152(s1);
4439
4633
  if (s2) {
4440
4634
  s2 = peg$c1;
4441
4635
  } else {
@@ -4443,7 +4637,7 @@ Emblem.Parser = (function() {
4443
4637
  }
4444
4638
  if (s2 !== null) {
4445
4639
  peg$reportedPos = s0;
4446
- s1 = peg$c154(s1);
4640
+ s1 = peg$c153(s1);
4447
4641
  if (s1 === null) {
4448
4642
  peg$currPos = s0;
4449
4643
  s0 = s1;
@@ -4465,12 +4659,12 @@ Emblem.Parser = (function() {
4465
4659
  function peg$parsetagChar() {
4466
4660
  var s0;
4467
4661
 
4468
- if (peg$c155.test(input.charAt(peg$currPos))) {
4662
+ if (peg$c154.test(input.charAt(peg$currPos))) {
4469
4663
  s0 = input.charAt(peg$currPos);
4470
4664
  peg$currPos++;
4471
4665
  } else {
4472
4666
  s0 = null;
4473
- if (peg$silentFails === 0) { peg$fail(peg$c156); }
4667
+ if (peg$silentFails === 0) { peg$fail(peg$c155); }
4474
4668
  }
4475
4669
 
4476
4670
  return s0;
@@ -4484,7 +4678,7 @@ Emblem.Parser = (function() {
4484
4678
  s1 = peg$parsetagString();
4485
4679
  if (s1 !== null) {
4486
4680
  peg$reportedPos = peg$currPos;
4487
- s2 = peg$c158(s1);
4681
+ s2 = peg$c157(s1);
4488
4682
  if (s2) {
4489
4683
  s2 = peg$c1;
4490
4684
  } else {
@@ -4492,7 +4686,7 @@ Emblem.Parser = (function() {
4492
4686
  }
4493
4687
  if (s2 !== null) {
4494
4688
  peg$reportedPos = s0;
4495
- s1 = peg$c154(s1);
4689
+ s1 = peg$c153(s1);
4496
4690
  if (s1 === null) {
4497
4691
  peg$currPos = s0;
4498
4692
  s0 = s1;
@@ -4510,7 +4704,7 @@ Emblem.Parser = (function() {
4510
4704
  peg$silentFails--;
4511
4705
  if (s0 === null) {
4512
4706
  s1 = null;
4513
- if (peg$silentFails === 0) { peg$fail(peg$c157); }
4707
+ if (peg$silentFails === 0) { peg$fail(peg$c156); }
4514
4708
  }
4515
4709
 
4516
4710
  return s0;
@@ -4525,7 +4719,7 @@ Emblem.Parser = (function() {
4525
4719
  s2 = peg$parse__();
4526
4720
  if (s2 !== null) {
4527
4721
  peg$reportedPos = s0;
4528
- s1 = peg$c50(s2);
4722
+ s1 = peg$c46(s2);
4529
4723
  if (s1 === null) {
4530
4724
  peg$currPos = s0;
4531
4725
  s0 = s1;
@@ -4550,15 +4744,15 @@ Emblem.Parser = (function() {
4550
4744
  peg$silentFails++;
4551
4745
  s0 = peg$currPos;
4552
4746
  if (input.charCodeAt(peg$currPos) === 61423) {
4553
- s1 = peg$c160;
4747
+ s1 = peg$c159;
4554
4748
  peg$currPos++;
4555
4749
  } else {
4556
4750
  s1 = null;
4557
- if (peg$silentFails === 0) { peg$fail(peg$c161); }
4751
+ if (peg$silentFails === 0) { peg$fail(peg$c160); }
4558
4752
  }
4559
4753
  if (s1 !== null) {
4560
4754
  peg$reportedPos = s0;
4561
- s1 = peg$c162();
4755
+ s1 = peg$c161();
4562
4756
  }
4563
4757
  if (s1 === null) {
4564
4758
  peg$currPos = s0;
@@ -4569,7 +4763,7 @@ Emblem.Parser = (function() {
4569
4763
  peg$silentFails--;
4570
4764
  if (s0 === null) {
4571
4765
  s1 = null;
4572
- if (peg$silentFails === 0) { peg$fail(peg$c159); }
4766
+ if (peg$silentFails === 0) { peg$fail(peg$c158); }
4573
4767
  }
4574
4768
 
4575
4769
  return s0;
@@ -4581,15 +4775,15 @@ Emblem.Parser = (function() {
4581
4775
  peg$silentFails++;
4582
4776
  s0 = peg$currPos;
4583
4777
  if (input.charCodeAt(peg$currPos) === 61438) {
4584
- s1 = peg$c164;
4778
+ s1 = peg$c163;
4585
4779
  peg$currPos++;
4586
4780
  } else {
4587
4781
  s1 = null;
4588
- if (peg$silentFails === 0) { peg$fail(peg$c165); }
4782
+ if (peg$silentFails === 0) { peg$fail(peg$c164); }
4589
4783
  }
4590
4784
  if (s1 !== null) {
4591
4785
  peg$reportedPos = s0;
4592
- s1 = peg$c162();
4786
+ s1 = peg$c161();
4593
4787
  }
4594
4788
  if (s1 === null) {
4595
4789
  peg$currPos = s0;
@@ -4600,7 +4794,7 @@ Emblem.Parser = (function() {
4600
4794
  peg$silentFails--;
4601
4795
  if (s0 === null) {
4602
4796
  s1 = null;
4603
- if (peg$silentFails === 0) { peg$fail(peg$c163); }
4797
+ if (peg$silentFails === 0) { peg$fail(peg$c162); }
4604
4798
  }
4605
4799
 
4606
4800
  return s0;
@@ -4612,15 +4806,15 @@ Emblem.Parser = (function() {
4612
4806
  peg$silentFails++;
4613
4807
  s0 = peg$currPos;
4614
4808
  if (input.charCodeAt(peg$currPos) === 61422) {
4615
- s1 = peg$c167;
4809
+ s1 = peg$c166;
4616
4810
  peg$currPos++;
4617
4811
  } else {
4618
4812
  s1 = null;
4619
- if (peg$silentFails === 0) { peg$fail(peg$c168); }
4813
+ if (peg$silentFails === 0) { peg$fail(peg$c167); }
4620
4814
  }
4621
4815
  if (s1 !== null) {
4622
4816
  peg$reportedPos = s0;
4623
- s1 = peg$c162();
4817
+ s1 = peg$c161();
4624
4818
  }
4625
4819
  if (s1 === null) {
4626
4820
  peg$currPos = s0;
@@ -4631,7 +4825,7 @@ Emblem.Parser = (function() {
4631
4825
  peg$silentFails--;
4632
4826
  if (s0 === null) {
4633
4827
  s1 = null;
4634
- if (peg$silentFails === 0) { peg$fail(peg$c166); }
4828
+ if (peg$silentFails === 0) { peg$fail(peg$c165); }
4635
4829
  }
4636
4830
 
4637
4831
  return s0;
@@ -4643,19 +4837,19 @@ Emblem.Parser = (function() {
4643
4837
  peg$silentFails++;
4644
4838
  s0 = peg$currPos;
4645
4839
  if (input.charCodeAt(peg$currPos) === 61439) {
4646
- s1 = peg$c170;
4840
+ s1 = peg$c169;
4647
4841
  peg$currPos++;
4648
4842
  } else {
4649
4843
  s1 = null;
4650
- if (peg$silentFails === 0) { peg$fail(peg$c171); }
4844
+ if (peg$silentFails === 0) { peg$fail(peg$c170); }
4651
4845
  }
4652
4846
  if (s1 !== null) {
4653
4847
  if (input.charCodeAt(peg$currPos) === 10) {
4654
- s2 = peg$c172;
4848
+ s2 = peg$c171;
4655
4849
  peg$currPos++;
4656
4850
  } else {
4657
4851
  s2 = null;
4658
- if (peg$silentFails === 0) { peg$fail(peg$c173); }
4852
+ if (peg$silentFails === 0) { peg$fail(peg$c172); }
4659
4853
  }
4660
4854
  if (s2 !== null) {
4661
4855
  s1 = [s1, s2];
@@ -4671,7 +4865,7 @@ Emblem.Parser = (function() {
4671
4865
  peg$silentFails--;
4672
4866
  if (s0 === null) {
4673
4867
  s1 = null;
4674
- if (peg$silentFails === 0) { peg$fail(peg$c169); }
4868
+ if (peg$silentFails === 0) { peg$fail(peg$c168); }
4675
4869
  }
4676
4870
 
4677
4871
  return s0;
@@ -4688,7 +4882,7 @@ Emblem.Parser = (function() {
4688
4882
  peg$silentFails--;
4689
4883
  if (s0 === null) {
4690
4884
  s1 = null;
4691
- if (peg$silentFails === 0) { peg$fail(peg$c174); }
4885
+ if (peg$silentFails === 0) { peg$fail(peg$c173); }
4692
4886
  }
4693
4887
 
4694
4888
  return s0;
@@ -4716,7 +4910,7 @@ Emblem.Parser = (function() {
4716
4910
  peg$silentFails--;
4717
4911
  if (s0 === null) {
4718
4912
  s1 = null;
4719
- if (peg$silentFails === 0) { peg$fail(peg$c175); }
4913
+ if (peg$silentFails === 0) { peg$fail(peg$c174); }
4720
4914
  }
4721
4915
 
4722
4916
  return s0;
@@ -4735,7 +4929,7 @@ Emblem.Parser = (function() {
4735
4929
  peg$silentFails--;
4736
4930
  if (s0 === null) {
4737
4931
  s1 = null;
4738
- if (peg$silentFails === 0) { peg$fail(peg$c176); }
4932
+ if (peg$silentFails === 0) { peg$fail(peg$c175); }
4739
4933
  }
4740
4934
 
4741
4935
  return s0;
@@ -4745,17 +4939,17 @@ Emblem.Parser = (function() {
4745
4939
  var s0, s1;
4746
4940
 
4747
4941
  peg$silentFails++;
4748
- if (peg$c178.test(input.charAt(peg$currPos))) {
4942
+ if (peg$c177.test(input.charAt(peg$currPos))) {
4749
4943
  s0 = input.charAt(peg$currPos);
4750
4944
  peg$currPos++;
4751
4945
  } else {
4752
4946
  s0 = null;
4753
- if (peg$silentFails === 0) { peg$fail(peg$c179); }
4947
+ if (peg$silentFails === 0) { peg$fail(peg$c178); }
4754
4948
  }
4755
4949
  peg$silentFails--;
4756
4950
  if (s0 === null) {
4757
4951
  s1 = null;
4758
- if (peg$silentFails === 0) { peg$fail(peg$c177); }
4952
+ if (peg$silentFails === 0) { peg$fail(peg$c176); }
4759
4953
  }
4760
4954
 
4761
4955
  return s0;
@@ -4787,11 +4981,11 @@ Emblem.Parser = (function() {
4787
4981
  peg$currPos++;
4788
4982
  } else {
4789
4983
  s2 = null;
4790
- if (peg$silentFails === 0) { peg$fail(peg$c94); }
4984
+ if (peg$silentFails === 0) { peg$fail(peg$c91); }
4791
4985
  }
4792
4986
  if (s2 !== null) {
4793
4987
  peg$reportedPos = s0;
4794
- s1 = peg$c95(s2);
4988
+ s1 = peg$c92(s2);
4795
4989
  if (s1 === null) {
4796
4990
  peg$currPos = s0;
4797
4991
  s0 = s1;
@@ -4906,6 +5100,22 @@ Emblem.Parser = (function() {
4906
5100
  return new AST.MustacheNode(params, hash, !mustacheNode.escaped);
4907
5101
  }
4908
5102
 
5103
+ function textNodesResult(first, tail) {
5104
+ var ret = [];
5105
+ if(first) { ret.push(first); }
5106
+ for(var i = 0; i < tail.length; ++i) {
5107
+ var t = tail[i];
5108
+ ret.push(t[0]);
5109
+ if(t[1]) { ret.push(t[1]); }
5110
+ }
5111
+ return ret;
5112
+ }
5113
+
5114
+ // Only for debugging use.
5115
+ function log(msg) {
5116
+ handlebarsVariant.log(9, msg);
5117
+ }
5118
+
4909
5119
 
4910
5120
  peg$result = peg$startRuleFunction();
4911
5121