emblem-source 0.1.18 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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;