barber-emblem 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module Barber
2
2
  module Emblem
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -308,15 +308,22 @@ Emblem.Parser = (function() {
308
308
 
309
309
  return compressedStatements;
310
310
  },
311
- peg$c8 = function(m) {
311
+ peg$c8 = "BeginStatement",
312
+ peg$c9 = function() { return []; },
313
+ peg$c10 = ">",
314
+ peg$c11 = "\">\"",
315
+ peg$c12 = function(n, p) { return new AST.PartialNode(n, p); },
316
+ peg$c13 = /^[a-zA-Z0-9_$-\/]/,
317
+ peg$c14 = "[a-zA-Z0-9_$-\\/]",
318
+ peg$c15 = function(s) { return new AST.PartialNameNode(s); },
319
+ peg$c16 = function(m) {
312
320
  return [m];
313
321
  },
314
- peg$c9 = "/",
315
- peg$c10 = "\"/\"",
316
- peg$c11 = function() { return []; },
317
- peg$c12 = /^[A-Z]/,
318
- peg$c13 = "[A-Z]",
319
- peg$c14 = function(ret) {
322
+ peg$c17 = "/",
323
+ peg$c18 = "\"/\"",
324
+ peg$c19 = /^[A-Z]/,
325
+ peg$c20 = "[A-Z]",
326
+ peg$c21 = function(ret) {
320
327
  // TODO make this configurable
321
328
  var defaultCapitalizedHelper = 'view';
322
329
 
@@ -338,10 +345,10 @@ Emblem.Parser = (function() {
338
345
  return unshiftParam(ret, defaultCapitalizedHelper);
339
346
  }
340
347
  },
341
- peg$c15 = function(h, c) {
348
+ peg$c22 = function(h, c) {
342
349
  var ret = h[0];
343
350
  if(c) {
344
- ret = ret.concat(c[1]);
351
+ ret = ret.concat(c[2]);
345
352
  }
346
353
 
347
354
  // Push the closing tag ContentNode if it exists (self-closing if not)
@@ -351,9 +358,11 @@ Emblem.Parser = (function() {
351
358
 
352
359
  return ret;
353
360
  },
354
- peg$c16 = " ",
355
- peg$c17 = "\" \"",
356
- peg$c18 = function(h, c, multilineContent) {
361
+ peg$c23 = " ",
362
+ peg$c24 = "\" \"",
363
+ peg$c25 = "=",
364
+ peg$c26 = "\"=\"",
365
+ peg$c27 = function(h, c, multilineContent) {
357
366
  // h is [[open tag content], closing tag ContentNode]
358
367
  var ret = h[0];
359
368
  if(c) {
@@ -367,6 +376,7 @@ Emblem.Parser = (function() {
367
376
 
368
377
  multilineContent = multilineContent[1];
369
378
  for(var i = 0; i < multilineContent.length; ++i) {
379
+ ret.push(new AST.ContentNode(' '));
370
380
  ret = ret.concat(multilineContent[i]);
371
381
  }
372
382
  }
@@ -378,17 +388,21 @@ Emblem.Parser = (function() {
378
388
 
379
389
  return ret;
380
390
  },
381
- peg$c19 = function(mustacheNode, block) {
391
+ peg$c28 = function(mustacheNode, block) {
382
392
  if(!block) return mustacheNode;
383
- var programNode = block[1];
393
+ var programNode = block[2];
384
394
  return new AST.BlockNode(mustacheNode, programNode, programNode.inverse, mustacheNode.id);
385
395
  },
386
- peg$c20 = function(e, ret) {
396
+ peg$c29 = function(mustacheNode, t) {
397
+ var programNode = new AST.ProgramNode(t, []);
398
+ return new AST.BlockNode(mustacheNode, programNode, programNode.inverse, mustacheNode.id);
399
+ },
400
+ peg$c30 = function(e, ret) {
387
401
  var mustache = ret.mustache || ret;
388
402
  mustache.escaped = e;
389
403
  return ret;
390
404
  },
391
- peg$c21 = function(path, tm, params, hash) {
405
+ peg$c31 = function(path, tm, params, hash) {
392
406
  var actualParams = [];
393
407
  var attrs = {};
394
408
  var hasAttrs = false;
@@ -428,35 +442,33 @@ Emblem.Parser = (function() {
428
442
 
429
443
  return mustacheNode;
430
444
  },
431
- peg$c22 = function(p, m) {
445
+ peg$c32 = function(p, m) {
432
446
  var ret = new String(p);
433
447
  ret.trailingModifier = m;
434
448
  return ret;
435
449
  },
436
- peg$c23 = function(t) { return ['tagName', t]; },
437
- peg$c24 = function(i) { return ['elementId', i]; },
438
- peg$c25 = function(c) { return ['class', c]; },
439
- peg$c26 = function(id, classes) { return [id, classes]; },
440
- peg$c27 = function(classes) { return [null, classes]; },
441
- peg$c28 = function(h) { return h; },
442
- peg$c29 = "TrailingModifier",
443
- peg$c30 = /^[!?*\^]/,
444
- peg$c31 = "[!?*\\^]",
445
- peg$c32 = function(h) { return new AST.HashNode(h); },
446
- peg$c33 = "PathIdent",
447
- peg$c34 = "..",
448
- peg$c35 = "\"..\"",
449
- peg$c36 = ".",
450
- peg$c37 = "\".\"",
451
- peg$c38 = /^[a-zA-Z0-9_$\-]/,
452
- peg$c39 = "[a-zA-Z0-9_$\\-]",
453
- peg$c40 = "=",
454
- peg$c41 = "\"=\"",
455
- peg$c42 = function(s) { return s; },
456
- peg$c43 = "Key",
457
- peg$c44 = function(h) { return [h[0], h[2]]; },
458
- peg$c45 = function(p) { return p; },
459
- peg$c46 = function(first, tail) {
450
+ peg$c33 = function(t) { return ['tagName', t]; },
451
+ peg$c34 = function(i) { return ['elementId', i]; },
452
+ peg$c35 = function(c) { return ['class', c]; },
453
+ peg$c36 = function(id, classes) { return [id, classes]; },
454
+ peg$c37 = function(classes) { return [null, classes]; },
455
+ peg$c38 = function(h) { return h; },
456
+ peg$c39 = "TrailingModifier",
457
+ peg$c40 = /^[!?*\^]/,
458
+ peg$c41 = "[!?*\\^]",
459
+ peg$c42 = function(h) { return new AST.HashNode(h); },
460
+ peg$c43 = "PathIdent",
461
+ peg$c44 = "..",
462
+ peg$c45 = "\"..\"",
463
+ peg$c46 = ".",
464
+ peg$c47 = "\".\"",
465
+ peg$c48 = /^[a-zA-Z0-9_$\-]/,
466
+ peg$c49 = "[a-zA-Z0-9_$\\-]",
467
+ peg$c50 = function(s) { return s; },
468
+ peg$c51 = "Key",
469
+ peg$c52 = function(h) { return [h[0], h[2]]; },
470
+ peg$c53 = function(p) { return p; },
471
+ peg$c54 = function(first, tail) {
460
472
  var ret = [first];
461
473
  for(var i = 0; i < tail.length; ++i) {
462
474
  //ret = ret.concat(tail[i]);
@@ -464,48 +476,79 @@ Emblem.Parser = (function() {
464
476
  }
465
477
  return ret;
466
478
  },
467
- peg$c47 = "PathSeparator",
468
- peg$c48 = /^[\/.]/,
469
- peg$c49 = "[\\/.]",
470
- peg$c50 = function(v) { return new AST.IdNode(v); },
471
- peg$c51 = function(v) { return new AST.StringNode(v); },
472
- peg$c52 = function(v) { return new AST.IntegerNode(v); },
473
- peg$c53 = function(v) { return new AST.BooleanNode(v); },
474
- peg$c54 = "Boolean",
475
- peg$c55 = "true",
476
- peg$c56 = "\"true\"",
477
- peg$c57 = "false",
478
- peg$c58 = "\"false\"",
479
- peg$c59 = "Integer",
480
- peg$c60 = /^[0-9]/,
481
- peg$c61 = "[0-9]",
482
- peg$c62 = function(s) { return parseInt(s); },
483
- peg$c63 = "\"",
484
- peg$c64 = "\"\\\"\"",
485
- peg$c65 = "'",
486
- peg$c66 = "\"'\"",
487
- peg$c67 = function(p) { return p[1]; },
488
- peg$c68 = /^[^"}]/,
489
- peg$c69 = "[^\"}]",
490
- peg$c70 = /^[^'}]/,
491
- peg$c71 = "[^'}]",
492
- peg$c72 = /^[A-Za-z]/,
493
- peg$c73 = "[A-Za-z]",
494
- peg$c74 = function(m) { return [m]; },
495
- peg$c75 = "|",
496
- peg$c76 = "\"|\"",
497
- peg$c77 = "<",
498
- peg$c78 = "\"<\"",
499
- peg$c79 = function(nodes, indentedNodes) {
479
+ peg$c55 = "PathSeparator",
480
+ peg$c56 = /^[\/.]/,
481
+ peg$c57 = "[\\/.]",
482
+ peg$c58 = function(v) { return new AST.IdNode(v); },
483
+ peg$c59 = function(v) { return new AST.StringNode(v); },
484
+ peg$c60 = function(v) { return new AST.IntegerNode(v); },
485
+ peg$c61 = function(v) { return new AST.BooleanNode(v); },
486
+ peg$c62 = "Boolean",
487
+ peg$c63 = "true",
488
+ peg$c64 = "\"true\"",
489
+ peg$c65 = "false",
490
+ peg$c66 = "\"false\"",
491
+ peg$c67 = "Integer",
492
+ peg$c68 = /^[0-9]/,
493
+ peg$c69 = "[0-9]",
494
+ peg$c70 = function(s) { return parseInt(s); },
495
+ peg$c71 = "\"",
496
+ peg$c72 = "\"\\\"\"",
497
+ peg$c73 = "'",
498
+ peg$c74 = "\"'\"",
499
+ peg$c75 = function(p) { return p[1]; },
500
+ peg$c76 = /^[^"}]/,
501
+ peg$c77 = "[^\"}]",
502
+ peg$c78 = /^[^'}]/,
503
+ peg$c79 = "[^'}]",
504
+ peg$c80 = /^[A-Za-z]/,
505
+ peg$c81 = "[A-Za-z]",
506
+ peg$c82 = function(m) { return [m]; },
507
+ peg$c83 = function(ind, nodes, w) {
508
+ nodes.unshift(new AST.ContentNode(ind));
509
+
510
+ for(var i = 0; i < w.length; ++i) {
511
+ nodes.push(new AST.ContentNode(ind));
512
+ nodes = nodes.concat(w[i]);
513
+ nodes.push("\n");
514
+ }
515
+ return nodes;
516
+ },
517
+ peg$c84 = /^[|`]/,
518
+ peg$c85 = "[|`]",
519
+ peg$c86 = "<",
520
+ peg$c87 = "\"<\"",
521
+ peg$c88 = function() { return '<'; },
522
+ peg$c89 = function(s, nodes, indentedNodes) {
523
+ if(nodes.length || !indentedNodes) {
524
+ nodes.push("\n");
525
+ }
526
+
500
527
  if(indentedNodes) {
501
528
  indentedNodes = indentedNodes[1];
502
529
  for(var i = 0; i < indentedNodes.length; ++i) {
530
+ /*nodes.push(new AST.ContentNode("#"));*/
503
531
  nodes = nodes.concat(indentedNodes[i]);
532
+ nodes.push("\n");
504
533
  }
505
534
  }
506
- return nodes;
535
+
536
+ var ret = [];
537
+ var strip = s !== '`';
538
+ for(var i = 0; i < nodes.length; ++i) {
539
+ var node = nodes[i];
540
+ if(node == "\n") {
541
+ if(!strip) {
542
+ ret.push(new AST.ContentNode("\n"));
543
+ }
544
+ } else {
545
+ ret.push(node);
546
+ }
547
+ }
548
+
549
+ return ret;
507
550
  },
508
- peg$c80 = function(first, tail) {
551
+ peg$c90 = function(first, tail) {
509
552
  var ret = [];
510
553
  if(first) { ret.push(first); }
511
554
  for(var i = 0; i < tail.length; ++i) {
@@ -515,40 +558,40 @@ Emblem.Parser = (function() {
515
558
  }
516
559
  return ret;
517
560
  },
518
- peg$c81 = function(m) { m.escaped = true; return m; },
519
- peg$c82 = function(m) { m.escaped = false; return m; },
520
- peg$c83 = function(a) { return new AST.ContentNode(a.join('')); },
521
- peg$c84 = "any character",
522
- peg$c85 = function(c) { return c; },
523
- peg$c86 = "SingleMustacheOpen",
524
- peg$c87 = "{",
525
- peg$c88 = "\"{\"",
526
- peg$c89 = "DoubleMustacheOpen",
527
- peg$c90 = "{{",
528
- peg$c91 = "\"{{\"",
529
- peg$c92 = "TripleMustacheOpen",
530
- peg$c93 = "{{{",
531
- peg$c94 = "\"{{{\"",
532
- peg$c95 = "SingleMustacheClose",
533
- peg$c96 = "}",
534
- peg$c97 = "\"}\"",
535
- peg$c98 = "DoubleMustacheClose",
536
- peg$c99 = "}}",
537
- peg$c100 = "\"}}\"",
538
- peg$c101 = "TripleMustacheClose",
539
- peg$c102 = "}}}",
540
- peg$c103 = "\"}}}\"",
541
- peg$c104 = "InterpolationOpen",
542
- peg$c105 = "#{",
543
- peg$c106 = "\"#{\"",
544
- peg$c107 = "InterpolationClose",
545
- peg$c108 = "==",
546
- peg$c109 = "\"==\"",
547
- peg$c110 = function() { return false; },
548
- peg$c111 = function() { return true; },
549
- peg$c112 = function(h, s, m, f) { return [h, s, m, f]; },
550
- peg$c113 = function(s, m, f) { return [null, s, m, f] },
551
- peg$c114 = function(h) {
561
+ peg$c91 = function(m) { m.escaped = true; return m; },
562
+ peg$c92 = function(m) { m.escaped = false; return m; },
563
+ peg$c93 = function(a) { return new AST.ContentNode(a.join('')); },
564
+ peg$c94 = "any character",
565
+ peg$c95 = function(c) { return c; },
566
+ peg$c96 = "SingleMustacheOpen",
567
+ peg$c97 = "{",
568
+ peg$c98 = "\"{\"",
569
+ peg$c99 = "DoubleMustacheOpen",
570
+ peg$c100 = "{{",
571
+ peg$c101 = "\"{{\"",
572
+ peg$c102 = "TripleMustacheOpen",
573
+ peg$c103 = "{{{",
574
+ peg$c104 = "\"{{{\"",
575
+ peg$c105 = "SingleMustacheClose",
576
+ peg$c106 = "}",
577
+ peg$c107 = "\"}\"",
578
+ peg$c108 = "DoubleMustacheClose",
579
+ peg$c109 = "}}",
580
+ peg$c110 = "\"}}\"",
581
+ peg$c111 = "TripleMustacheClose",
582
+ peg$c112 = "}}}",
583
+ peg$c113 = "\"}}}\"",
584
+ peg$c114 = "InterpolationOpen",
585
+ peg$c115 = "#{",
586
+ peg$c116 = "\"#{\"",
587
+ peg$c117 = "InterpolationClose",
588
+ peg$c118 = "==",
589
+ peg$c119 = "\"==\"",
590
+ peg$c120 = function() { return false; },
591
+ peg$c121 = function() { return true; },
592
+ peg$c122 = function(h, s, m, f) { return [h, s, m, f]; },
593
+ peg$c123 = function(s, m, f) { return [null, s, m, f] },
594
+ peg$c124 = function(h) {
552
595
  var tagName = h[0] || 'div',
553
596
  shorthandAttributes = h[1] || [],
554
597
  inTagMustaches = h[2],
@@ -585,378 +628,72 @@ Emblem.Parser = (function() {
585
628
  return [tagOpenContent, new AST.ContentNode('</' + tagName + '>')];
586
629
  }
587
630
  },
588
- peg$c115 = function(a) {
631
+ peg$c125 = function(a) {
589
632
  return [new AST.ContentNode(' '), a];
590
633
  },
591
- peg$c116 = /^[A-Za-z.:0-9]/,
592
- peg$c117 = "[A-Za-z.:0-9]",
593
- peg$c118 = function(id) { return new AST.MustacheNode([id]); },
594
- peg$c119 = function(event, mustacheNode) {
634
+ peg$c126 = /^[A-Za-z.:0-9_]/,
635
+ peg$c127 = "[A-Za-z.:0-9_]",
636
+ peg$c128 = function(id) { return new AST.MustacheNode([id]); },
637
+ peg$c129 = function(event, mustacheNode) {
595
638
  // Unshift the action helper and augment the hash
596
639
  return unshiftParam(mustacheNode, 'action', [['on', new AST.StringNode(event)]]);
597
640
  },
598
- peg$c120 = function(key, value) {
641
+ peg$c130 = function(value) { return value.replace(/ *$/, ''); },
642
+ peg$c131 = function(key, value) {
599
643
  var hashNode = new AST.HashNode([[key, new AST.StringNode(value)]]);
600
644
  var params = [new AST.IdNode(['bindAttr'])];
601
645
 
602
646
  return new AST.MustacheNode(params, hashNode);
603
647
  },
604
- peg$c121 = function(key, value) {
648
+ peg$c132 = function(key, value) {
605
649
  var s = key + '=' + '"' + value + '"';
606
650
  return new AST.ContentNode(s);
607
651
  },
608
- peg$c122 = "_",
609
- peg$c123 = "\"_\"",
610
- peg$c124 = "-",
611
- peg$c125 = "\"-\"",
612
- peg$c126 = "%",
613
- peg$c127 = "\"%\"",
614
- peg$c128 = "#",
615
- peg$c129 = "\"#\"",
616
- peg$c130 = function(c) { return c;},
617
- peg$c131 = "CSSIdentifier",
618
- peg$c132 = function(nmstart, nmchars) { return nmstart + nmchars; },
619
- peg$c133 = /^[_a-zA-Z0-9\-]/,
620
- peg$c134 = "[_a-zA-Z0-9\\-]",
621
- peg$c135 = /^[_a-zA-Z]/,
622
- peg$c136 = "[_a-zA-Z]",
623
- peg$c137 = /^[\x80-\xFF]/,
624
- peg$c138 = "[\\x80-\\xFF]",
625
- peg$c139 = "KnownHTMLTagName",
626
- peg$c140 = /^[:_a-zA-Z0-9\-]/,
627
- peg$c141 = "[:_a-zA-Z0-9\\-]",
628
- peg$c142 = "figcaption",
629
- peg$c143 = "\"figcaption\"",
630
- peg$c144 = "blockquote",
631
- peg$c145 = "\"blockquote\"",
632
- peg$c146 = "plaintext",
633
- peg$c147 = "\"plaintext\"",
634
- peg$c148 = "textarea",
635
- peg$c149 = "\"textarea\"",
636
- peg$c150 = "progress",
637
- peg$c151 = "\"progress\"",
638
- peg$c152 = "optgroup",
639
- peg$c153 = "\"optgroup\"",
640
- peg$c154 = "noscript",
641
- peg$c155 = "\"noscript\"",
642
- peg$c156 = "noframes",
643
- peg$c157 = "\"noframes\"",
644
- peg$c158 = "frameset",
645
- peg$c159 = "\"frameset\"",
646
- peg$c160 = "fieldset",
647
- peg$c161 = "\"fieldset\"",
648
- peg$c162 = "datalist",
649
- peg$c163 = "\"datalist\"",
650
- peg$c164 = "colgroup",
651
- peg$c165 = "\"colgroup\"",
652
- peg$c166 = "basefont",
653
- peg$c167 = "\"basefont\"",
654
- peg$c168 = "summary",
655
- peg$c169 = "\"summary\"",
656
- peg$c170 = "section",
657
- peg$c171 = "\"section\"",
658
- peg$c172 = "marquee",
659
- peg$c173 = "\"marquee\"",
660
- peg$c174 = "listing",
661
- peg$c175 = "\"listing\"",
662
- peg$c176 = "isindex",
663
- peg$c177 = "\"isindex\"",
664
- peg$c178 = "details",
665
- peg$c179 = "\"details\"",
666
- peg$c180 = "command",
667
- peg$c181 = "\"command\"",
668
- peg$c182 = "caption",
669
- peg$c183 = "\"caption\"",
670
- peg$c184 = "bgsound",
671
- peg$c185 = "\"bgsound\"",
672
- peg$c186 = "article",
673
- peg$c187 = "\"article\"",
674
- peg$c188 = "address",
675
- peg$c189 = "\"address\"",
676
- peg$c190 = "acronym",
677
- peg$c191 = "\"acronym\"",
678
- peg$c192 = "strong",
679
- peg$c193 = "\"strong\"",
680
- peg$c194 = "strike",
681
- peg$c195 = "\"strike\"",
682
- peg$c196 = "spacer",
683
- peg$c197 = "\"spacer\"",
684
- peg$c198 = "source",
685
- peg$c199 = "\"source\"",
686
- peg$c200 = "select",
687
- peg$c201 = "\"select\"",
688
- peg$c202 = "script",
689
- peg$c203 = "\"script\"",
690
- peg$c204 = "output",
691
- peg$c205 = "\"output\"",
692
- peg$c206 = "option",
693
- peg$c207 = "\"option\"",
694
- peg$c208 = "object",
695
- peg$c209 = "\"object\"",
696
- peg$c210 = "legend",
697
- peg$c211 = "\"legend\"",
698
- peg$c212 = "keygen",
699
- peg$c213 = "\"keygen\"",
700
- peg$c214 = "iframe",
701
- peg$c215 = "\"iframe\"",
702
- peg$c216 = "hgroup",
703
- peg$c217 = "\"hgroup\"",
704
- peg$c218 = "header",
705
- peg$c219 = "\"header\"",
706
- peg$c220 = "footer",
707
- peg$c221 = "\"footer\"",
708
- peg$c222 = "figure",
709
- peg$c223 = "\"figure\"",
710
- peg$c224 = "center",
711
- peg$c225 = "\"center\"",
712
- peg$c226 = "canvas",
713
- peg$c227 = "\"canvas\"",
714
- peg$c228 = "button",
715
- peg$c229 = "\"button\"",
716
- peg$c230 = "applet",
717
- peg$c231 = "\"applet\"",
718
- peg$c232 = "video",
719
- peg$c233 = "\"video\"",
720
- peg$c234 = "track",
721
- peg$c235 = "\"track\"",
722
- peg$c236 = "title",
723
- peg$c237 = "\"title\"",
724
- peg$c238 = "thead",
725
- peg$c239 = "\"thead\"",
726
- peg$c240 = "tfoot",
727
- peg$c241 = "\"tfoot\"",
728
- peg$c242 = "tbody",
729
- peg$c243 = "\"tbody\"",
730
- peg$c244 = "table",
731
- peg$c245 = "\"table\"",
732
- peg$c246 = "style",
733
- peg$c247 = "\"style\"",
734
- peg$c248 = "small",
735
- peg$c249 = "\"small\"",
736
- peg$c250 = "param",
737
- peg$c251 = "\"param\"",
738
- peg$c252 = "meter",
739
- peg$c253 = "\"meter\"",
740
- peg$c254 = "label",
741
- peg$c255 = "\"label\"",
742
- peg$c256 = "input",
743
- peg$c257 = "\"input\"",
744
- peg$c258 = "frame",
745
- peg$c259 = "\"frame\"",
746
- peg$c260 = "embed",
747
- peg$c261 = "\"embed\"",
748
- peg$c262 = "blink",
749
- peg$c263 = "\"blink\"",
750
- peg$c264 = "audio",
751
- peg$c265 = "\"audio\"",
752
- peg$c266 = "aside",
753
- peg$c267 = "\"aside\"",
754
- peg$c268 = "time",
755
- peg$c269 = "\"time\"",
756
- peg$c270 = "span",
757
- peg$c271 = "\"span\"",
758
- peg$c272 = "samp",
759
- peg$c273 = "\"samp\"",
760
- peg$c274 = "ruby",
761
- peg$c275 = "\"ruby\"",
762
- peg$c276 = "nobr",
763
- peg$c277 = "\"nobr\"",
764
- peg$c278 = "meta",
765
- peg$c279 = "\"meta\"",
766
- peg$c280 = "menu",
767
- peg$c281 = "\"menu\"",
768
- peg$c282 = "mark",
769
- peg$c283 = "\"mark\"",
770
- peg$c284 = "main",
771
- peg$c285 = "\"main\"",
772
- peg$c286 = "link",
773
- peg$c287 = "\"link\"",
774
- peg$c288 = "html",
775
- peg$c289 = "\"html\"",
776
- peg$c290 = "head",
777
- peg$c291 = "\"head\"",
778
- peg$c292 = "form",
779
- peg$c293 = "\"form\"",
780
- peg$c294 = "font",
781
- peg$c295 = "\"font\"",
782
- peg$c296 = "data",
783
- peg$c297 = "\"data\"",
784
- peg$c298 = "code",
785
- peg$c299 = "\"code\"",
786
- peg$c300 = "cite",
787
- peg$c301 = "\"cite\"",
788
- peg$c302 = "body",
789
- peg$c303 = "\"body\"",
790
- peg$c304 = "base",
791
- peg$c305 = "\"base\"",
792
- peg$c306 = "area",
793
- peg$c307 = "\"area\"",
794
- peg$c308 = "abbr",
795
- peg$c309 = "\"abbr\"",
796
- peg$c310 = "xmp",
797
- peg$c311 = "\"xmp\"",
798
- peg$c312 = "wbr",
799
- peg$c313 = "\"wbr\"",
800
- peg$c314 = "var",
801
- peg$c315 = "\"var\"",
802
- peg$c316 = "sup",
803
- peg$c317 = "\"sup\"",
804
- peg$c318 = "sub",
805
- peg$c319 = "\"sub\"",
806
- peg$c320 = "pre",
807
- peg$c321 = "\"pre\"",
808
- peg$c322 = "nav",
809
- peg$c323 = "\"nav\"",
810
- peg$c324 = "map",
811
- peg$c325 = "\"map\"",
812
- peg$c326 = "kbd",
813
- peg$c327 = "\"kbd\"",
814
- peg$c328 = "ins",
815
- peg$c329 = "\"ins\"",
816
- peg$c330 = "img",
817
- peg$c331 = "\"img\"",
818
- peg$c332 = "div",
819
- peg$c333 = "\"div\"",
820
- peg$c334 = "dir",
821
- peg$c335 = "\"dir\"",
822
- peg$c336 = "dfn",
823
- peg$c337 = "\"dfn\"",
824
- peg$c338 = "del",
825
- peg$c339 = "\"del\"",
826
- peg$c340 = "col",
827
- peg$c341 = "\"col\"",
828
- peg$c342 = "big",
829
- peg$c343 = "\"big\"",
830
- peg$c344 = "bdo",
831
- peg$c345 = "\"bdo\"",
832
- peg$c346 = "bdi",
833
- peg$c347 = "\"bdi\"",
834
- peg$c348 = "ul",
835
- peg$c349 = "\"ul\"",
836
- peg$c350 = "tt",
837
- peg$c351 = "\"tt\"",
838
- peg$c352 = "tr",
839
- peg$c353 = "\"tr\"",
840
- peg$c354 = "th",
841
- peg$c355 = "\"th\"",
842
- peg$c356 = "td",
843
- peg$c357 = "\"td\"",
844
- peg$c358 = "rt",
845
- peg$c359 = "\"rt\"",
846
- peg$c360 = "rp",
847
- peg$c361 = "\"rp\"",
848
- peg$c362 = "ol",
849
- peg$c363 = "\"ol\"",
850
- peg$c364 = "li",
851
- peg$c365 = "\"li\"",
852
- peg$c366 = "hr",
853
- peg$c367 = "\"hr\"",
854
- peg$c368 = "h6",
855
- peg$c369 = "\"h6\"",
856
- peg$c370 = "h5",
857
- peg$c371 = "\"h5\"",
858
- peg$c372 = "h4",
859
- peg$c373 = "\"h4\"",
860
- peg$c374 = "h3",
861
- peg$c375 = "\"h3\"",
862
- peg$c376 = "h2",
863
- peg$c377 = "\"h2\"",
864
- peg$c378 = "h1",
865
- peg$c379 = "\"h1\"",
866
- peg$c380 = "em",
867
- peg$c381 = "\"em\"",
868
- peg$c382 = "dt",
869
- peg$c383 = "\"dt\"",
870
- peg$c384 = "dl",
871
- peg$c385 = "\"dl\"",
872
- peg$c386 = "dd",
873
- peg$c387 = "\"dd\"",
874
- peg$c388 = "br",
875
- peg$c389 = "\"br\"",
876
- peg$c390 = "u",
877
- peg$c391 = "\"u\"",
878
- peg$c392 = "s",
879
- peg$c393 = "\"s\"",
880
- peg$c394 = "q",
881
- peg$c395 = "\"q\"",
882
- peg$c396 = "p",
883
- peg$c397 = "\"p\"",
884
- peg$c398 = "i",
885
- peg$c399 = "\"i\"",
886
- peg$c400 = "b",
887
- peg$c401 = "\"b\"",
888
- peg$c402 = "a",
889
- peg$c403 = "\"a\"",
890
- peg$c404 = "a JS event",
891
- peg$c405 = "touchStart",
892
- peg$c406 = "\"touchStart\"",
893
- peg$c407 = "touchMove",
894
- peg$c408 = "\"touchMove\"",
895
- peg$c409 = "touchEnd",
896
- peg$c410 = "\"touchEnd\"",
897
- peg$c411 = "touchCancel",
898
- peg$c412 = "\"touchCancel\"",
899
- peg$c413 = "keyDown",
900
- peg$c414 = "\"keyDown\"",
901
- peg$c415 = "keyUp",
902
- peg$c416 = "\"keyUp\"",
903
- peg$c417 = "keyPress",
904
- peg$c418 = "\"keyPress\"",
905
- peg$c419 = "mouseDown",
906
- peg$c420 = "\"mouseDown\"",
907
- peg$c421 = "mouseUp",
908
- peg$c422 = "\"mouseUp\"",
909
- peg$c423 = "contextMenu",
910
- peg$c424 = "\"contextMenu\"",
911
- peg$c425 = "click",
912
- peg$c426 = "\"click\"",
913
- peg$c427 = "doubleClick",
914
- peg$c428 = "\"doubleClick\"",
915
- peg$c429 = "mouseMove",
916
- peg$c430 = "\"mouseMove\"",
917
- peg$c431 = "focusIn",
918
- peg$c432 = "\"focusIn\"",
919
- peg$c433 = "focusOut",
920
- peg$c434 = "\"focusOut\"",
921
- peg$c435 = "mouseEnter",
922
- peg$c436 = "\"mouseEnter\"",
923
- peg$c437 = "mouseLeave",
924
- peg$c438 = "\"mouseLeave\"",
925
- peg$c439 = "submit",
926
- peg$c440 = "\"submit\"",
927
- peg$c441 = "change",
928
- peg$c442 = "\"change\"",
929
- peg$c443 = "dragStart",
930
- peg$c444 = "\"dragStart\"",
931
- peg$c445 = "drag",
932
- peg$c446 = "\"drag\"",
933
- peg$c447 = "dragEnter",
934
- peg$c448 = "\"dragEnter\"",
935
- peg$c449 = "dragLeave",
936
- peg$c450 = "\"dragLeave\"",
937
- peg$c451 = "dragOver",
938
- peg$c452 = "\"dragOver\"",
939
- peg$c453 = "drop",
940
- peg$c454 = "\"drop\"",
941
- peg$c455 = "dragEnd",
942
- peg$c456 = "\"dragEnd\"",
943
- peg$c457 = "INDENT",
944
- peg$c458 = "\uEFEF",
945
- peg$c459 = "\"\\uEFEF\"",
946
- peg$c460 = function() { return ''; },
947
- peg$c461 = "DEDENT",
948
- peg$c462 = "\uEFFE",
949
- peg$c463 = "\"\\uEFFE\"",
950
- peg$c464 = "LineEnd",
951
- peg$c465 = "\n",
952
- peg$c466 = "\"\\n\"",
953
- peg$c467 = "\uEFFF",
954
- peg$c468 = "\"\\uEFFF\"",
955
- peg$c469 = "RequiredWhitespace",
956
- peg$c470 = "OptionalWhitespace",
957
- peg$c471 = "InlineWhitespace",
958
- peg$c472 = /^[ \t]/,
959
- peg$c473 = "[ \\t]",
652
+ peg$c133 = "_",
653
+ peg$c134 = "\"_\"",
654
+ peg$c135 = "-",
655
+ peg$c136 = "\"-\"",
656
+ peg$c137 = "%",
657
+ peg$c138 = "\"%\"",
658
+ peg$c139 = "#",
659
+ peg$c140 = "\"#\"",
660
+ peg$c141 = function(c) { return c;},
661
+ peg$c142 = "CSSIdentifier",
662
+ peg$c143 = function(nmstart, nmchars) { return nmstart + nmchars; },
663
+ peg$c144 = /^[_a-zA-Z0-9\-]/,
664
+ peg$c145 = "[_a-zA-Z0-9\\-]",
665
+ peg$c146 = /^[_a-zA-Z]/,
666
+ peg$c147 = "[_a-zA-Z]",
667
+ peg$c148 = /^[\x80-\xFF]/,
668
+ peg$c149 = "[\\x80-\\xFF]",
669
+ peg$c150 = "KnownHTMLTagName",
670
+ peg$c151 = function(t) { return !!KNOWN_TAGS[t]; },
671
+ peg$c152 = function(t) { return t; },
672
+ peg$c153 = /^[:_a-zA-Z0-9\-]/,
673
+ peg$c154 = "[:_a-zA-Z0-9\\-]",
674
+ peg$c155 = "a JS event",
675
+ peg$c156 = function(t) { return !!KNOWN_EVENTS[t]; },
676
+ peg$c157 = "INDENT",
677
+ peg$c158 = "\uEFEF",
678
+ peg$c159 = "\"\\uEFEF\"",
679
+ peg$c160 = function() { return ''; },
680
+ peg$c161 = "DEDENT",
681
+ peg$c162 = "\uEFFE",
682
+ peg$c163 = "\"\\uEFFE\"",
683
+ peg$c164 = "Unmatched DEDENT",
684
+ peg$c165 = "\uEFEE",
685
+ peg$c166 = "\"\\uEFEE\"",
686
+ peg$c167 = "LineEnd",
687
+ peg$c168 = "\uEFFF",
688
+ peg$c169 = "\"\\uEFFF\"",
689
+ peg$c170 = "\n",
690
+ peg$c171 = "\"\\n\"",
691
+ peg$c172 = "ANYDEDENT",
692
+ peg$c173 = "RequiredWhitespace",
693
+ peg$c174 = "OptionalWhitespace",
694
+ peg$c175 = "InlineWhitespace",
695
+ peg$c176 = /^[ \t]/,
696
+ peg$c177 = "[ \\t]",
960
697
 
961
698
  peg$currPos = 0,
962
699
  peg$reportedPos = 0,
@@ -1079,7 +816,7 @@ Emblem.Parser = (function() {
1079
816
  if (s5 !== null) {
1080
817
  s6 = peg$parseTERM();
1081
818
  if (s6 !== null) {
1082
- s7 = peg$parseINDENT();
819
+ s7 = peg$parseindentation();
1083
820
  if (s7 !== null) {
1084
821
  s8 = peg$parsecontent();
1085
822
  if (s8 !== null) {
@@ -1164,17 +901,169 @@ Emblem.Parser = (function() {
1164
901
  }
1165
902
 
1166
903
  function peg$parsestatement() {
1167
- var s0;
904
+ var s0, s1;
1168
905
 
1169
- s0 = peg$parsecomment();
906
+ peg$silentFails++;
907
+ s0 = peg$parseblankLine();
1170
908
  if (s0 === null) {
1171
- s0 = peg$parsehtmlElement();
909
+ s0 = peg$parsecomment();
1172
910
  if (s0 === null) {
1173
- s0 = peg$parsetextLine();
911
+ s0 = peg$parselegacyPartialInvocation();
1174
912
  if (s0 === null) {
1175
- s0 = peg$parsemustache();
913
+ s0 = peg$parsehtmlElement();
914
+ if (s0 === null) {
915
+ s0 = peg$parsetextLine();
916
+ if (s0 === null) {
917
+ s0 = peg$parsemustache();
918
+ }
919
+ }
920
+ }
921
+ }
922
+ }
923
+ peg$silentFails--;
924
+ if (s0 === null) {
925
+ s1 = null;
926
+ if (peg$silentFails === 0) { peg$fail(peg$c8); }
927
+ }
928
+
929
+ return s0;
930
+ }
931
+
932
+ function peg$parseblankLine() {
933
+ var s0, s1, s2;
934
+
935
+ s0 = peg$currPos;
936
+ s1 = peg$parse_();
937
+ if (s1 !== null) {
938
+ s2 = peg$parseTERM();
939
+ if (s2 !== null) {
940
+ peg$reportedPos = s0;
941
+ s1 = peg$c9();
942
+ if (s1 === null) {
943
+ peg$currPos = s0;
944
+ s0 = s1;
945
+ } else {
946
+ s0 = s1;
1176
947
  }
948
+ } else {
949
+ peg$currPos = s0;
950
+ s0 = peg$c0;
1177
951
  }
952
+ } else {
953
+ peg$currPos = s0;
954
+ s0 = peg$c0;
955
+ }
956
+
957
+ return s0;
958
+ }
959
+
960
+ function peg$parselegacyPartialInvocation() {
961
+ var s0, s1, s2, s3, s4, s5, s6, s7;
962
+
963
+ s0 = peg$currPos;
964
+ if (input.charCodeAt(peg$currPos) === 62) {
965
+ s1 = peg$c10;
966
+ peg$currPos++;
967
+ } else {
968
+ s1 = null;
969
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
970
+ }
971
+ if (s1 !== null) {
972
+ s2 = peg$parse_();
973
+ if (s2 !== null) {
974
+ s3 = peg$parselegacyPartialName();
975
+ if (s3 !== null) {
976
+ s4 = peg$parse_();
977
+ if (s4 !== null) {
978
+ s5 = peg$parsepath();
979
+ if (s5 === null) {
980
+ s5 = peg$c1;
981
+ }
982
+ if (s5 !== null) {
983
+ s6 = peg$parse_();
984
+ if (s6 !== null) {
985
+ s7 = peg$parseTERM();
986
+ if (s7 !== null) {
987
+ peg$reportedPos = s0;
988
+ s1 = peg$c12(s3,s5);
989
+ if (s1 === null) {
990
+ peg$currPos = s0;
991
+ s0 = s1;
992
+ } else {
993
+ s0 = s1;
994
+ }
995
+ } else {
996
+ peg$currPos = s0;
997
+ s0 = peg$c0;
998
+ }
999
+ } else {
1000
+ peg$currPos = s0;
1001
+ s0 = peg$c0;
1002
+ }
1003
+ } else {
1004
+ peg$currPos = s0;
1005
+ s0 = peg$c0;
1006
+ }
1007
+ } else {
1008
+ peg$currPos = s0;
1009
+ s0 = peg$c0;
1010
+ }
1011
+ } else {
1012
+ peg$currPos = s0;
1013
+ s0 = peg$c0;
1014
+ }
1015
+ } else {
1016
+ peg$currPos = s0;
1017
+ s0 = peg$c0;
1018
+ }
1019
+ } else {
1020
+ peg$currPos = s0;
1021
+ s0 = peg$c0;
1022
+ }
1023
+
1024
+ return s0;
1025
+ }
1026
+
1027
+ function peg$parselegacyPartialName() {
1028
+ var s0, s1, s2, s3;
1029
+
1030
+ s0 = peg$currPos;
1031
+ s1 = peg$currPos;
1032
+ s2 = [];
1033
+ if (peg$c13.test(input.charAt(peg$currPos))) {
1034
+ s3 = input.charAt(peg$currPos);
1035
+ peg$currPos++;
1036
+ } else {
1037
+ s3 = null;
1038
+ if (peg$silentFails === 0) { peg$fail(peg$c14); }
1039
+ }
1040
+ if (s3 !== null) {
1041
+ while (s3 !== null) {
1042
+ s2.push(s3);
1043
+ if (peg$c13.test(input.charAt(peg$currPos))) {
1044
+ s3 = input.charAt(peg$currPos);
1045
+ peg$currPos++;
1046
+ } else {
1047
+ s3 = null;
1048
+ if (peg$silentFails === 0) { peg$fail(peg$c14); }
1049
+ }
1050
+ }
1051
+ } else {
1052
+ s2 = peg$c0;
1053
+ }
1054
+ if (s2 !== null) {
1055
+ s2 = input.substring(s1, peg$currPos);
1056
+ }
1057
+ s1 = s2;
1058
+ if (s1 !== null) {
1059
+ peg$reportedPos = s0;
1060
+ s1 = peg$c15(s1);
1061
+ }
1062
+ if (s1 === null) {
1063
+ peg$currPos = s0;
1064
+ s0 = s1;
1065
+ } else {
1066
+ s0 = s1;
1178
1067
  }
1179
1068
 
1180
1069
  return s0;
@@ -1201,7 +1090,7 @@ Emblem.Parser = (function() {
1201
1090
  }
1202
1091
  if (s1 !== null) {
1203
1092
  peg$reportedPos = s0;
1204
- s1 = peg$c8(s1);
1093
+ s1 = peg$c16(s1);
1205
1094
  }
1206
1095
  if (s1 === null) {
1207
1096
  peg$currPos = s0;
@@ -1213,65 +1102,62 @@ Emblem.Parser = (function() {
1213
1102
  return s0;
1214
1103
  }
1215
1104
 
1216
- function peg$parsecomment() {
1217
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
1105
+ function peg$parsecommentContent() {
1106
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1218
1107
 
1219
1108
  s0 = peg$currPos;
1220
- if (input.charCodeAt(peg$currPos) === 47) {
1221
- s1 = peg$c9;
1222
- peg$currPos++;
1223
- } else {
1224
- s1 = null;
1225
- if (peg$silentFails === 0) { peg$fail(peg$c10); }
1226
- }
1109
+ s1 = peg$parselineContent();
1227
1110
  if (s1 !== null) {
1228
- s2 = peg$parselineContent();
1111
+ s2 = peg$parseTERM();
1229
1112
  if (s2 !== null) {
1230
- s3 = peg$parseTERM();
1231
- if (s3 !== null) {
1113
+ s3 = [];
1114
+ s4 = peg$currPos;
1115
+ s5 = peg$parseindentation();
1116
+ if (s5 !== null) {
1117
+ s6 = [];
1118
+ s7 = peg$parsecommentContent();
1119
+ if (s7 !== null) {
1120
+ while (s7 !== null) {
1121
+ s6.push(s7);
1122
+ s7 = peg$parsecommentContent();
1123
+ }
1124
+ } else {
1125
+ s6 = peg$c0;
1126
+ }
1127
+ if (s6 !== null) {
1128
+ s7 = peg$parseanyDedent();
1129
+ if (s7 !== null) {
1130
+ s5 = [s5, s6, s7];
1131
+ s4 = s5;
1132
+ } else {
1133
+ peg$currPos = s4;
1134
+ s4 = peg$c0;
1135
+ }
1136
+ } else {
1137
+ peg$currPos = s4;
1138
+ s4 = peg$c0;
1139
+ }
1140
+ } else {
1141
+ peg$currPos = s4;
1142
+ s4 = peg$c0;
1143
+ }
1144
+ while (s4 !== null) {
1145
+ s3.push(s4);
1232
1146
  s4 = peg$currPos;
1233
- s5 = peg$parseINDENT();
1147
+ s5 = peg$parseindentation();
1234
1148
  if (s5 !== null) {
1235
1149
  s6 = [];
1236
- s7 = peg$currPos;
1237
- s8 = peg$parselineContent();
1238
- if (s8 !== null) {
1239
- s9 = peg$parseTERM();
1240
- if (s9 !== null) {
1241
- s8 = [s8, s9];
1242
- s7 = s8;
1243
- } else {
1244
- peg$currPos = s7;
1245
- s7 = peg$c0;
1246
- }
1247
- } else {
1248
- peg$currPos = s7;
1249
- s7 = peg$c0;
1250
- }
1150
+ s7 = peg$parsecommentContent();
1251
1151
  if (s7 !== null) {
1252
1152
  while (s7 !== null) {
1253
1153
  s6.push(s7);
1254
- s7 = peg$currPos;
1255
- s8 = peg$parselineContent();
1256
- if (s8 !== null) {
1257
- s9 = peg$parseTERM();
1258
- if (s9 !== null) {
1259
- s8 = [s8, s9];
1260
- s7 = s8;
1261
- } else {
1262
- peg$currPos = s7;
1263
- s7 = peg$c0;
1264
- }
1265
- } else {
1266
- peg$currPos = s7;
1267
- s7 = peg$c0;
1268
- }
1154
+ s7 = peg$parsecommentContent();
1269
1155
  }
1270
1156
  } else {
1271
1157
  s6 = peg$c0;
1272
1158
  }
1273
1159
  if (s6 !== null) {
1274
- s7 = peg$parseDEDENT();
1160
+ s7 = peg$parseanyDedent();
1275
1161
  if (s7 !== null) {
1276
1162
  s5 = [s5, s6, s7];
1277
1163
  s4 = s5;
@@ -1287,21 +1173,15 @@ Emblem.Parser = (function() {
1287
1173
  peg$currPos = s4;
1288
1174
  s4 = peg$c0;
1289
1175
  }
1290
- if (s4 === null) {
1291
- s4 = peg$c1;
1292
- }
1293
- if (s4 !== null) {
1294
- peg$reportedPos = s0;
1295
- s1 = peg$c11();
1296
- if (s1 === null) {
1297
- peg$currPos = s0;
1298
- s0 = s1;
1299
- } else {
1300
- s0 = s1;
1301
- }
1302
- } else {
1176
+ }
1177
+ if (s3 !== null) {
1178
+ peg$reportedPos = s0;
1179
+ s1 = peg$c9();
1180
+ if (s1 === null) {
1303
1181
  peg$currPos = s0;
1304
- s0 = peg$c0;
1182
+ s0 = s1;
1183
+ } else {
1184
+ s0 = s1;
1305
1185
  }
1306
1186
  } else {
1307
1187
  peg$currPos = s0;
@@ -1319,6 +1199,40 @@ Emblem.Parser = (function() {
1319
1199
  return s0;
1320
1200
  }
1321
1201
 
1202
+ function peg$parsecomment() {
1203
+ var s0, s1, s2;
1204
+
1205
+ s0 = peg$currPos;
1206
+ if (input.charCodeAt(peg$currPos) === 47) {
1207
+ s1 = peg$c17;
1208
+ peg$currPos++;
1209
+ } else {
1210
+ s1 = null;
1211
+ if (peg$silentFails === 0) { peg$fail(peg$c18); }
1212
+ }
1213
+ if (s1 !== null) {
1214
+ s2 = peg$parsecommentContent();
1215
+ if (s2 !== null) {
1216
+ peg$reportedPos = s0;
1217
+ s1 = peg$c9();
1218
+ if (s1 === null) {
1219
+ peg$currPos = s0;
1220
+ s0 = s1;
1221
+ } else {
1222
+ s0 = s1;
1223
+ }
1224
+ } else {
1225
+ peg$currPos = s0;
1226
+ s0 = peg$c0;
1227
+ }
1228
+ } else {
1229
+ peg$currPos = s0;
1230
+ s0 = peg$c0;
1231
+ }
1232
+
1233
+ return s0;
1234
+ }
1235
+
1322
1236
  function peg$parselineStartingMustache() {
1323
1237
  var s0;
1324
1238
 
@@ -1336,12 +1250,12 @@ Emblem.Parser = (function() {
1336
1250
  s0 = peg$currPos;
1337
1251
  s1 = peg$currPos;
1338
1252
  peg$silentFails++;
1339
- if (peg$c12.test(input.charAt(peg$currPos))) {
1253
+ if (peg$c19.test(input.charAt(peg$currPos))) {
1340
1254
  s2 = input.charAt(peg$currPos);
1341
1255
  peg$currPos++;
1342
1256
  } else {
1343
1257
  s2 = null;
1344
- if (peg$silentFails === 0) { peg$fail(peg$c13); }
1258
+ if (peg$silentFails === 0) { peg$fail(peg$c20); }
1345
1259
  }
1346
1260
  peg$silentFails--;
1347
1261
  if (s2 !== null) {
@@ -1354,7 +1268,7 @@ Emblem.Parser = (function() {
1354
1268
  s2 = peg$parsemustacheMaybeBlock();
1355
1269
  if (s2 !== null) {
1356
1270
  peg$reportedPos = s0;
1357
- s1 = peg$c14(s2);
1271
+ s1 = peg$c21(s2);
1358
1272
  if (s1 === null) {
1359
1273
  peg$currPos = s0;
1360
1274
  s0 = s1;
@@ -1374,7 +1288,7 @@ Emblem.Parser = (function() {
1374
1288
  }
1375
1289
 
1376
1290
  function peg$parsehtmlElementMaybeBlock() {
1377
- var s0, s1, s2, s3, s4, s5, s6, s7;
1291
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
1378
1292
 
1379
1293
  s0 = peg$currPos;
1380
1294
  s1 = peg$parsehtmlTagAndOptionalAttributes();
@@ -1384,14 +1298,25 @@ Emblem.Parser = (function() {
1384
1298
  s3 = peg$parseTERM();
1385
1299
  if (s3 !== null) {
1386
1300
  s4 = peg$currPos;
1387
- s5 = peg$parseINDENT();
1301
+ s5 = [];
1302
+ s6 = peg$parseblankLine();
1303
+ while (s6 !== null) {
1304
+ s5.push(s6);
1305
+ s6 = peg$parseblankLine();
1306
+ }
1388
1307
  if (s5 !== null) {
1389
- s6 = peg$parsecontent();
1308
+ s6 = peg$parseindentation();
1390
1309
  if (s6 !== null) {
1391
- s7 = peg$parseDEDENT();
1310
+ s7 = peg$parsecontent();
1392
1311
  if (s7 !== null) {
1393
- s5 = [s5, s6, s7];
1394
- s4 = s5;
1312
+ s8 = peg$parseDEDENT();
1313
+ if (s8 !== null) {
1314
+ s5 = [s5, s6, s7, s8];
1315
+ s4 = s5;
1316
+ } else {
1317
+ peg$currPos = s4;
1318
+ s4 = peg$c0;
1319
+ }
1395
1320
  } else {
1396
1321
  peg$currPos = s4;
1397
1322
  s4 = peg$c0;
@@ -1409,7 +1334,7 @@ Emblem.Parser = (function() {
1409
1334
  }
1410
1335
  if (s4 !== null) {
1411
1336
  peg$reportedPos = s0;
1412
- s1 = peg$c15(s1,s4);
1337
+ s1 = peg$c22(s1,s4);
1413
1338
  if (s1 === null) {
1414
1339
  peg$currPos = s0;
1415
1340
  s0 = s1;
@@ -1443,24 +1368,42 @@ Emblem.Parser = (function() {
1443
1368
  s1 = peg$parsehtmlTagAndOptionalAttributes();
1444
1369
  if (s1 !== null) {
1445
1370
  if (input.charCodeAt(peg$currPos) === 32) {
1446
- s2 = peg$c16;
1371
+ s2 = peg$c23;
1447
1372
  peg$currPos++;
1448
1373
  } else {
1449
1374
  s2 = null;
1450
- if (peg$silentFails === 0) { peg$fail(peg$c17); }
1375
+ if (peg$silentFails === 0) { peg$fail(peg$c24); }
1376
+ }
1377
+ if (s2 === null) {
1378
+ s2 = peg$currPos;
1379
+ peg$silentFails++;
1380
+ if (input.charCodeAt(peg$currPos) === 61) {
1381
+ s3 = peg$c25;
1382
+ peg$currPos++;
1383
+ } else {
1384
+ s3 = null;
1385
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
1386
+ }
1387
+ peg$silentFails--;
1388
+ if (s3 !== null) {
1389
+ peg$currPos = s2;
1390
+ s2 = peg$c1;
1391
+ } else {
1392
+ s2 = peg$c0;
1393
+ }
1451
1394
  }
1452
1395
  if (s2 !== null) {
1453
1396
  s3 = peg$parsehtmlInlineContent();
1454
1397
  if (s3 !== null) {
1455
1398
  s4 = peg$currPos;
1456
- s5 = peg$parseINDENT();
1399
+ s5 = peg$parseindentation();
1457
1400
  if (s5 !== null) {
1458
1401
  s6 = [];
1459
- s7 = peg$parsetextNodes();
1402
+ s7 = peg$parsewhitespaceableTextNodes();
1460
1403
  if (s7 !== null) {
1461
1404
  while (s7 !== null) {
1462
1405
  s6.push(s7);
1463
- s7 = peg$parsetextNodes();
1406
+ s7 = peg$parsewhitespaceableTextNodes();
1464
1407
  }
1465
1408
  } else {
1466
1409
  s6 = peg$c0;
@@ -1487,7 +1430,7 @@ Emblem.Parser = (function() {
1487
1430
  }
1488
1431
  if (s4 !== null) {
1489
1432
  peg$reportedPos = s0;
1490
- s1 = peg$c18(s1,s3,s4);
1433
+ s1 = peg$c27(s1,s3,s4);
1491
1434
  if (s1 === null) {
1492
1435
  peg$currPos = s0;
1493
1436
  s0 = s1;
@@ -1515,24 +1458,41 @@ Emblem.Parser = (function() {
1515
1458
  }
1516
1459
 
1517
1460
  function peg$parsemustacheMaybeBlock() {
1518
- var s0, s1, s2, s3, s4, s5, s6, s7;
1461
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
1519
1462
 
1520
- s0 = peg$currPos;
1521
- s1 = peg$parseinMustache();
1522
- if (s1 !== null) {
1523
- s2 = peg$parse_();
1524
- if (s2 !== null) {
1525
- s3 = peg$parseTERM();
1526
- if (s3 !== null) {
1527
- s4 = peg$currPos;
1528
- s5 = peg$parseINDENT();
1529
- if (s5 !== null) {
1530
- s6 = peg$parseinvertibleContent();
1531
- if (s6 !== null) {
1532
- s7 = peg$parseDEDENT();
1533
- if (s7 !== null) {
1534
- s5 = [s5, s6, s7];
1535
- s4 = s5;
1463
+ s0 = peg$parsemustacheInlineBlock();
1464
+ if (s0 === null) {
1465
+ s0 = peg$currPos;
1466
+ s1 = peg$parseinMustache();
1467
+ if (s1 !== null) {
1468
+ s2 = peg$parse_();
1469
+ if (s2 !== null) {
1470
+ s3 = peg$parseTERM();
1471
+ if (s3 !== null) {
1472
+ s4 = peg$currPos;
1473
+ s5 = [];
1474
+ s6 = peg$parseblankLine();
1475
+ while (s6 !== null) {
1476
+ s5.push(s6);
1477
+ s6 = peg$parseblankLine();
1478
+ }
1479
+ if (s5 !== null) {
1480
+ s6 = peg$parseindentation();
1481
+ if (s6 !== null) {
1482
+ s7 = peg$parseinvertibleContent();
1483
+ if (s7 !== null) {
1484
+ s8 = peg$parseDEDENT();
1485
+ if (s8 !== null) {
1486
+ s5 = [s5, s6, s7, s8];
1487
+ s4 = s5;
1488
+ } else {
1489
+ peg$currPos = s4;
1490
+ s4 = peg$c0;
1491
+ }
1492
+ } else {
1493
+ peg$currPos = s4;
1494
+ s4 = peg$c0;
1495
+ }
1536
1496
  } else {
1537
1497
  peg$currPos = s4;
1538
1498
  s4 = peg$c0;
@@ -1541,21 +1501,21 @@ Emblem.Parser = (function() {
1541
1501
  peg$currPos = s4;
1542
1502
  s4 = peg$c0;
1543
1503
  }
1544
- } else {
1545
- peg$currPos = s4;
1546
- s4 = peg$c0;
1547
- }
1548
- if (s4 === null) {
1549
- s4 = peg$c1;
1550
- }
1551
- if (s4 !== null) {
1552
- peg$reportedPos = s0;
1553
- s1 = peg$c19(s1,s4);
1554
- if (s1 === null) {
1555
- peg$currPos = s0;
1556
- s0 = s1;
1504
+ if (s4 === null) {
1505
+ s4 = peg$c1;
1506
+ }
1507
+ if (s4 !== null) {
1508
+ peg$reportedPos = s0;
1509
+ s1 = peg$c28(s1,s4);
1510
+ if (s1 === null) {
1511
+ peg$currPos = s0;
1512
+ s0 = s1;
1513
+ } else {
1514
+ s0 = s1;
1515
+ }
1557
1516
  } else {
1558
- s0 = s1;
1517
+ peg$currPos = s0;
1518
+ s0 = peg$c0;
1559
1519
  }
1560
1520
  } else {
1561
1521
  peg$currPos = s0;
@@ -1569,6 +1529,37 @@ Emblem.Parser = (function() {
1569
1529
  peg$currPos = s0;
1570
1530
  s0 = peg$c0;
1571
1531
  }
1532
+ }
1533
+
1534
+ return s0;
1535
+ }
1536
+
1537
+ function peg$parsemustacheInlineBlock() {
1538
+ var s0, s1, s2, s3;
1539
+
1540
+ s0 = peg$currPos;
1541
+ s1 = peg$parseinMustache();
1542
+ if (s1 !== null) {
1543
+ s2 = peg$parse_();
1544
+ if (s2 !== null) {
1545
+ s3 = peg$parsetextLine();
1546
+ if (s3 !== null) {
1547
+ peg$reportedPos = s0;
1548
+ s1 = peg$c29(s1,s3);
1549
+ if (s1 === null) {
1550
+ peg$currPos = s0;
1551
+ s0 = s1;
1552
+ } else {
1553
+ s0 = s1;
1554
+ }
1555
+ } else {
1556
+ peg$currPos = s0;
1557
+ s0 = peg$c0;
1558
+ }
1559
+ } else {
1560
+ peg$currPos = s0;
1561
+ s0 = peg$c0;
1562
+ }
1572
1563
  } else {
1573
1564
  peg$currPos = s0;
1574
1565
  s0 = peg$c0;
@@ -1586,7 +1577,7 @@ Emblem.Parser = (function() {
1586
1577
  s2 = peg$parsemustacheMaybeBlock();
1587
1578
  if (s2 !== null) {
1588
1579
  peg$reportedPos = s0;
1589
- s1 = peg$c20(s1,s2);
1580
+ s1 = peg$c30(s1,s2);
1590
1581
  if (s1 === null) {
1591
1582
  peg$currPos = s0;
1592
1583
  s0 = s1;
@@ -1629,7 +1620,7 @@ Emblem.Parser = (function() {
1629
1620
  }
1630
1621
  if (s4 !== null) {
1631
1622
  peg$reportedPos = s0;
1632
- s1 = peg$c21(s1,s2,s3,s4);
1623
+ s1 = peg$c31(s1,s2,s3,s4);
1633
1624
  if (s1 === null) {
1634
1625
  peg$currPos = s0;
1635
1626
  s0 = s1;
@@ -1665,7 +1656,7 @@ Emblem.Parser = (function() {
1665
1656
  s2 = peg$parsetrailingModifier();
1666
1657
  if (s2 !== null) {
1667
1658
  peg$reportedPos = s0;
1668
- s1 = peg$c22(s1,s2);
1659
+ s1 = peg$c32(s1,s2);
1669
1660
  if (s1 === null) {
1670
1661
  peg$currPos = s0;
1671
1662
  s0 = s1;
@@ -1691,7 +1682,7 @@ Emblem.Parser = (function() {
1691
1682
  s1 = peg$parsetagNameShorthand();
1692
1683
  if (s1 !== null) {
1693
1684
  peg$reportedPos = s0;
1694
- s1 = peg$c23(s1);
1685
+ s1 = peg$c33(s1);
1695
1686
  }
1696
1687
  if (s1 === null) {
1697
1688
  peg$currPos = s0;
@@ -1704,7 +1695,7 @@ Emblem.Parser = (function() {
1704
1695
  s1 = peg$parseidShorthand();
1705
1696
  if (s1 !== null) {
1706
1697
  peg$reportedPos = s0;
1707
- s1 = peg$c24(s1);
1698
+ s1 = peg$c34(s1);
1708
1699
  }
1709
1700
  if (s1 === null) {
1710
1701
  peg$currPos = s0;
@@ -1717,7 +1708,7 @@ Emblem.Parser = (function() {
1717
1708
  s1 = peg$parseclassShorthand();
1718
1709
  if (s1 !== null) {
1719
1710
  peg$reportedPos = s0;
1720
- s1 = peg$c25(s1);
1711
+ s1 = peg$c35(s1);
1721
1712
  }
1722
1713
  if (s1 === null) {
1723
1714
  peg$currPos = s0;
@@ -1756,7 +1747,7 @@ Emblem.Parser = (function() {
1756
1747
  }
1757
1748
  if (s2 !== null) {
1758
1749
  peg$reportedPos = s0;
1759
- s1 = peg$c26(s1,s2);
1750
+ s1 = peg$c36(s1,s2);
1760
1751
  if (s1 === null) {
1761
1752
  peg$currPos = s0;
1762
1753
  s0 = s1;
@@ -1791,7 +1782,7 @@ Emblem.Parser = (function() {
1791
1782
  }
1792
1783
  if (s1 !== null) {
1793
1784
  peg$reportedPos = s0;
1794
- s1 = peg$c27(s1);
1785
+ s1 = peg$c37(s1);
1795
1786
  }
1796
1787
  if (s1 === null) {
1797
1788
  peg$currPos = s0;
@@ -1815,7 +1806,7 @@ Emblem.Parser = (function() {
1815
1806
  }
1816
1807
  if (s2 !== null) {
1817
1808
  peg$reportedPos = s0;
1818
- s1 = peg$c28(s2);
1809
+ s1 = peg$c38(s2);
1819
1810
  if (s1 === null) {
1820
1811
  peg$currPos = s0;
1821
1812
  s0 = s1;
@@ -1838,17 +1829,17 @@ Emblem.Parser = (function() {
1838
1829
  var s0, s1;
1839
1830
 
1840
1831
  peg$silentFails++;
1841
- if (peg$c30.test(input.charAt(peg$currPos))) {
1832
+ if (peg$c40.test(input.charAt(peg$currPos))) {
1842
1833
  s0 = input.charAt(peg$currPos);
1843
1834
  peg$currPos++;
1844
1835
  } else {
1845
1836
  s0 = null;
1846
- if (peg$silentFails === 0) { peg$fail(peg$c31); }
1837
+ if (peg$silentFails === 0) { peg$fail(peg$c41); }
1847
1838
  }
1848
1839
  peg$silentFails--;
1849
1840
  if (s0 === null) {
1850
1841
  s1 = null;
1851
- if (peg$silentFails === 0) { peg$fail(peg$c29); }
1842
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
1852
1843
  }
1853
1844
 
1854
1845
  return s0;
@@ -1870,7 +1861,7 @@ Emblem.Parser = (function() {
1870
1861
  }
1871
1862
  if (s1 !== null) {
1872
1863
  peg$reportedPos = s0;
1873
- s1 = peg$c32(s1);
1864
+ s1 = peg$c42(s1);
1874
1865
  }
1875
1866
  if (s1 === null) {
1876
1867
  peg$currPos = s0;
@@ -1886,41 +1877,41 @@ Emblem.Parser = (function() {
1886
1877
  var s0, s1, s2, s3;
1887
1878
 
1888
1879
  peg$silentFails++;
1889
- if (input.substr(peg$currPos, 2) === peg$c34) {
1890
- s0 = peg$c34;
1880
+ if (input.substr(peg$currPos, 2) === peg$c44) {
1881
+ s0 = peg$c44;
1891
1882
  peg$currPos += 2;
1892
1883
  } else {
1893
1884
  s0 = null;
1894
- if (peg$silentFails === 0) { peg$fail(peg$c35); }
1885
+ if (peg$silentFails === 0) { peg$fail(peg$c45); }
1895
1886
  }
1896
1887
  if (s0 === null) {
1897
1888
  if (input.charCodeAt(peg$currPos) === 46) {
1898
- s0 = peg$c36;
1889
+ s0 = peg$c46;
1899
1890
  peg$currPos++;
1900
1891
  } else {
1901
1892
  s0 = null;
1902
- if (peg$silentFails === 0) { peg$fail(peg$c37); }
1893
+ if (peg$silentFails === 0) { peg$fail(peg$c47); }
1903
1894
  }
1904
1895
  if (s0 === null) {
1905
1896
  s0 = peg$currPos;
1906
1897
  s1 = peg$currPos;
1907
1898
  s2 = [];
1908
- if (peg$c38.test(input.charAt(peg$currPos))) {
1899
+ if (peg$c48.test(input.charAt(peg$currPos))) {
1909
1900
  s3 = input.charAt(peg$currPos);
1910
1901
  peg$currPos++;
1911
1902
  } else {
1912
1903
  s3 = null;
1913
- if (peg$silentFails === 0) { peg$fail(peg$c39); }
1904
+ if (peg$silentFails === 0) { peg$fail(peg$c49); }
1914
1905
  }
1915
1906
  if (s3 !== null) {
1916
1907
  while (s3 !== null) {
1917
1908
  s2.push(s3);
1918
- if (peg$c38.test(input.charAt(peg$currPos))) {
1909
+ if (peg$c48.test(input.charAt(peg$currPos))) {
1919
1910
  s3 = input.charAt(peg$currPos);
1920
1911
  peg$currPos++;
1921
1912
  } else {
1922
1913
  s3 = null;
1923
- if (peg$silentFails === 0) { peg$fail(peg$c39); }
1914
+ if (peg$silentFails === 0) { peg$fail(peg$c49); }
1924
1915
  }
1925
1916
  }
1926
1917
  } else {
@@ -1934,11 +1925,11 @@ Emblem.Parser = (function() {
1934
1925
  s2 = peg$currPos;
1935
1926
  peg$silentFails++;
1936
1927
  if (input.charCodeAt(peg$currPos) === 61) {
1937
- s3 = peg$c40;
1928
+ s3 = peg$c25;
1938
1929
  peg$currPos++;
1939
1930
  } else {
1940
1931
  s3 = null;
1941
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
1932
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
1942
1933
  }
1943
1934
  peg$silentFails--;
1944
1935
  if (s3 === null) {
@@ -1949,7 +1940,7 @@ Emblem.Parser = (function() {
1949
1940
  }
1950
1941
  if (s2 !== null) {
1951
1942
  peg$reportedPos = s0;
1952
- s1 = peg$c42(s1);
1943
+ s1 = peg$c50(s1);
1953
1944
  if (s1 === null) {
1954
1945
  peg$currPos = s0;
1955
1946
  s0 = s1;
@@ -1969,7 +1960,7 @@ Emblem.Parser = (function() {
1969
1960
  peg$silentFails--;
1970
1961
  if (s0 === null) {
1971
1962
  s1 = null;
1972
- if (peg$silentFails === 0) { peg$fail(peg$c33); }
1963
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
1973
1964
  }
1974
1965
 
1975
1966
  return s0;
@@ -1983,7 +1974,7 @@ Emblem.Parser = (function() {
1983
1974
  peg$silentFails--;
1984
1975
  if (s0 === null) {
1985
1976
  s1 = null;
1986
- if (peg$silentFails === 0) { peg$fail(peg$c43); }
1977
+ if (peg$silentFails === 0) { peg$fail(peg$c51); }
1987
1978
  }
1988
1979
 
1989
1980
  return s0;
@@ -1999,11 +1990,11 @@ Emblem.Parser = (function() {
1999
1990
  s3 = peg$parsekey();
2000
1991
  if (s3 !== null) {
2001
1992
  if (input.charCodeAt(peg$currPos) === 61) {
2002
- s4 = peg$c40;
1993
+ s4 = peg$c25;
2003
1994
  peg$currPos++;
2004
1995
  } else {
2005
1996
  s4 = null;
2006
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
1997
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
2007
1998
  }
2008
1999
  if (s4 !== null) {
2009
2000
  s5 = peg$parsepathIdNode();
@@ -2027,11 +2018,11 @@ Emblem.Parser = (function() {
2027
2018
  s3 = peg$parsekey();
2028
2019
  if (s3 !== null) {
2029
2020
  if (input.charCodeAt(peg$currPos) === 61) {
2030
- s4 = peg$c40;
2021
+ s4 = peg$c25;
2031
2022
  peg$currPos++;
2032
2023
  } else {
2033
2024
  s4 = null;
2034
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
2025
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
2035
2026
  }
2036
2027
  if (s4 !== null) {
2037
2028
  s5 = peg$parsestringNode();
@@ -2055,11 +2046,11 @@ Emblem.Parser = (function() {
2055
2046
  s3 = peg$parsekey();
2056
2047
  if (s3 !== null) {
2057
2048
  if (input.charCodeAt(peg$currPos) === 61) {
2058
- s4 = peg$c40;
2049
+ s4 = peg$c25;
2059
2050
  peg$currPos++;
2060
2051
  } else {
2061
2052
  s4 = null;
2062
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
2053
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
2063
2054
  }
2064
2055
  if (s4 !== null) {
2065
2056
  s5 = peg$parseintegerNode();
@@ -2083,11 +2074,11 @@ Emblem.Parser = (function() {
2083
2074
  s3 = peg$parsekey();
2084
2075
  if (s3 !== null) {
2085
2076
  if (input.charCodeAt(peg$currPos) === 61) {
2086
- s4 = peg$c40;
2077
+ s4 = peg$c25;
2087
2078
  peg$currPos++;
2088
2079
  } else {
2089
2080
  s4 = null;
2090
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
2081
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
2091
2082
  }
2092
2083
  if (s4 !== null) {
2093
2084
  s5 = peg$parsebooleanNode();
@@ -2111,7 +2102,7 @@ Emblem.Parser = (function() {
2111
2102
  }
2112
2103
  if (s2 !== null) {
2113
2104
  peg$reportedPos = s0;
2114
- s1 = peg$c44(s2);
2105
+ s1 = peg$c52(s2);
2115
2106
  if (s1 === null) {
2116
2107
  peg$currPos = s0;
2117
2108
  s0 = s1;
@@ -2160,7 +2151,7 @@ Emblem.Parser = (function() {
2160
2151
  s5 = peg$parsepathIdent();
2161
2152
  if (s5 !== null) {
2162
2153
  peg$reportedPos = s3;
2163
- s4 = peg$c45(s5);
2154
+ s4 = peg$c53(s5);
2164
2155
  if (s4 === null) {
2165
2156
  peg$currPos = s3;
2166
2157
  s3 = s4;
@@ -2183,7 +2174,7 @@ Emblem.Parser = (function() {
2183
2174
  s5 = peg$parsepathIdent();
2184
2175
  if (s5 !== null) {
2185
2176
  peg$reportedPos = s3;
2186
- s4 = peg$c45(s5);
2177
+ s4 = peg$c53(s5);
2187
2178
  if (s4 === null) {
2188
2179
  peg$currPos = s3;
2189
2180
  s3 = s4;
@@ -2201,7 +2192,7 @@ Emblem.Parser = (function() {
2201
2192
  }
2202
2193
  if (s2 !== null) {
2203
2194
  peg$reportedPos = s0;
2204
- s1 = peg$c46(s1,s2);
2195
+ s1 = peg$c54(s1,s2);
2205
2196
  if (s1 === null) {
2206
2197
  peg$currPos = s0;
2207
2198
  s0 = s1;
@@ -2224,17 +2215,17 @@ Emblem.Parser = (function() {
2224
2215
  var s0, s1;
2225
2216
 
2226
2217
  peg$silentFails++;
2227
- if (peg$c48.test(input.charAt(peg$currPos))) {
2218
+ if (peg$c56.test(input.charAt(peg$currPos))) {
2228
2219
  s0 = input.charAt(peg$currPos);
2229
2220
  peg$currPos++;
2230
2221
  } else {
2231
2222
  s0 = null;
2232
- if (peg$silentFails === 0) { peg$fail(peg$c49); }
2223
+ if (peg$silentFails === 0) { peg$fail(peg$c57); }
2233
2224
  }
2234
2225
  peg$silentFails--;
2235
2226
  if (s0 === null) {
2236
2227
  s1 = null;
2237
- if (peg$silentFails === 0) { peg$fail(peg$c47); }
2228
+ if (peg$silentFails === 0) { peg$fail(peg$c55); }
2238
2229
  }
2239
2230
 
2240
2231
  return s0;
@@ -2247,7 +2238,7 @@ Emblem.Parser = (function() {
2247
2238
  s1 = peg$parsepath();
2248
2239
  if (s1 !== null) {
2249
2240
  peg$reportedPos = s0;
2250
- s1 = peg$c50(s1);
2241
+ s1 = peg$c58(s1);
2251
2242
  }
2252
2243
  if (s1 === null) {
2253
2244
  peg$currPos = s0;
@@ -2266,7 +2257,7 @@ Emblem.Parser = (function() {
2266
2257
  s1 = peg$parsestring();
2267
2258
  if (s1 !== null) {
2268
2259
  peg$reportedPos = s0;
2269
- s1 = peg$c51(s1);
2260
+ s1 = peg$c59(s1);
2270
2261
  }
2271
2262
  if (s1 === null) {
2272
2263
  peg$currPos = s0;
@@ -2285,7 +2276,7 @@ Emblem.Parser = (function() {
2285
2276
  s1 = peg$parseinteger();
2286
2277
  if (s1 !== null) {
2287
2278
  peg$reportedPos = s0;
2288
- s1 = peg$c52(s1);
2279
+ s1 = peg$c60(s1);
2289
2280
  }
2290
2281
  if (s1 === null) {
2291
2282
  peg$currPos = s0;
@@ -2304,7 +2295,7 @@ Emblem.Parser = (function() {
2304
2295
  s1 = peg$parseboolean();
2305
2296
  if (s1 !== null) {
2306
2297
  peg$reportedPos = s0;
2307
- s1 = peg$c53(s1);
2298
+ s1 = peg$c61(s1);
2308
2299
  }
2309
2300
  if (s1 === null) {
2310
2301
  peg$currPos = s0;
@@ -2320,26 +2311,26 @@ Emblem.Parser = (function() {
2320
2311
  var s0, s1;
2321
2312
 
2322
2313
  peg$silentFails++;
2323
- if (input.substr(peg$currPos, 4) === peg$c55) {
2324
- s0 = peg$c55;
2314
+ if (input.substr(peg$currPos, 4) === peg$c63) {
2315
+ s0 = peg$c63;
2325
2316
  peg$currPos += 4;
2326
2317
  } else {
2327
2318
  s0 = null;
2328
- if (peg$silentFails === 0) { peg$fail(peg$c56); }
2319
+ if (peg$silentFails === 0) { peg$fail(peg$c64); }
2329
2320
  }
2330
2321
  if (s0 === null) {
2331
- if (input.substr(peg$currPos, 5) === peg$c57) {
2332
- s0 = peg$c57;
2322
+ if (input.substr(peg$currPos, 5) === peg$c65) {
2323
+ s0 = peg$c65;
2333
2324
  peg$currPos += 5;
2334
2325
  } else {
2335
2326
  s0 = null;
2336
- if (peg$silentFails === 0) { peg$fail(peg$c58); }
2327
+ if (peg$silentFails === 0) { peg$fail(peg$c66); }
2337
2328
  }
2338
2329
  }
2339
2330
  peg$silentFails--;
2340
2331
  if (s0 === null) {
2341
2332
  s1 = null;
2342
- if (peg$silentFails === 0) { peg$fail(peg$c54); }
2333
+ if (peg$silentFails === 0) { peg$fail(peg$c62); }
2343
2334
  }
2344
2335
 
2345
2336
  return s0;
@@ -2352,22 +2343,22 @@ Emblem.Parser = (function() {
2352
2343
  s0 = peg$currPos;
2353
2344
  s1 = peg$currPos;
2354
2345
  s2 = [];
2355
- if (peg$c60.test(input.charAt(peg$currPos))) {
2346
+ if (peg$c68.test(input.charAt(peg$currPos))) {
2356
2347
  s3 = input.charAt(peg$currPos);
2357
2348
  peg$currPos++;
2358
2349
  } else {
2359
2350
  s3 = null;
2360
- if (peg$silentFails === 0) { peg$fail(peg$c61); }
2351
+ if (peg$silentFails === 0) { peg$fail(peg$c69); }
2361
2352
  }
2362
2353
  if (s3 !== null) {
2363
2354
  while (s3 !== null) {
2364
2355
  s2.push(s3);
2365
- if (peg$c60.test(input.charAt(peg$currPos))) {
2356
+ if (peg$c68.test(input.charAt(peg$currPos))) {
2366
2357
  s3 = input.charAt(peg$currPos);
2367
2358
  peg$currPos++;
2368
2359
  } else {
2369
2360
  s3 = null;
2370
- if (peg$silentFails === 0) { peg$fail(peg$c61); }
2361
+ if (peg$silentFails === 0) { peg$fail(peg$c69); }
2371
2362
  }
2372
2363
  }
2373
2364
  } else {
@@ -2379,7 +2370,7 @@ Emblem.Parser = (function() {
2379
2370
  s1 = s2;
2380
2371
  if (s1 !== null) {
2381
2372
  peg$reportedPos = s0;
2382
- s1 = peg$c62(s1);
2373
+ s1 = peg$c70(s1);
2383
2374
  }
2384
2375
  if (s1 === null) {
2385
2376
  peg$currPos = s0;
@@ -2390,7 +2381,7 @@ Emblem.Parser = (function() {
2390
2381
  peg$silentFails--;
2391
2382
  if (s0 === null) {
2392
2383
  s1 = null;
2393
- if (peg$silentFails === 0) { peg$fail(peg$c59); }
2384
+ if (peg$silentFails === 0) { peg$fail(peg$c67); }
2394
2385
  }
2395
2386
 
2396
2387
  return s0;
@@ -2402,21 +2393,21 @@ Emblem.Parser = (function() {
2402
2393
  s0 = peg$currPos;
2403
2394
  s1 = peg$currPos;
2404
2395
  if (input.charCodeAt(peg$currPos) === 34) {
2405
- s2 = peg$c63;
2396
+ s2 = peg$c71;
2406
2397
  peg$currPos++;
2407
2398
  } else {
2408
2399
  s2 = null;
2409
- if (peg$silentFails === 0) { peg$fail(peg$c64); }
2400
+ if (peg$silentFails === 0) { peg$fail(peg$c72); }
2410
2401
  }
2411
2402
  if (s2 !== null) {
2412
2403
  s3 = peg$parsehashDoubleQuoteStringValue();
2413
2404
  if (s3 !== null) {
2414
2405
  if (input.charCodeAt(peg$currPos) === 34) {
2415
- s4 = peg$c63;
2406
+ s4 = peg$c71;
2416
2407
  peg$currPos++;
2417
2408
  } else {
2418
2409
  s4 = null;
2419
- if (peg$silentFails === 0) { peg$fail(peg$c64); }
2410
+ if (peg$silentFails === 0) { peg$fail(peg$c72); }
2420
2411
  }
2421
2412
  if (s4 !== null) {
2422
2413
  s2 = [s2, s3, s4];
@@ -2436,21 +2427,21 @@ Emblem.Parser = (function() {
2436
2427
  if (s1 === null) {
2437
2428
  s1 = peg$currPos;
2438
2429
  if (input.charCodeAt(peg$currPos) === 39) {
2439
- s2 = peg$c65;
2430
+ s2 = peg$c73;
2440
2431
  peg$currPos++;
2441
2432
  } else {
2442
2433
  s2 = null;
2443
- if (peg$silentFails === 0) { peg$fail(peg$c66); }
2434
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
2444
2435
  }
2445
2436
  if (s2 !== null) {
2446
2437
  s3 = peg$parsehashSingleQuoteStringValue();
2447
2438
  if (s3 !== null) {
2448
2439
  if (input.charCodeAt(peg$currPos) === 39) {
2449
- s4 = peg$c65;
2440
+ s4 = peg$c73;
2450
2441
  peg$currPos++;
2451
2442
  } else {
2452
2443
  s4 = null;
2453
- if (peg$silentFails === 0) { peg$fail(peg$c66); }
2444
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
2454
2445
  }
2455
2446
  if (s4 !== null) {
2456
2447
  s2 = [s2, s3, s4];
@@ -2470,7 +2461,7 @@ Emblem.Parser = (function() {
2470
2461
  }
2471
2462
  if (s1 !== null) {
2472
2463
  peg$reportedPos = s0;
2473
- s1 = peg$c67(s1);
2464
+ s1 = peg$c75(s1);
2474
2465
  }
2475
2466
  if (s1 === null) {
2476
2467
  peg$currPos = s0;
@@ -2499,12 +2490,12 @@ Emblem.Parser = (function() {
2499
2490
  s3 = peg$c0;
2500
2491
  }
2501
2492
  if (s3 !== null) {
2502
- if (peg$c68.test(input.charAt(peg$currPos))) {
2493
+ if (peg$c76.test(input.charAt(peg$currPos))) {
2503
2494
  s4 = input.charAt(peg$currPos);
2504
2495
  peg$currPos++;
2505
2496
  } else {
2506
2497
  s4 = null;
2507
- if (peg$silentFails === 0) { peg$fail(peg$c69); }
2498
+ if (peg$silentFails === 0) { peg$fail(peg$c77); }
2508
2499
  }
2509
2500
  if (s4 !== null) {
2510
2501
  s3 = [s3, s4];
@@ -2531,12 +2522,12 @@ Emblem.Parser = (function() {
2531
2522
  s3 = peg$c0;
2532
2523
  }
2533
2524
  if (s3 !== null) {
2534
- if (peg$c68.test(input.charAt(peg$currPos))) {
2525
+ if (peg$c76.test(input.charAt(peg$currPos))) {
2535
2526
  s4 = input.charAt(peg$currPos);
2536
2527
  peg$currPos++;
2537
2528
  } else {
2538
2529
  s4 = null;
2539
- if (peg$silentFails === 0) { peg$fail(peg$c69); }
2530
+ if (peg$silentFails === 0) { peg$fail(peg$c77); }
2540
2531
  }
2541
2532
  if (s4 !== null) {
2542
2533
  s3 = [s3, s4];
@@ -2575,12 +2566,12 @@ Emblem.Parser = (function() {
2575
2566
  s3 = peg$c0;
2576
2567
  }
2577
2568
  if (s3 !== null) {
2578
- if (peg$c70.test(input.charAt(peg$currPos))) {
2569
+ if (peg$c78.test(input.charAt(peg$currPos))) {
2579
2570
  s4 = input.charAt(peg$currPos);
2580
2571
  peg$currPos++;
2581
2572
  } else {
2582
2573
  s4 = null;
2583
- if (peg$silentFails === 0) { peg$fail(peg$c71); }
2574
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
2584
2575
  }
2585
2576
  if (s4 !== null) {
2586
2577
  s3 = [s3, s4];
@@ -2607,12 +2598,12 @@ Emblem.Parser = (function() {
2607
2598
  s3 = peg$c0;
2608
2599
  }
2609
2600
  if (s3 !== null) {
2610
- if (peg$c70.test(input.charAt(peg$currPos))) {
2601
+ if (peg$c78.test(input.charAt(peg$currPos))) {
2611
2602
  s4 = input.charAt(peg$currPos);
2612
2603
  peg$currPos++;
2613
2604
  } else {
2614
2605
  s4 = null;
2615
- if (peg$silentFails === 0) { peg$fail(peg$c71); }
2606
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
2616
2607
  }
2617
2608
  if (s4 !== null) {
2618
2609
  s3 = [s3, s4];
@@ -2637,31 +2628,88 @@ Emblem.Parser = (function() {
2637
2628
  function peg$parsealpha() {
2638
2629
  var s0;
2639
2630
 
2640
- if (peg$c72.test(input.charAt(peg$currPos))) {
2631
+ if (peg$c80.test(input.charAt(peg$currPos))) {
2641
2632
  s0 = input.charAt(peg$currPos);
2642
2633
  peg$currPos++;
2643
2634
  } else {
2644
2635
  s0 = null;
2645
- if (peg$silentFails === 0) { peg$fail(peg$c73); }
2636
+ if (peg$silentFails === 0) { peg$fail(peg$c81); }
2646
2637
  }
2647
2638
 
2648
2639
  return s0;
2649
2640
  }
2650
2641
 
2651
2642
  function peg$parsehtmlInlineContent() {
2652
- var s0, s1;
2643
+ var s0, s1, s2;
2653
2644
 
2654
2645
  s0 = peg$currPos;
2655
- s1 = peg$parseexplicitMustache();
2646
+ s1 = peg$parse_();
2656
2647
  if (s1 !== null) {
2657
- peg$reportedPos = s0;
2658
- s1 = peg$c74(s1);
2659
- }
2660
- if (s1 === null) {
2648
+ s2 = peg$parseexplicitMustache();
2649
+ if (s2 !== null) {
2650
+ peg$reportedPos = s0;
2651
+ s1 = peg$c82(s2);
2652
+ if (s1 === null) {
2653
+ peg$currPos = s0;
2654
+ s0 = s1;
2655
+ } else {
2656
+ s0 = s1;
2657
+ }
2658
+ } else {
2659
+ peg$currPos = s0;
2660
+ s0 = peg$c0;
2661
+ }
2662
+ } else {
2661
2663
  peg$currPos = s0;
2662
- s0 = s1;
2664
+ s0 = peg$c0;
2665
+ }
2666
+ if (s0 === null) {
2667
+ s0 = peg$parsetextNodes();
2668
+ }
2669
+
2670
+ return s0;
2671
+ }
2672
+
2673
+ function peg$parsewhitespaceableTextNodes() {
2674
+ var s0, s1, s2, s3, s4;
2675
+
2676
+ s0 = peg$currPos;
2677
+ s1 = peg$parseindentation();
2678
+ if (s1 !== null) {
2679
+ s2 = peg$parsetextNodes();
2680
+ if (s2 !== null) {
2681
+ s3 = [];
2682
+ s4 = peg$parsewhitespaceableTextNodes();
2683
+ while (s4 !== null) {
2684
+ s3.push(s4);
2685
+ s4 = peg$parsewhitespaceableTextNodes();
2686
+ }
2687
+ if (s3 !== null) {
2688
+ s4 = peg$parseanyDedent();
2689
+ if (s4 !== null) {
2690
+ peg$reportedPos = s0;
2691
+ s1 = peg$c83(s1,s2,s3);
2692
+ if (s1 === null) {
2693
+ peg$currPos = s0;
2694
+ s0 = s1;
2695
+ } else {
2696
+ s0 = s1;
2697
+ }
2698
+ } else {
2699
+ peg$currPos = s0;
2700
+ s0 = peg$c0;
2701
+ }
2702
+ } else {
2703
+ peg$currPos = s0;
2704
+ s0 = peg$c0;
2705
+ }
2706
+ } else {
2707
+ peg$currPos = s0;
2708
+ s0 = peg$c0;
2709
+ }
2663
2710
  } else {
2664
- s0 = s1;
2711
+ peg$currPos = s0;
2712
+ s0 = peg$c0;
2665
2713
  }
2666
2714
  if (s0 === null) {
2667
2715
  s0 = peg$parsetextNodes();
@@ -2670,49 +2718,55 @@ Emblem.Parser = (function() {
2670
2718
  return s0;
2671
2719
  }
2672
2720
 
2673
- function peg$parsetextLine() {
2674
- var s0, s1, s2, s3, s4, s5, s6;
2721
+ function peg$parsetextLineStart() {
2722
+ var s0, s1, s2;
2675
2723
 
2676
2724
  s0 = peg$currPos;
2677
- s1 = peg$currPos;
2678
- if (input.charCodeAt(peg$currPos) === 124) {
2679
- s2 = peg$c75;
2725
+ if (peg$c84.test(input.charAt(peg$currPos))) {
2726
+ s1 = input.charAt(peg$currPos);
2680
2727
  peg$currPos++;
2681
2728
  } else {
2682
- s2 = null;
2683
- if (peg$silentFails === 0) { peg$fail(peg$c76); }
2729
+ s1 = null;
2730
+ if (peg$silentFails === 0) { peg$fail(peg$c85); }
2684
2731
  }
2685
- if (s2 !== null) {
2732
+ if (s1 !== null) {
2686
2733
  if (input.charCodeAt(peg$currPos) === 32) {
2687
- s3 = peg$c16;
2734
+ s2 = peg$c23;
2688
2735
  peg$currPos++;
2689
2736
  } else {
2690
- s3 = null;
2691
- if (peg$silentFails === 0) { peg$fail(peg$c17); }
2737
+ s2 = null;
2738
+ if (peg$silentFails === 0) { peg$fail(peg$c24); }
2692
2739
  }
2693
- if (s3 === null) {
2694
- s3 = peg$c1;
2740
+ if (s2 === null) {
2741
+ s2 = peg$c1;
2695
2742
  }
2696
- if (s3 !== null) {
2697
- s2 = [s2, s3];
2698
- s1 = s2;
2743
+ if (s2 !== null) {
2744
+ peg$reportedPos = s0;
2745
+ s1 = peg$c50(s1);
2746
+ if (s1 === null) {
2747
+ peg$currPos = s0;
2748
+ s0 = s1;
2749
+ } else {
2750
+ s0 = s1;
2751
+ }
2699
2752
  } else {
2700
- peg$currPos = s1;
2701
- s1 = peg$c0;
2753
+ peg$currPos = s0;
2754
+ s0 = peg$c0;
2702
2755
  }
2703
2756
  } else {
2704
- peg$currPos = s1;
2705
- s1 = peg$c0;
2757
+ peg$currPos = s0;
2758
+ s0 = peg$c0;
2706
2759
  }
2707
- if (s1 === null) {
2760
+ if (s0 === null) {
2761
+ s0 = peg$currPos;
2708
2762
  s1 = peg$currPos;
2709
2763
  peg$silentFails++;
2710
2764
  if (input.charCodeAt(peg$currPos) === 60) {
2711
- s2 = peg$c77;
2765
+ s2 = peg$c86;
2712
2766
  peg$currPos++;
2713
2767
  } else {
2714
2768
  s2 = null;
2715
- if (peg$silentFails === 0) { peg$fail(peg$c78); }
2769
+ if (peg$silentFails === 0) { peg$fail(peg$c87); }
2716
2770
  }
2717
2771
  peg$silentFails--;
2718
2772
  if (s2 !== null) {
@@ -2721,18 +2775,37 @@ Emblem.Parser = (function() {
2721
2775
  } else {
2722
2776
  s1 = peg$c0;
2723
2777
  }
2778
+ if (s1 !== null) {
2779
+ peg$reportedPos = s0;
2780
+ s1 = peg$c88();
2781
+ }
2782
+ if (s1 === null) {
2783
+ peg$currPos = s0;
2784
+ s0 = s1;
2785
+ } else {
2786
+ s0 = s1;
2787
+ }
2724
2788
  }
2789
+
2790
+ return s0;
2791
+ }
2792
+
2793
+ function peg$parsetextLine() {
2794
+ var s0, s1, s2, s3, s4, s5, s6;
2795
+
2796
+ s0 = peg$currPos;
2797
+ s1 = peg$parsetextLineStart();
2725
2798
  if (s1 !== null) {
2726
2799
  s2 = peg$parsetextNodes();
2727
2800
  if (s2 !== null) {
2728
2801
  s3 = peg$currPos;
2729
- s4 = peg$parseINDENT();
2802
+ s4 = peg$parseindentation();
2730
2803
  if (s4 !== null) {
2731
2804
  s5 = [];
2732
- s6 = peg$parsetextNodes();
2805
+ s6 = peg$parsewhitespaceableTextNodes();
2733
2806
  while (s6 !== null) {
2734
2807
  s5.push(s6);
2735
- s6 = peg$parsetextNodes();
2808
+ s6 = peg$parsewhitespaceableTextNodes();
2736
2809
  }
2737
2810
  if (s5 !== null) {
2738
2811
  s6 = peg$parseDEDENT();
@@ -2756,7 +2829,7 @@ Emblem.Parser = (function() {
2756
2829
  }
2757
2830
  if (s3 !== null) {
2758
2831
  peg$reportedPos = s0;
2759
- s1 = peg$c79(s2,s3);
2832
+ s1 = peg$c89(s1,s2,s3);
2760
2833
  if (s1 === null) {
2761
2834
  peg$currPos = s0;
2762
2835
  s0 = s1;
@@ -2832,7 +2905,7 @@ Emblem.Parser = (function() {
2832
2905
  s3 = peg$parseTERM();
2833
2906
  if (s3 !== null) {
2834
2907
  peg$reportedPos = s0;
2835
- s1 = peg$c80(s1,s2);
2908
+ s1 = peg$c90(s1,s2);
2836
2909
  if (s1 === null) {
2837
2910
  peg$currPos = s0;
2838
2911
  s0 = s1;
@@ -2881,7 +2954,7 @@ Emblem.Parser = (function() {
2881
2954
  s5 = peg$parsesingleClose();
2882
2955
  if (s5 !== null) {
2883
2956
  peg$reportedPos = s0;
2884
- s1 = peg$c81(s3);
2957
+ s1 = peg$c91(s3);
2885
2958
  if (s1 === null) {
2886
2959
  peg$currPos = s0;
2887
2960
  s0 = s1;
@@ -2927,7 +3000,7 @@ Emblem.Parser = (function() {
2927
3000
  s5 = peg$parsedoubleClose();
2928
3001
  if (s5 !== null) {
2929
3002
  peg$reportedPos = s0;
2930
- s1 = peg$c81(s3);
3003
+ s1 = peg$c91(s3);
2931
3004
  if (s1 === null) {
2932
3005
  peg$currPos = s0;
2933
3006
  s0 = s1;
@@ -2967,7 +3040,7 @@ Emblem.Parser = (function() {
2967
3040
  s5 = peg$parsehashStacheClose();
2968
3041
  if (s5 !== null) {
2969
3042
  peg$reportedPos = s0;
2970
- s1 = peg$c81(s3);
3043
+ s1 = peg$c91(s3);
2971
3044
  if (s1 === null) {
2972
3045
  peg$currPos = s0;
2973
3046
  s0 = s1;
@@ -3014,7 +3087,7 @@ Emblem.Parser = (function() {
3014
3087
  s5 = peg$parsetripleClose();
3015
3088
  if (s5 !== null) {
3016
3089
  peg$reportedPos = s0;
3017
- s1 = peg$c82(s3);
3090
+ s1 = peg$c92(s3);
3018
3091
  if (s1 === null) {
3019
3092
  peg$currPos = s0;
3020
3093
  s0 = s1;
@@ -3061,7 +3134,7 @@ Emblem.Parser = (function() {
3061
3134
  }
3062
3135
  if (s1 !== null) {
3063
3136
  peg$reportedPos = s0;
3064
- s1 = peg$c83(s1);
3137
+ s1 = peg$c93(s1);
3065
3138
  }
3066
3139
  if (s1 === null) {
3067
3140
  peg$currPos = s0;
@@ -3085,7 +3158,7 @@ Emblem.Parser = (function() {
3085
3158
  if (s2 === null) {
3086
3159
  s2 = peg$parsehashStacheOpen();
3087
3160
  if (s2 === null) {
3088
- s2 = peg$parseDEDENT();
3161
+ s2 = peg$parseanyDedent();
3089
3162
  if (s2 === null) {
3090
3163
  s2 = peg$parseTERM();
3091
3164
  }
@@ -3105,11 +3178,11 @@ Emblem.Parser = (function() {
3105
3178
  peg$currPos++;
3106
3179
  } else {
3107
3180
  s2 = null;
3108
- if (peg$silentFails === 0) { peg$fail(peg$c84); }
3181
+ if (peg$silentFails === 0) { peg$fail(peg$c94); }
3109
3182
  }
3110
3183
  if (s2 !== null) {
3111
3184
  peg$reportedPos = s0;
3112
- s1 = peg$c85(s2);
3185
+ s1 = peg$c95(s2);
3113
3186
  if (s1 === null) {
3114
3187
  peg$currPos = s0;
3115
3188
  s0 = s1;
@@ -3147,16 +3220,16 @@ Emblem.Parser = (function() {
3147
3220
 
3148
3221
  peg$silentFails++;
3149
3222
  if (input.charCodeAt(peg$currPos) === 123) {
3150
- s0 = peg$c87;
3223
+ s0 = peg$c97;
3151
3224
  peg$currPos++;
3152
3225
  } else {
3153
3226
  s0 = null;
3154
- if (peg$silentFails === 0) { peg$fail(peg$c88); }
3227
+ if (peg$silentFails === 0) { peg$fail(peg$c98); }
3155
3228
  }
3156
3229
  peg$silentFails--;
3157
3230
  if (s0 === null) {
3158
3231
  s1 = null;
3159
- if (peg$silentFails === 0) { peg$fail(peg$c86); }
3232
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
3160
3233
  }
3161
3234
 
3162
3235
  return s0;
@@ -3166,17 +3239,17 @@ Emblem.Parser = (function() {
3166
3239
  var s0, s1;
3167
3240
 
3168
3241
  peg$silentFails++;
3169
- if (input.substr(peg$currPos, 2) === peg$c90) {
3170
- s0 = peg$c90;
3242
+ if (input.substr(peg$currPos, 2) === peg$c100) {
3243
+ s0 = peg$c100;
3171
3244
  peg$currPos += 2;
3172
3245
  } else {
3173
3246
  s0 = null;
3174
- if (peg$silentFails === 0) { peg$fail(peg$c91); }
3247
+ if (peg$silentFails === 0) { peg$fail(peg$c101); }
3175
3248
  }
3176
3249
  peg$silentFails--;
3177
3250
  if (s0 === null) {
3178
3251
  s1 = null;
3179
- if (peg$silentFails === 0) { peg$fail(peg$c89); }
3252
+ if (peg$silentFails === 0) { peg$fail(peg$c99); }
3180
3253
  }
3181
3254
 
3182
3255
  return s0;
@@ -3186,17 +3259,17 @@ Emblem.Parser = (function() {
3186
3259
  var s0, s1;
3187
3260
 
3188
3261
  peg$silentFails++;
3189
- if (input.substr(peg$currPos, 3) === peg$c93) {
3190
- s0 = peg$c93;
3262
+ if (input.substr(peg$currPos, 3) === peg$c103) {
3263
+ s0 = peg$c103;
3191
3264
  peg$currPos += 3;
3192
3265
  } else {
3193
3266
  s0 = null;
3194
- if (peg$silentFails === 0) { peg$fail(peg$c94); }
3267
+ if (peg$silentFails === 0) { peg$fail(peg$c104); }
3195
3268
  }
3196
3269
  peg$silentFails--;
3197
3270
  if (s0 === null) {
3198
3271
  s1 = null;
3199
- if (peg$silentFails === 0) { peg$fail(peg$c92); }
3272
+ if (peg$silentFails === 0) { peg$fail(peg$c102); }
3200
3273
  }
3201
3274
 
3202
3275
  return s0;
@@ -3207,16 +3280,16 @@ Emblem.Parser = (function() {
3207
3280
 
3208
3281
  peg$silentFails++;
3209
3282
  if (input.charCodeAt(peg$currPos) === 125) {
3210
- s0 = peg$c96;
3283
+ s0 = peg$c106;
3211
3284
  peg$currPos++;
3212
3285
  } else {
3213
3286
  s0 = null;
3214
- if (peg$silentFails === 0) { peg$fail(peg$c97); }
3287
+ if (peg$silentFails === 0) { peg$fail(peg$c107); }
3215
3288
  }
3216
3289
  peg$silentFails--;
3217
3290
  if (s0 === null) {
3218
3291
  s1 = null;
3219
- if (peg$silentFails === 0) { peg$fail(peg$c95); }
3292
+ if (peg$silentFails === 0) { peg$fail(peg$c105); }
3220
3293
  }
3221
3294
 
3222
3295
  return s0;
@@ -3226,17 +3299,17 @@ Emblem.Parser = (function() {
3226
3299
  var s0, s1;
3227
3300
 
3228
3301
  peg$silentFails++;
3229
- if (input.substr(peg$currPos, 2) === peg$c99) {
3230
- s0 = peg$c99;
3302
+ if (input.substr(peg$currPos, 2) === peg$c109) {
3303
+ s0 = peg$c109;
3231
3304
  peg$currPos += 2;
3232
3305
  } else {
3233
3306
  s0 = null;
3234
- if (peg$silentFails === 0) { peg$fail(peg$c100); }
3307
+ if (peg$silentFails === 0) { peg$fail(peg$c110); }
3235
3308
  }
3236
3309
  peg$silentFails--;
3237
3310
  if (s0 === null) {
3238
3311
  s1 = null;
3239
- if (peg$silentFails === 0) { peg$fail(peg$c98); }
3312
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
3240
3313
  }
3241
3314
 
3242
3315
  return s0;
@@ -3246,17 +3319,17 @@ Emblem.Parser = (function() {
3246
3319
  var s0, s1;
3247
3320
 
3248
3321
  peg$silentFails++;
3249
- if (input.substr(peg$currPos, 3) === peg$c102) {
3250
- s0 = peg$c102;
3322
+ if (input.substr(peg$currPos, 3) === peg$c112) {
3323
+ s0 = peg$c112;
3251
3324
  peg$currPos += 3;
3252
3325
  } else {
3253
3326
  s0 = null;
3254
- if (peg$silentFails === 0) { peg$fail(peg$c103); }
3327
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
3255
3328
  }
3256
3329
  peg$silentFails--;
3257
3330
  if (s0 === null) {
3258
3331
  s1 = null;
3259
- if (peg$silentFails === 0) { peg$fail(peg$c101); }
3332
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
3260
3333
  }
3261
3334
 
3262
3335
  return s0;
@@ -3266,17 +3339,17 @@ Emblem.Parser = (function() {
3266
3339
  var s0, s1;
3267
3340
 
3268
3341
  peg$silentFails++;
3269
- if (input.substr(peg$currPos, 2) === peg$c105) {
3270
- s0 = peg$c105;
3342
+ if (input.substr(peg$currPos, 2) === peg$c115) {
3343
+ s0 = peg$c115;
3271
3344
  peg$currPos += 2;
3272
3345
  } else {
3273
3346
  s0 = null;
3274
- if (peg$silentFails === 0) { peg$fail(peg$c106); }
3347
+ if (peg$silentFails === 0) { peg$fail(peg$c116); }
3275
3348
  }
3276
3349
  peg$silentFails--;
3277
3350
  if (s0 === null) {
3278
3351
  s1 = null;
3279
- if (peg$silentFails === 0) { peg$fail(peg$c104); }
3352
+ if (peg$silentFails === 0) { peg$fail(peg$c114); }
3280
3353
  }
3281
3354
 
3282
3355
  return s0;
@@ -3287,16 +3360,16 @@ Emblem.Parser = (function() {
3287
3360
 
3288
3361
  peg$silentFails++;
3289
3362
  if (input.charCodeAt(peg$currPos) === 125) {
3290
- s0 = peg$c96;
3363
+ s0 = peg$c106;
3291
3364
  peg$currPos++;
3292
3365
  } else {
3293
3366
  s0 = null;
3294
- if (peg$silentFails === 0) { peg$fail(peg$c97); }
3367
+ if (peg$silentFails === 0) { peg$fail(peg$c107); }
3295
3368
  }
3296
3369
  peg$silentFails--;
3297
3370
  if (s0 === null) {
3298
3371
  s1 = null;
3299
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
3372
+ if (peg$silentFails === 0) { peg$fail(peg$c117); }
3300
3373
  }
3301
3374
 
3302
3375
  return s0;
@@ -3306,27 +3379,27 @@ Emblem.Parser = (function() {
3306
3379
  var s0, s1, s2;
3307
3380
 
3308
3381
  s0 = peg$currPos;
3309
- if (input.substr(peg$currPos, 2) === peg$c108) {
3310
- s1 = peg$c108;
3382
+ if (input.substr(peg$currPos, 2) === peg$c118) {
3383
+ s1 = peg$c118;
3311
3384
  peg$currPos += 2;
3312
3385
  } else {
3313
3386
  s1 = null;
3314
- if (peg$silentFails === 0) { peg$fail(peg$c109); }
3387
+ if (peg$silentFails === 0) { peg$fail(peg$c119); }
3315
3388
  }
3316
3389
  if (s1 !== null) {
3317
3390
  if (input.charCodeAt(peg$currPos) === 32) {
3318
- s2 = peg$c16;
3391
+ s2 = peg$c23;
3319
3392
  peg$currPos++;
3320
3393
  } else {
3321
3394
  s2 = null;
3322
- if (peg$silentFails === 0) { peg$fail(peg$c17); }
3395
+ if (peg$silentFails === 0) { peg$fail(peg$c24); }
3323
3396
  }
3324
3397
  if (s2 === null) {
3325
3398
  s2 = peg$c1;
3326
3399
  }
3327
3400
  if (s2 !== null) {
3328
3401
  peg$reportedPos = s0;
3329
- s1 = peg$c110();
3402
+ s1 = peg$c120();
3330
3403
  if (s1 === null) {
3331
3404
  peg$currPos = s0;
3332
3405
  s0 = s1;
@@ -3344,26 +3417,26 @@ Emblem.Parser = (function() {
3344
3417
  if (s0 === null) {
3345
3418
  s0 = peg$currPos;
3346
3419
  if (input.charCodeAt(peg$currPos) === 61) {
3347
- s1 = peg$c40;
3420
+ s1 = peg$c25;
3348
3421
  peg$currPos++;
3349
3422
  } else {
3350
3423
  s1 = null;
3351
- if (peg$silentFails === 0) { peg$fail(peg$c41); }
3424
+ if (peg$silentFails === 0) { peg$fail(peg$c26); }
3352
3425
  }
3353
3426
  if (s1 !== null) {
3354
3427
  if (input.charCodeAt(peg$currPos) === 32) {
3355
- s2 = peg$c16;