emblem-source 0.3.9 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +6 -14
  2. data/dist/emblem.js +591 -562
  3. data/dist/emblem.min.js +2 -2
  4. metadata +5 -6
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MDBjYmQ0OTcyMzdjY2EzNTEwNzk4NWU2NjBlY2VlZmI4MDJjYjE0Nw==
5
- data.tar.gz: !binary |-
6
- ODYyNmRlZjYzNjMwYzRmMjY2YzljYWVlY2RiYmNmZjM5NmYzYzdjYQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- OTIzNjBlZTM4Mzk4MDE0NzM0NmQwZWIwYWUxZWJiMjhlZWFmZjFkZTI4MmI1
10
- YmZjNGU0MzM2YTBkMjdlMTBjMjFkZjhhMmFmNTg4MGYxMjQzMzEzNjI3MmRm
11
- YWFhOTFlNzU3OGU0ODJlZDk3NmVmZDA3MzA4NWQ4NjA2MjVlZWU=
12
- data.tar.gz: !binary |-
13
- Mjc4OWY5YzBkZjY1ZDBlYmVjZWRmMDYzOTUwZmEzMTMxMTg5Mzg4MzRkMmY5
14
- OThlZTg2Mjg3NjQ3YjRlZDA0MjRkZWQwZGZmZjM4MmFlYTQzMWE3MTc5YTFl
15
- MGQ4MzMwMjUwNDgxNDRkNGE2Zjc0NDY4YmQ4MmQ5NDMzNDUwNTk=
2
+ SHA1:
3
+ metadata.gz: 1565a77fe5a9284984818d53f3c56102345cb605
4
+ data.tar.gz: 009dddc0acfcfa35e4517b886d2f6d18c38b87ff
5
+ SHA512:
6
+ metadata.gz: 50e39bae6e1d17b931b86ddce24ace99a7a9ad62c5744ee3456f44cf8cfb4ff15049925ba557259dad37e232419cea8e4221fe60b41756c5bc8fba71cad0421c
7
+ data.tar.gz: 5c3c38c34e420038e7610999a1361e0202972fe3871db690500f1f71ac29ece0def506ed3f343b794530448505e7a6618e512d0e51db77350e4c61a5b93b2f96
@@ -1,4 +1,4 @@
1
- ;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
1
+ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
2
  var Emblem;
3
3
 
4
4
  Emblem = require('./emblem');
@@ -97,13 +97,13 @@ if (typeof window !== "undefined" && window !== null) {
97
97
  }
98
98
 
99
99
  },{"./emblem":3}],3:[function(require,module,exports){
100
- var global=self;var Emblem;
100
+ var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};var Emblem;
101
101
 
102
102
  this.Emblem = {};
103
103
 
104
104
  Emblem = this.Emblem;
105
105
 
106
- Emblem.VERSION = "0.3.9";
106
+ Emblem.VERSION = "0.3.11";
107
107
 
108
108
  module.exports = Emblem;
109
109
 
@@ -330,12 +330,31 @@ Emblem.Parser = (function() {
330
330
  mustache.escaped = e;
331
331
  return ret;
332
332
  },
333
- peg$c37 = function(isPartial, path, params, hash) {
333
+ peg$c37 = function(isPartial, sexpr) {
334
334
  if(isPartial) {
335
- var n = new AST.PartialNameNode(new AST.StringNode(path.string));
336
- return new AST.PartialNode(n, params[0]);
335
+ var n = new AST.PartialNameNode(new AST.StringNode(sexpr.id.string));
336
+ return new AST.PartialNode(n, sexpr.params[0]);
337
337
  }
338
338
 
339
+ var mustacheNode
340
+ if (useSexprNodes) {
341
+ mustacheNode = createMustacheNode(sexpr, null, true);
342
+ } else {
343
+ mustacheNode = createMustacheNode([sexpr.id].concat(sexpr.params), sexpr.hash, true);
344
+ }
345
+
346
+ var tm = sexpr.id._emblemSuffixModifier;
347
+ if(tm === '!') {
348
+ return unshiftParam(mustacheNode, 'unbound');
349
+ } else if(tm === '?') {
350
+ return unshiftParam(mustacheNode, 'if');
351
+ } else if(tm === '^') {
352
+ return unshiftParam(mustacheNode, 'unless');
353
+ }
354
+
355
+ return mustacheNode;
356
+ },
357
+ peg$c38 = function(path, params, hash) {
339
358
  var actualParams = [];
340
359
  var attrs = {};
341
360
  var hasAttrs = false;
@@ -363,54 +382,53 @@ Emblem.Parser = (function() {
363
382
 
364
383
  actualParams.unshift(path);
365
384
 
366
- var mustacheNode = createMustacheNode(actualParams, hash, true);
367
-
368
- var tm = path._emblemSuffixModifier;
369
- if(tm === '!') {
370
- return unshiftParam(mustacheNode, 'unbound');
371
- } else if(tm === '?') {
372
- return unshiftParam(mustacheNode, 'if');
373
- } else if(tm === '^') {
374
- return unshiftParam(mustacheNode, 'unless');
385
+ if (useSexprNodes) {
386
+ return new AST.SexprNode(actualParams, hash);
387
+ } else {
388
+ // Stub a sexpr-like node for backwards compatibility with pre-1.3 AST.
389
+ return {
390
+ id: actualParams[0],
391
+ params: actualParams.slice(1),
392
+ hash: hash
393
+ };
375
394
  }
376
-
377
- return mustacheNode;
378
395
  },
379
- peg$c38 = function(t) { return ['tagName', t]; },
380
- peg$c39 = function(i) { return ['elementId', i]; },
381
- peg$c40 = function(c) { return ['class', c]; },
382
- peg$c41 = function(a) {
396
+ peg$c39 = function(t) { return ['tagName', t]; },
397
+ peg$c40 = function(i) { return ['elementId', i]; },
398
+ peg$c41 = function(c) { return ['class', c]; },
399
+ peg$c42 = function(a) {
383
400
  return a;
384
401
  },
385
- peg$c42 = function(id, classes) { return [id, classes]; },
386
- peg$c43 = function(classes) { return [null, classes]; },
387
- peg$c44 = function(a) { return a; },
388
- peg$c45 = function(h) { return new AST.HashNode(h); },
389
- peg$c46 = "PathIdent",
390
- peg$c47 = "..",
391
- peg$c48 = "\"..\"",
392
- peg$c49 = ".",
393
- peg$c50 = "\".\"",
394
- peg$c51 = /^[a-zA-Z0-9_$\-!?\^]/,
395
- peg$c52 = "[a-zA-Z0-9_$\\-!?\\^]",
396
- peg$c53 = function(s) { return s; },
397
- peg$c54 = "Key",
398
- peg$c55 = ":",
399
- peg$c56 = "\":\"",
400
- peg$c57 = function(h) { return [h[0], h[2]]; },
401
- peg$c58 = function(n) { return n; },
402
- peg$c59 = function(s, p) { return { part: p, separator: s }; },
403
- peg$c60 = function(first, tail) {
402
+ peg$c43 = function(id, classes) { return [id, classes]; },
403
+ peg$c44 = function(classes) { return [null, classes]; },
404
+ peg$c45 = function(p) { return p; },
405
+ peg$c46 = function(a) { return a; },
406
+ peg$c47 = function(h) { return new AST.HashNode(h); },
407
+ peg$c48 = "PathIdent",
408
+ peg$c49 = "..",
409
+ peg$c50 = "\"..\"",
410
+ peg$c51 = ".",
411
+ peg$c52 = "\".\"",
412
+ peg$c53 = /^[a-zA-Z0-9_$\-!?\^]/,
413
+ peg$c54 = "[a-zA-Z0-9_$\\-!?\\^]",
414
+ peg$c55 = function(s) { return s; },
415
+ peg$c56 = "Key",
416
+ peg$c57 = ":",
417
+ peg$c58 = "\":\"",
418
+ peg$c59 = function(h) { return [h[0], h[2]]; },
419
+ peg$c60 = function(s) { s.isHelper = true; return s; },
420
+ peg$c61 = function(s, p) { return { part: p, separator: s }; },
421
+ peg$c62 = function(first, tail) {
404
422
  var ret = [{ part: first }];
405
423
  for(var i = 0; i < tail.length; ++i) {
406
424
  ret.push(tail[i]);
407
425
  }
408
426
  return ret;
409
427
  },
410
- peg$c61 = "PathSeparator",
411
- peg$c62 = /^[\/.]/,
412
- peg$c63 = "[\\/.]",
413
- peg$c64 = function(v) {
428
+ peg$c63 = "PathSeparator",
429
+ peg$c64 = /^[\/.]/,
430
+ peg$c65 = "[\\/.]",
431
+ peg$c66 = function(v) {
414
432
  var last = v[v.length - 1];
415
433
  var match;
416
434
  var suffixModifier;
@@ -424,32 +442,32 @@ Emblem.Parser = (function() {
424
442
 
425
443
  return idNode;
426
444
  },
427
- peg$c65 = function(v) { return new AST.StringNode(v); },
428
- peg$c66 = function(v) { return new AST.IntegerNode(v); },
429
- peg$c67 = function(v) { return new AST.BooleanNode(v); },
430
- peg$c68 = "Boolean",
431
- peg$c69 = "true",
432
- peg$c70 = "\"true\"",
433
- peg$c71 = "false",
434
- peg$c72 = "\"false\"",
435
- peg$c73 = "Integer",
436
- peg$c74 = "-",
437
- peg$c75 = "\"-\"",
438
- peg$c76 = /^[0-9]/,
439
- peg$c77 = "[0-9]",
440
- peg$c78 = function(s) { return parseInt(s); },
441
- peg$c79 = "\"",
442
- peg$c80 = "\"\\\"\"",
443
- peg$c81 = "'",
444
- peg$c82 = "\"'\"",
445
- peg$c83 = function(p) { return p[1]; },
446
- peg$c84 = /^[^"}]/,
447
- peg$c85 = "[^\"}]",
448
- peg$c86 = /^[^'}]/,
449
- peg$c87 = "[^'}]",
450
- peg$c88 = /^[A-Za-z]/,
451
- peg$c89 = "[A-Za-z]",
452
- peg$c90 = function(ind, nodes, w) {
445
+ peg$c67 = function(v) { return new AST.StringNode(v); },
446
+ peg$c68 = function(v) { return new AST.IntegerNode(v); },
447
+ peg$c69 = function(v) { return new AST.BooleanNode(v); },
448
+ peg$c70 = "Boolean",
449
+ peg$c71 = "true",
450
+ peg$c72 = "\"true\"",
451
+ peg$c73 = "false",
452
+ peg$c74 = "\"false\"",
453
+ peg$c75 = "Integer",
454
+ peg$c76 = "-",
455
+ peg$c77 = "\"-\"",
456
+ peg$c78 = /^[0-9]/,
457
+ peg$c79 = "[0-9]",
458
+ peg$c80 = function(s) { return parseInt(s); },
459
+ peg$c81 = "\"",
460
+ peg$c82 = "\"\\\"\"",
461
+ peg$c83 = "'",
462
+ peg$c84 = "\"'\"",
463
+ peg$c85 = function(p) { return p[1]; },
464
+ peg$c86 = /^[^"}]/,
465
+ peg$c87 = "[^\"}]",
466
+ peg$c88 = /^[^'}]/,
467
+ peg$c89 = "[^'}]",
468
+ peg$c90 = /^[A-Za-z]/,
469
+ peg$c91 = "[A-Za-z]",
470
+ peg$c92 = function(ind, nodes, w) {
453
471
  nodes.unshift(new AST.ContentNode(ind));
454
472
 
455
473
  for(var i = 0; i < w.length; ++i) {
@@ -459,12 +477,12 @@ Emblem.Parser = (function() {
459
477
  }
460
478
  return nodes;
461
479
  },
462
- peg$c91 = /^[|`']/,
463
- peg$c92 = "[|`']",
464
- peg$c93 = "<",
465
- peg$c94 = "\"<\"",
466
- peg$c95 = function() { return '<'; },
467
- peg$c96 = function(s, nodes, indentedNodes) {
480
+ peg$c93 = /^[|`']/,
481
+ peg$c94 = "[|`']",
482
+ peg$c95 = "<",
483
+ peg$c96 = "\"<\"",
484
+ peg$c97 = function() { return '<'; },
485
+ peg$c98 = function(s, nodes, indentedNodes) {
468
486
  if(nodes.length || !indentedNodes) {
469
487
  nodes.push("\n");
470
488
  }
@@ -497,50 +515,56 @@ Emblem.Parser = (function() {
497
515
 
498
516
  return ret;
499
517
  },
500
- peg$c97 = function(first, tail) {
518
+ peg$c99 = function(first, tail) {
501
519
  return textNodesResult(first, tail);
502
520
  },
503
- peg$c98 = function(first, tail) { return textNodesResult(first, tail); },
504
- peg$c99 = "{",
505
- peg$c100 = "\"{\"",
506
- peg$c101 = /^[^}]/,
507
- peg$c102 = "[^}]",
508
- peg$c103 = function(text) {
521
+ peg$c100 = function(first, tail) { return textNodesResult(first, tail); },
522
+ peg$c101 = "{",
523
+ peg$c102 = "\"{\"",
524
+ peg$c103 = /^[^}]/,
525
+ peg$c104 = "[^}]",
526
+ peg$c105 = function(text) {
509
527
  // Force interpretation as mustache.
510
528
  // TODO: change to just parse with a specific rule?
511
529
  text = "=" + text;
512
530
  return Emblem.parse(text).statements[0];
513
531
  },
514
- peg$c104 = function(m) { m.escaped = true; return m; },
515
- peg$c105 = function(m) { m.escaped = false; return m; },
516
- peg$c106 = function(a) { return new AST.ContentNode(a); },
517
- peg$c107 = "any character",
518
- peg$c108 = "SingleMustacheOpen",
519
- peg$c109 = "DoubleMustacheOpen",
520
- peg$c110 = "{{",
521
- peg$c111 = "\"{{\"",
522
- peg$c112 = "TripleMustacheOpen",
523
- peg$c113 = "{{{",
524
- peg$c114 = "\"{{{\"",
525
- peg$c115 = "SingleMustacheClose",
526
- peg$c116 = "}",
527
- peg$c117 = "\"}\"",
528
- peg$c118 = "DoubleMustacheClose",
529
- peg$c119 = "}}",
530
- peg$c120 = "\"}}\"",
531
- peg$c121 = "TripleMustacheClose",
532
- peg$c122 = "}}}",
533
- peg$c123 = "\"}}}\"",
534
- peg$c124 = "InterpolationOpen",
535
- peg$c125 = "#{",
536
- peg$c126 = "\"#{\"",
537
- peg$c127 = "InterpolationClose",
538
- peg$c128 = "==",
539
- peg$c129 = "\"==\"",
540
- peg$c130 = function() { return false; },
541
- peg$c131 = function() { return true; },
542
- peg$c132 = function(h, s) { return h || s; },
543
- peg$c133 = function(h, inTagMustaches, fullAttributes) {
532
+ peg$c106 = function(m) { m.escaped = true; return m; },
533
+ peg$c107 = function(m) { m.escaped = false; return m; },
534
+ peg$c108 = function(a) { return new AST.ContentNode(a); },
535
+ peg$c109 = "any character",
536
+ peg$c110 = "SingleMustacheOpen",
537
+ peg$c111 = "DoubleMustacheOpen",
538
+ peg$c112 = "{{",
539
+ peg$c113 = "\"{{\"",
540
+ peg$c114 = "TripleMustacheOpen",
541
+ peg$c115 = "{{{",
542
+ peg$c116 = "\"{{{\"",
543
+ peg$c117 = "SingleMustacheClose",
544
+ peg$c118 = "}",
545
+ peg$c119 = "\"}\"",
546
+ peg$c120 = "DoubleMustacheClose",
547
+ peg$c121 = "}}",
548
+ peg$c122 = "\"}}\"",
549
+ peg$c123 = "TripleMustacheClose",
550
+ peg$c124 = "}}}",
551
+ peg$c125 = "\"}}}\"",
552
+ peg$c126 = "SubexpressionOpen",
553
+ peg$c127 = "(",
554
+ peg$c128 = "\"(\"",
555
+ peg$c129 = "SubexpressionClose",
556
+ peg$c130 = ")",
557
+ peg$c131 = "\")\"",
558
+ peg$c132 = "InterpolationOpen",
559
+ peg$c133 = "#{",
560
+ peg$c134 = "\"#{\"",
561
+ peg$c135 = "InterpolationClose",
562
+ peg$c136 = "==",
563
+ peg$c137 = "\"==\"",
564
+ peg$c138 = function() { return false; },
565
+ peg$c139 = function() { return true; },
566
+ peg$c140 = function(h, s) { return h || s; },
567
+ peg$c141 = function(h, inTagMustaches, fullAttributes) {
544
568
  var tagName = h[0] || 'div',
545
569
  shorthandAttributes = h[1] || [],
546
570
  id = shorthandAttributes[0],
@@ -560,7 +584,7 @@ Emblem.Parser = (function() {
560
584
  for (var i2 in pairs) {
561
585
  if (!pairs.hasOwnProperty(i2)) { continue; }
562
586
  pair = pairs[i2];
563
- if (pair[0] === 'class' && pair[1] instanceof AST.StringNode) {
587
+ if (pair && pair[0] === 'class' && pair[1] instanceof AST.StringNode) {
564
588
  stringNode = pair[1];
565
589
  original = stringNode.original;
566
590
  stringNode.original = stringNode.string = stringNode.stringModeValue = ':' + classes.join(' :') + ' ' + original;
@@ -633,9 +657,9 @@ Emblem.Parser = (function() {
633
657
  return [tagOpenContent, new AST.ContentNode('</' + tagName + '>')];
634
658
  }
635
659
  },
636
- peg$c134 = function(s) { return { shorthand: s, id: true}; },
637
- peg$c135 = function(s) { return { shorthand: s }; },
638
- peg$c136 = function(shorthands) {
660
+ peg$c142 = function(s) { return { shorthand: s, id: true}; },
661
+ peg$c143 = function(s) { return { shorthand: s }; },
662
+ peg$c144 = function(shorthands) {
639
663
  var id, classes = [];
640
664
  for(var i = 0, len = shorthands.length; i < len; ++i) {
641
665
  var shorthand = shorthands[i];
@@ -648,39 +672,39 @@ Emblem.Parser = (function() {
648
672
 
649
673
  return [id, classes];
650
674
  },
651
- peg$c137 = function(a) {
675
+ peg$c145 = function(a) {
652
676
  if (a.length) {
653
677
  return [new AST.ContentNode(' ')].concat(a);
654
678
  } else {
655
679
  return [];
656
680
  }
657
681
  },
658
- peg$c138 = /^[A-Za-z.0-9_\-]/,
659
- peg$c139 = "[A-Za-z.0-9_\\-]",
660
- peg$c140 = function(id) { return createMustacheNode([id], null, true); },
661
- peg$c141 = function(event, mustacheNode) {
682
+ peg$c146 = /^[A-Za-z.0-9_\-]/,
683
+ peg$c147 = "[A-Za-z.0-9_\\-]",
684
+ peg$c148 = function(id) { return createMustacheNode([id], null, true); },
685
+ peg$c149 = function(event, mustacheNode) {
662
686
  // Unshift the action helper and augment the hash
663
687
  return [unshiftParam(mustacheNode, 'action', [['on', new AST.StringNode(event)]])];
664
688
  },
665
- peg$c142 = function(key, boolValue) {
689
+ peg$c150 = function(key, boolValue) {
666
690
  if (boolValue === 'true') {
667
691
  return [ new AST.ContentNode(key) ];
668
692
  } else {
669
693
  return [];
670
694
  }
671
695
  },
672
- peg$c143 = function(value) { return value.replace(/ *$/, ''); },
673
- peg$c144 = "!",
674
- peg$c145 = "\"!\"",
675
- peg$c146 = function(key, value) { return IS_EMBER; },
676
- peg$c147 = function(key, value) {
696
+ peg$c151 = function(value) { return value.replace(/ *$/, ''); },
697
+ peg$c152 = "!",
698
+ peg$c153 = "\"!\"",
699
+ peg$c154 = function(key, value) { return IS_EMBER; },
700
+ peg$c155 = function(key, value) {
677
701
  var hashNode = new AST.HashNode([[key, new AST.StringNode(value)]]);
678
702
  var params = [new AST.IdNode([{part: 'bind-attr'}])];
679
703
  var mustacheNode = createMustacheNode(params, hashNode);
680
704
 
681
705
  return [mustacheNode];
682
706
  },
683
- peg$c148 = function(key, id) {
707
+ peg$c156 = function(key, id) {
684
708
  var mustacheNode = createMustacheNode([id], null, true);
685
709
 
686
710
  if(IS_EMBER && id._emblemSuffixModifier === '!') {
@@ -693,52 +717,52 @@ Emblem.Parser = (function() {
693
717
  new AST.ContentNode('"'),
694
718
  ];
695
719
  },
696
- peg$c149 = function(key, nodes) {
720
+ peg$c157 = function(key, nodes) {
697
721
  var result = [ new AST.ContentNode(key + '=' + '"') ].concat(nodes);
698
722
  return result.concat([new AST.ContentNode('"')]);
699
723
  },
700
- peg$c150 = "_",
701
- peg$c151 = "\"_\"",
702
- peg$c152 = "%",
703
- peg$c153 = "\"%\"",
704
- peg$c154 = "#",
705
- peg$c155 = "\"#\"",
706
- peg$c156 = function(c) { return c;},
707
- peg$c157 = "CSSIdentifier",
708
- peg$c158 = /^[_a-zA-Z0-9\-]/,
709
- peg$c159 = "[_a-zA-Z0-9\\-]",
710
- peg$c160 = /^[_a-zA-Z]/,
711
- peg$c161 = "[_a-zA-Z]",
712
- peg$c162 = /^[\x80-\xFF]/,
713
- peg$c163 = "[\\x80-\\xFF]",
714
- peg$c164 = "KnownHTMLTagName",
715
- peg$c165 = function(t) { return !!KNOWN_TAGS[t]; },
716
- peg$c166 = function(t) { return t; },
717
- peg$c167 = "a JS event",
718
- peg$c168 = function(t) { return !!KNOWN_EVENTS[t]; },
719
- peg$c169 = "INDENT",
720
- peg$c170 = "\uEFEF",
721
- peg$c171 = "\"\\uEFEF\"",
722
- peg$c172 = function() { return ''; },
723
- peg$c173 = "DEDENT",
724
- peg$c174 = "\uEFFE",
725
- peg$c175 = "\"\\uEFFE\"",
726
- peg$c176 = "Unmatched DEDENT",
727
- peg$c177 = "\uEFEE",
728
- peg$c178 = "\"\\uEFEE\"",
729
- peg$c179 = "LineEnd",
730
- peg$c180 = "\r",
731
- peg$c181 = "\"\\r\"",
732
- peg$c182 = "\uEFFF",
733
- peg$c183 = "\"\\uEFFF\"",
734
- peg$c184 = "\n",
735
- peg$c185 = "\"\\n\"",
736
- peg$c186 = "ANYDEDENT",
737
- peg$c187 = "RequiredWhitespace",
738
- peg$c188 = "OptionalWhitespace",
739
- peg$c189 = "InlineWhitespace",
740
- peg$c190 = /^[ \t]/,
741
- peg$c191 = "[ \\t]",
724
+ peg$c158 = "_",
725
+ peg$c159 = "\"_\"",
726
+ peg$c160 = "%",
727
+ peg$c161 = "\"%\"",
728
+ peg$c162 = "#",
729
+ peg$c163 = "\"#\"",
730
+ peg$c164 = function(c) { return c;},
731
+ peg$c165 = "CSSIdentifier",
732
+ peg$c166 = /^[_a-zA-Z0-9\-]/,
733
+ peg$c167 = "[_a-zA-Z0-9\\-]",
734
+ peg$c168 = /^[_a-zA-Z]/,
735
+ peg$c169 = "[_a-zA-Z]",
736
+ peg$c170 = /^[\x80-\xFF]/,
737
+ peg$c171 = "[\\x80-\\xFF]",
738
+ peg$c172 = "KnownHTMLTagName",
739
+ peg$c173 = function(t) { return !!KNOWN_TAGS[t]; },
740
+ peg$c174 = function(t) { return t; },
741
+ peg$c175 = "a JS event",
742
+ peg$c176 = function(t) { return !!KNOWN_EVENTS[t]; },
743
+ peg$c177 = "INDENT",
744
+ peg$c178 = "\uEFEF",
745
+ peg$c179 = "\"\\uEFEF\"",
746
+ peg$c180 = function() { return ''; },
747
+ peg$c181 = "DEDENT",
748
+ peg$c182 = "\uEFFE",
749
+ peg$c183 = "\"\\uEFFE\"",
750
+ peg$c184 = "Unmatched DEDENT",
751
+ peg$c185 = "\uEFEE",
752
+ peg$c186 = "\"\\uEFEE\"",
753
+ peg$c187 = "LineEnd",
754
+ peg$c188 = "\r",
755
+ peg$c189 = "\"\\r\"",
756
+ peg$c190 = "\uEFFF",
757
+ peg$c191 = "\"\\uEFFF\"",
758
+ peg$c192 = "\n",
759
+ peg$c193 = "\"\\n\"",
760
+ peg$c194 = "ANYDEDENT",
761
+ peg$c195 = "RequiredWhitespace",
762
+ peg$c196 = "OptionalWhitespace",
763
+ peg$c197 = "InlineWhitespace",
764
+ peg$c198 = /^[ \t]/,
765
+ peg$c199 = "[ \\t]",
742
766
 
743
767
  peg$currPos = 0,
744
768
  peg$reportedPos = 0,
@@ -1901,7 +1925,7 @@ Emblem.Parser = (function() {
1901
1925
  }
1902
1926
 
1903
1927
  function peg$parseinMustache() {
1904
- var s0, s1, s2, s3, s4, s5;
1928
+ var s0, s1, s2, s3;
1905
1929
 
1906
1930
  s0 = peg$currPos;
1907
1931
  if (input.charCodeAt(peg$currPos) === 62) {
@@ -1917,35 +1941,57 @@ Emblem.Parser = (function() {
1917
1941
  if (s1 !== null) {
1918
1942
  s2 = peg$parse_();
1919
1943
  if (s2 !== null) {
1920
- s3 = peg$parsepathIdNode();
1944
+ s3 = peg$parsesexpr();
1921
1945
  if (s3 !== null) {
1922
- s4 = [];
1923
- s5 = peg$parseinMustacheParam();
1924
- while (s5 !== null) {
1925
- s4.push(s5);
1926
- s5 = peg$parseinMustacheParam();
1927
- }
1928
- if (s4 !== null) {
1929
- s5 = peg$parsehash();
1930
- if (s5 === null) {
1931
- s5 = peg$c1;
1932
- }
1933
- if (s5 !== null) {
1934
- peg$reportedPos = s0;
1935
- s1 = peg$c37(s1, s3, s4, s5);
1936
- if (s1 === null) {
1937
- peg$currPos = s0;
1938
- s0 = s1;
1939
- } else {
1940
- s0 = s1;
1941
- }
1942
- } else {
1943
- peg$currPos = s0;
1944
- s0 = peg$c0;
1945
- }
1946
+ peg$reportedPos = s0;
1947
+ s1 = peg$c37(s1, s3);
1948
+ if (s1 === null) {
1949
+ peg$currPos = s0;
1950
+ s0 = s1;
1946
1951
  } else {
1952
+ s0 = s1;
1953
+ }
1954
+ } else {
1955
+ peg$currPos = s0;
1956
+ s0 = peg$c0;
1957
+ }
1958
+ } else {
1959
+ peg$currPos = s0;
1960
+ s0 = peg$c0;
1961
+ }
1962
+ } else {
1963
+ peg$currPos = s0;
1964
+ s0 = peg$c0;
1965
+ }
1966
+
1967
+ return s0;
1968
+ }
1969
+
1970
+ function peg$parsesexpr() {
1971
+ var s0, s1, s2, s3;
1972
+
1973
+ s0 = peg$currPos;
1974
+ s1 = peg$parsepathIdNode();
1975
+ if (s1 !== null) {
1976
+ s2 = [];
1977
+ s3 = peg$parseinMustacheParam();
1978
+ while (s3 !== null) {
1979
+ s2.push(s3);
1980
+ s3 = peg$parseinMustacheParam();
1981
+ }
1982
+ if (s2 !== null) {
1983
+ s3 = peg$parsehash();
1984
+ if (s3 === null) {
1985
+ s3 = peg$c1;
1986
+ }
1987
+ if (s3 !== null) {
1988
+ peg$reportedPos = s0;
1989
+ s1 = peg$c38(s1, s2, s3);
1990
+ if (s1 === null) {
1947
1991
  peg$currPos = s0;
1948
- s0 = peg$c0;
1992
+ s0 = s1;
1993
+ } else {
1994
+ s0 = s1;
1949
1995
  }
1950
1996
  } else {
1951
1997
  peg$currPos = s0;
@@ -1973,7 +2019,7 @@ Emblem.Parser = (function() {
1973
2019
  s3 = peg$parsetagNameShorthand();
1974
2020
  if (s3 !== null) {
1975
2021
  peg$reportedPos = s2;
1976
- s3 = peg$c38(s3);
2022
+ s3 = peg$c39(s3);
1977
2023
  }
1978
2024
  if (s3 === null) {
1979
2025
  peg$currPos = s2;
@@ -1986,7 +2032,7 @@ Emblem.Parser = (function() {
1986
2032
  s3 = peg$parseidShorthand();
1987
2033
  if (s3 !== null) {
1988
2034
  peg$reportedPos = s2;
1989
- s3 = peg$c39(s3);
2035
+ s3 = peg$c40(s3);
1990
2036
  }
1991
2037
  if (s3 === null) {
1992
2038
  peg$currPos = s2;
@@ -1999,7 +2045,7 @@ Emblem.Parser = (function() {
1999
2045
  s3 = peg$parseclassShorthand();
2000
2046
  if (s3 !== null) {
2001
2047
  peg$reportedPos = s2;
2002
- s3 = peg$c40(s3);
2048
+ s3 = peg$c41(s3);
2003
2049
  }
2004
2050
  if (s3 === null) {
2005
2051
  peg$currPos = s2;
@@ -2011,7 +2057,7 @@ Emblem.Parser = (function() {
2011
2057
  }
2012
2058
  if (s2 !== null) {
2013
2059
  peg$reportedPos = s0;
2014
- s1 = peg$c41(s2);
2060
+ s1 = peg$c42(s2);
2015
2061
  if (s1 === null) {
2016
2062
  peg$currPos = s0;
2017
2063
  s0 = s1;
@@ -2055,7 +2101,7 @@ Emblem.Parser = (function() {
2055
2101
  }
2056
2102
  if (s2 !== null) {
2057
2103
  peg$reportedPos = s0;
2058
- s1 = peg$c42(s1, s2);
2104
+ s1 = peg$c43(s1, s2);
2059
2105
  if (s1 === null) {
2060
2106
  peg$currPos = s0;
2061
2107
  s0 = s1;
@@ -2090,7 +2136,7 @@ Emblem.Parser = (function() {
2090
2136
  }
2091
2137
  if (s1 !== null) {
2092
2138
  peg$reportedPos = s0;
2093
- s1 = peg$c43(s1);
2139
+ s1 = peg$c44(s1);
2094
2140
  }
2095
2141
  if (s1 === null) {
2096
2142
  peg$currPos = s0;
@@ -2103,16 +2149,36 @@ Emblem.Parser = (function() {
2103
2149
  }
2104
2150
 
2105
2151
  function peg$parseinMustacheParam() {
2106
- var s0, s1;
2152
+ var s0, s1, s2, s3;
2107
2153
 
2108
2154
  s0 = peg$currPos;
2109
2155
  s1 = peg$parsehtmlMustacheAttribute();
2110
2156
  if (s1 === null) {
2111
- s1 = peg$parseparam();
2157
+ s1 = peg$currPos;
2158
+ s2 = peg$parse__();
2159
+ if (s2 !== null) {
2160
+ s3 = peg$parseparam();
2161
+ if (s3 !== null) {
2162
+ peg$reportedPos = s1;
2163
+ s2 = peg$c45(s3);
2164
+ if (s2 === null) {
2165
+ peg$currPos = s1;
2166
+ s1 = s2;
2167
+ } else {
2168
+ s1 = s2;
2169
+ }
2170
+ } else {
2171
+ peg$currPos = s1;
2172
+ s1 = peg$c0;
2173
+ }
2174
+ } else {
2175
+ peg$currPos = s1;
2176
+ s1 = peg$c0;
2177
+ }
2112
2178
  }
2113
2179
  if (s1 !== null) {
2114
2180
  peg$reportedPos = s0;
2115
- s1 = peg$c44(s1);
2181
+ s1 = peg$c46(s1);
2116
2182
  }
2117
2183
  if (s1 === null) {
2118
2184
  peg$currPos = s0;
@@ -2140,7 +2206,7 @@ Emblem.Parser = (function() {
2140
2206
  }
2141
2207
  if (s1 !== null) {
2142
2208
  peg$reportedPos = s0;
2143
- s1 = peg$c45(s1);
2209
+ s1 = peg$c47(s1);
2144
2210
  }
2145
2211
  if (s1 === null) {
2146
2212
  peg$currPos = s0;
@@ -2156,41 +2222,41 @@ Emblem.Parser = (function() {
2156
2222
  var s0, s1, s2, s3;
2157
2223
 
2158
2224
  peg$silentFails++;
2159
- if (input.substr(peg$currPos, 2) === peg$c47) {
2160
- s0 = peg$c47;
2225
+ if (input.substr(peg$currPos, 2) === peg$c49) {
2226
+ s0 = peg$c49;
2161
2227
  peg$currPos += 2;
2162
2228
  } else {
2163
2229
  s0 = null;
2164
- if (peg$silentFails === 0) { peg$fail(peg$c48); }
2230
+ if (peg$silentFails === 0) { peg$fail(peg$c50); }
2165
2231
  }
2166
2232
  if (s0 === null) {
2167
2233
  if (input.charCodeAt(peg$currPos) === 46) {
2168
- s0 = peg$c49;
2234
+ s0 = peg$c51;
2169
2235
  peg$currPos++;
2170
2236
  } else {
2171
2237
  s0 = null;
2172
- if (peg$silentFails === 0) { peg$fail(peg$c50); }
2238
+ if (peg$silentFails === 0) { peg$fail(peg$c52); }
2173
2239
  }
2174
2240
  if (s0 === null) {
2175
2241
  s0 = peg$currPos;
2176
2242
  s1 = peg$currPos;
2177
2243
  s2 = [];
2178
- if (peg$c51.test(input.charAt(peg$currPos))) {
2244
+ if (peg$c53.test(input.charAt(peg$currPos))) {
2179
2245
  s3 = input.charAt(peg$currPos);
2180
2246
  peg$currPos++;
2181
2247
  } else {
2182
2248
  s3 = null;
2183
- if (peg$silentFails === 0) { peg$fail(peg$c52); }
2249
+ if (peg$silentFails === 0) { peg$fail(peg$c54); }
2184
2250
  }
2185
2251
  if (s3 !== null) {
2186
2252
  while (s3 !== null) {
2187
2253
  s2.push(s3);
2188
- if (peg$c51.test(input.charAt(peg$currPos))) {
2254
+ if (peg$c53.test(input.charAt(peg$currPos))) {
2189
2255
  s3 = input.charAt(peg$currPos);
2190
2256
  peg$currPos++;
2191
2257
  } else {
2192
2258
  s3 = null;
2193
- if (peg$silentFails === 0) { peg$fail(peg$c52); }
2259
+ if (peg$silentFails === 0) { peg$fail(peg$c54); }
2194
2260
  }
2195
2261
  }
2196
2262
  } else {
@@ -2219,7 +2285,7 @@ Emblem.Parser = (function() {
2219
2285
  }
2220
2286
  if (s2 !== null) {
2221
2287
  peg$reportedPos = s0;
2222
- s1 = peg$c53(s1);
2288
+ s1 = peg$c55(s1);
2223
2289
  if (s1 === null) {
2224
2290
  peg$currPos = s0;
2225
2291
  s0 = s1;
@@ -2239,7 +2305,7 @@ Emblem.Parser = (function() {
2239
2305
  peg$silentFails--;
2240
2306
  if (s0 === null) {
2241
2307
  s1 = null;
2242
- if (peg$silentFails === 0) { peg$fail(peg$c46); }
2308
+ if (peg$silentFails === 0) { peg$fail(peg$c48); }
2243
2309
  }
2244
2310
 
2245
2311
  return s0;
@@ -2254,11 +2320,11 @@ Emblem.Parser = (function() {
2254
2320
  s2 = peg$parsenmchar();
2255
2321
  if (s2 === null) {
2256
2322
  if (input.charCodeAt(peg$currPos) === 58) {
2257
- s2 = peg$c55;
2323
+ s2 = peg$c57;
2258
2324
  peg$currPos++;
2259
2325
  } else {
2260
2326
  s2 = null;
2261
- if (peg$silentFails === 0) { peg$fail(peg$c56); }
2327
+ if (peg$silentFails === 0) { peg$fail(peg$c58); }
2262
2328
  }
2263
2329
  }
2264
2330
  while (s2 !== null) {
@@ -2266,11 +2332,11 @@ Emblem.Parser = (function() {
2266
2332
  s2 = peg$parsenmchar();
2267
2333
  if (s2 === null) {
2268
2334
  if (input.charCodeAt(peg$currPos) === 58) {
2269
- s2 = peg$c55;
2335
+ s2 = peg$c57;
2270
2336
  peg$currPos++;
2271
2337
  } else {
2272
2338
  s2 = null;
2273
- if (peg$silentFails === 0) { peg$fail(peg$c56); }
2339
+ if (peg$silentFails === 0) { peg$fail(peg$c58); }
2274
2340
  }
2275
2341
  }
2276
2342
  }
@@ -2281,7 +2347,7 @@ Emblem.Parser = (function() {
2281
2347
  peg$silentFails--;
2282
2348
  if (s0 === null) {
2283
2349
  s1 = null;
2284
- if (peg$silentFails === 0) { peg$fail(peg$c54); }
2350
+ if (peg$silentFails === 0) { peg$fail(peg$c56); }
2285
2351
  }
2286
2352
 
2287
2353
  return s0;
@@ -2304,7 +2370,7 @@ Emblem.Parser = (function() {
2304
2370
  if (peg$silentFails === 0) { peg$fail(peg$c5); }
2305
2371
  }
2306
2372
  if (s4 !== null) {
2307
- s5 = peg$parsebooleanNode();
2373
+ s5 = peg$parseparam();
2308
2374
  if (s5 !== null) {
2309
2375
  s3 = [s3, s4, s5];
2310
2376
  s2 = s3;
@@ -2320,96 +2386,9 @@ Emblem.Parser = (function() {
2320
2386
  peg$currPos = s2;
2321
2387
  s2 = peg$c0;
2322
2388
  }
2323
- if (s2 === null) {
2324
- s2 = peg$currPos;
2325
- s3 = peg$parsekey();
2326
- if (s3 !== null) {
2327
- if (input.charCodeAt(peg$currPos) === 61) {
2328
- s4 = peg$c4;
2329
- peg$currPos++;
2330
- } else {
2331
- s4 = null;
2332
- if (peg$silentFails === 0) { peg$fail(peg$c5); }
2333
- }
2334
- if (s4 !== null) {
2335
- s5 = peg$parseintegerNode();
2336
- if (s5 !== null) {
2337
- s3 = [s3, s4, s5];
2338
- s2 = s3;
2339
- } else {
2340
- peg$currPos = s2;
2341
- s2 = peg$c0;
2342
- }
2343
- } else {
2344
- peg$currPos = s2;
2345
- s2 = peg$c0;
2346
- }
2347
- } else {
2348
- peg$currPos = s2;
2349
- s2 = peg$c0;
2350
- }
2351
- if (s2 === null) {
2352
- s2 = peg$currPos;
2353
- s3 = peg$parsekey();
2354
- if (s3 !== null) {
2355
- if (input.charCodeAt(peg$currPos) === 61) {
2356
- s4 = peg$c4;
2357
- peg$currPos++;
2358
- } else {
2359
- s4 = null;
2360
- if (peg$silentFails === 0) { peg$fail(peg$c5); }
2361
- }
2362
- if (s4 !== null) {
2363
- s5 = peg$parsepathIdNode();
2364
- if (s5 !== null) {
2365
- s3 = [s3, s4, s5];
2366
- s2 = s3;
2367
- } else {
2368
- peg$currPos = s2;
2369
- s2 = peg$c0;
2370
- }
2371
- } else {
2372
- peg$currPos = s2;
2373
- s2 = peg$c0;
2374
- }
2375
- } else {
2376
- peg$currPos = s2;
2377
- s2 = peg$c0;
2378
- }
2379
- if (s2 === null) {
2380
- s2 = peg$currPos;
2381
- s3 = peg$parsekey();
2382
- if (s3 !== null) {
2383
- if (input.charCodeAt(peg$currPos) === 61) {
2384
- s4 = peg$c4;
2385
- peg$currPos++;
2386
- } else {
2387
- s4 = null;
2388
- if (peg$silentFails === 0) { peg$fail(peg$c5); }
2389
- }
2390
- if (s4 !== null) {
2391
- s5 = peg$parsestringNode();
2392
- if (s5 !== null) {
2393
- s3 = [s3, s4, s5];
2394
- s2 = s3;
2395
- } else {
2396
- peg$currPos = s2;
2397
- s2 = peg$c0;
2398
- }
2399
- } else {
2400
- peg$currPos = s2;
2401
- s2 = peg$c0;
2402
- }
2403
- } else {
2404
- peg$currPos = s2;
2405
- s2 = peg$c0;
2406
- }
2407
- }
2408
- }
2409
- }
2410
2389
  if (s2 !== null) {
2411
2390
  peg$reportedPos = s0;
2412
- s1 = peg$c57(s2);
2391
+ s1 = peg$c59(s2);
2413
2392
  if (s1 === null) {
2414
2393
  peg$currPos = s0;
2415
2394
  s0 = s1;
@@ -2429,37 +2408,46 @@ Emblem.Parser = (function() {
2429
2408
  }
2430
2409
 
2431
2410
  function peg$parseparam() {
2432
- var s0, s1, s2;
2411
+ var s0, s1, s2, s3;
2433
2412
 
2434
- s0 = peg$currPos;
2435
- s1 = peg$parse__();
2436
- if (s1 !== null) {
2437
- s2 = peg$parsebooleanNode();
2438
- if (s2 === null) {
2439
- s2 = peg$parseintegerNode();
2440
- if (s2 === null) {
2441
- s2 = peg$parsepathIdNode();
2442
- if (s2 === null) {
2443
- s2 = peg$parsestringNode();
2413
+ s0 = peg$parsebooleanNode();
2414
+ if (s0 === null) {
2415
+ s0 = peg$parseintegerNode();
2416
+ if (s0 === null) {
2417
+ s0 = peg$parsepathIdNode();
2418
+ if (s0 === null) {
2419
+ s0 = peg$parsestringNode();
2420
+ if (s0 === null) {
2421
+ s0 = peg$currPos;
2422
+ s1 = peg$parsesexprOpen();
2423
+ if (s1 !== null) {
2424
+ s2 = peg$parsesexpr();
2425
+ if (s2 !== null) {
2426
+ s3 = peg$parsesexprClose();
2427
+ if (s3 !== null) {
2428
+ peg$reportedPos = s0;
2429
+ s1 = peg$c60(s2);
2430
+ if (s1 === null) {
2431
+ peg$currPos = s0;
2432
+ s0 = s1;
2433
+ } else {
2434
+ s0 = s1;
2435
+ }
2436
+ } else {
2437
+ peg$currPos = s0;
2438
+ s0 = peg$c0;
2439
+ }
2440
+ } else {
2441
+ peg$currPos = s0;
2442
+ s0 = peg$c0;
2443
+ }
2444
+ } else {
2445
+ peg$currPos = s0;
2446
+ s0 = peg$c0;
2447
+ }
2444
2448
  }
2445
2449
  }
2446
2450
  }
2447
- if (s2 !== null) {
2448
- peg$reportedPos = s0;
2449
- s1 = peg$c58(s2);
2450
- if (s1 === null) {
2451
- peg$currPos = s0;
2452
- s0 = s1;
2453
- } else {
2454
- s0 = s1;
2455
- }
2456
- } else {
2457
- peg$currPos = s0;
2458
- s0 = peg$c0;
2459
- }
2460
- } else {
2461
- peg$currPos = s0;
2462
- s0 = peg$c0;
2463
2451
  }
2464
2452
 
2465
2453
  return s0;
@@ -2478,7 +2466,7 @@ Emblem.Parser = (function() {
2478
2466
  s5 = peg$parsepathIdent();
2479
2467
  if (s5 !== null) {
2480
2468
  peg$reportedPos = s3;
2481
- s4 = peg$c59(s4, s5);
2469
+ s4 = peg$c61(s4, s5);
2482
2470
  if (s4 === null) {
2483
2471
  peg$currPos = s3;
2484
2472
  s3 = s4;
@@ -2501,7 +2489,7 @@ Emblem.Parser = (function() {
2501
2489
  s5 = peg$parsepathIdent();
2502
2490
  if (s5 !== null) {
2503
2491
  peg$reportedPos = s3;
2504
- s4 = peg$c59(s4, s5);
2492
+ s4 = peg$c61(s4, s5);
2505
2493
  if (s4 === null) {
2506
2494
  peg$currPos = s3;
2507
2495
  s3 = s4;
@@ -2519,7 +2507,7 @@ Emblem.Parser = (function() {
2519
2507
  }
2520
2508
  if (s2 !== null) {
2521
2509
  peg$reportedPos = s0;
2522
- s1 = peg$c60(s1, s2);
2510
+ s1 = peg$c62(s1, s2);
2523
2511
  if (s1 === null) {
2524
2512
  peg$currPos = s0;
2525
2513
  s0 = s1;
@@ -2542,17 +2530,17 @@ Emblem.Parser = (function() {
2542
2530
  var s0, s1;
2543
2531
 
2544
2532
  peg$silentFails++;
2545
- if (peg$c62.test(input.charAt(peg$currPos))) {
2533
+ if (peg$c64.test(input.charAt(peg$currPos))) {
2546
2534
  s0 = input.charAt(peg$currPos);
2547
2535
  peg$currPos++;
2548
2536
  } else {
2549
2537
  s0 = null;
2550
- if (peg$silentFails === 0) { peg$fail(peg$c63); }
2538
+ if (peg$silentFails === 0) { peg$fail(peg$c65); }
2551
2539
  }
2552
2540
  peg$silentFails--;
2553
2541
  if (s0 === null) {
2554
2542
  s1 = null;
2555
- if (peg$silentFails === 0) { peg$fail(peg$c61); }
2543
+ if (peg$silentFails === 0) { peg$fail(peg$c63); }
2556
2544
  }
2557
2545
 
2558
2546
  return s0;
@@ -2565,7 +2553,7 @@ Emblem.Parser = (function() {
2565
2553
  s1 = peg$parsepath();
2566
2554
  if (s1 !== null) {
2567
2555
  peg$reportedPos = s0;
2568
- s1 = peg$c64(s1);
2556
+ s1 = peg$c66(s1);
2569
2557
  }
2570
2558
  if (s1 === null) {
2571
2559
  peg$currPos = s0;
@@ -2584,7 +2572,7 @@ Emblem.Parser = (function() {
2584
2572
  s1 = peg$parsestring();
2585
2573
  if (s1 !== null) {
2586
2574
  peg$reportedPos = s0;
2587
- s1 = peg$c65(s1);
2575
+ s1 = peg$c67(s1);
2588
2576
  }
2589
2577
  if (s1 === null) {
2590
2578
  peg$currPos = s0;
@@ -2603,7 +2591,7 @@ Emblem.Parser = (function() {
2603
2591
  s1 = peg$parseinteger();
2604
2592
  if (s1 !== null) {
2605
2593
  peg$reportedPos = s0;
2606
- s1 = peg$c66(s1);
2594
+ s1 = peg$c68(s1);
2607
2595
  }
2608
2596
  if (s1 === null) {
2609
2597
  peg$currPos = s0;
@@ -2622,7 +2610,7 @@ Emblem.Parser = (function() {
2622
2610
  s1 = peg$parseboolean();
2623
2611
  if (s1 !== null) {
2624
2612
  peg$reportedPos = s0;
2625
- s1 = peg$c67(s1);
2613
+ s1 = peg$c69(s1);
2626
2614
  }
2627
2615
  if (s1 === null) {
2628
2616
  peg$currPos = s0;
@@ -2638,26 +2626,26 @@ Emblem.Parser = (function() {
2638
2626
  var s0, s1;
2639
2627
 
2640
2628
  peg$silentFails++;
2641
- if (input.substr(peg$currPos, 4) === peg$c69) {
2642
- s0 = peg$c69;
2629
+ if (input.substr(peg$currPos, 4) === peg$c71) {
2630
+ s0 = peg$c71;
2643
2631
  peg$currPos += 4;
2644
2632
  } else {
2645
2633
  s0 = null;
2646
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
2634
+ if (peg$silentFails === 0) { peg$fail(peg$c72); }
2647
2635
  }
2648
2636
  if (s0 === null) {
2649
- if (input.substr(peg$currPos, 5) === peg$c71) {
2650
- s0 = peg$c71;
2637
+ if (input.substr(peg$currPos, 5) === peg$c73) {
2638
+ s0 = peg$c73;
2651
2639
  peg$currPos += 5;
2652
2640
  } else {
2653
2641
  s0 = null;
2654
- if (peg$silentFails === 0) { peg$fail(peg$c72); }
2642
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
2655
2643
  }
2656
2644
  }
2657
2645
  peg$silentFails--;
2658
2646
  if (s0 === null) {
2659
2647
  s1 = null;
2660
- if (peg$silentFails === 0) { peg$fail(peg$c68); }
2648
+ if (peg$silentFails === 0) { peg$fail(peg$c70); }
2661
2649
  }
2662
2650
 
2663
2651
  return s0;
@@ -2671,33 +2659,33 @@ Emblem.Parser = (function() {
2671
2659
  s1 = peg$currPos;
2672
2660
  s2 = peg$currPos;
2673
2661
  if (input.charCodeAt(peg$currPos) === 45) {
2674
- s3 = peg$c74;
2662
+ s3 = peg$c76;
2675
2663
  peg$currPos++;
2676
2664
  } else {
2677
2665
  s3 = null;
2678
- if (peg$silentFails === 0) { peg$fail(peg$c75); }
2666
+ if (peg$silentFails === 0) { peg$fail(peg$c77); }
2679
2667
  }
2680
2668
  if (s3 === null) {
2681
2669
  s3 = peg$c1;
2682
2670
  }
2683
2671
  if (s3 !== null) {
2684
2672
  s4 = [];
2685
- if (peg$c76.test(input.charAt(peg$currPos))) {
2673
+ if (peg$c78.test(input.charAt(peg$currPos))) {
2686
2674
  s5 = input.charAt(peg$currPos);
2687
2675
  peg$currPos++;
2688
2676
  } else {
2689
2677
  s5 = null;
2690
- if (peg$silentFails === 0) { peg$fail(peg$c77); }
2678
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
2691
2679
  }
2692
2680
  if (s5 !== null) {
2693
2681
  while (s5 !== null) {
2694
2682
  s4.push(s5);
2695
- if (peg$c76.test(input.charAt(peg$currPos))) {
2683
+ if (peg$c78.test(input.charAt(peg$currPos))) {
2696
2684
  s5 = input.charAt(peg$currPos);
2697
2685
  peg$currPos++;
2698
2686
  } else {
2699
2687
  s5 = null;
2700
- if (peg$silentFails === 0) { peg$fail(peg$c77); }
2688
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
2701
2689
  }
2702
2690
  }
2703
2691
  } else {
@@ -2720,7 +2708,7 @@ Emblem.Parser = (function() {
2720
2708
  s1 = s2;
2721
2709
  if (s1 !== null) {
2722
2710
  peg$reportedPos = s0;
2723
- s1 = peg$c78(s1);
2711
+ s1 = peg$c80(s1);
2724
2712
  }
2725
2713
  if (s1 === null) {
2726
2714
  peg$currPos = s0;
@@ -2731,7 +2719,7 @@ Emblem.Parser = (function() {
2731
2719
  peg$silentFails--;
2732
2720
  if (s0 === null) {
2733
2721
  s1 = null;
2734
- if (peg$silentFails === 0) { peg$fail(peg$c73); }
2722
+ if (peg$silentFails === 0) { peg$fail(peg$c75); }
2735
2723
  }
2736
2724
 
2737
2725
  return s0;
@@ -2743,21 +2731,21 @@ Emblem.Parser = (function() {
2743
2731
  s0 = peg$currPos;
2744
2732
  s1 = peg$currPos;
2745
2733
  if (input.charCodeAt(peg$currPos) === 34) {
2746
- s2 = peg$c79;
2734
+ s2 = peg$c81;
2747
2735
  peg$currPos++;
2748
2736
  } else {
2749
2737
  s2 = null;
2750
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
2738
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
2751
2739
  }
2752
2740
  if (s2 !== null) {
2753
2741
  s3 = peg$parsehashDoubleQuoteStringValue();
2754
2742
  if (s3 !== null) {
2755
2743
  if (input.charCodeAt(peg$currPos) === 34) {
2756
- s4 = peg$c79;
2744
+ s4 = peg$c81;
2757
2745
  peg$currPos++;
2758
2746
  } else {
2759
2747
  s4 = null;
2760
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
2748
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
2761
2749
  }
2762
2750
  if (s4 !== null) {
2763
2751
  s2 = [s2, s3, s4];
@@ -2777,21 +2765,21 @@ Emblem.Parser = (function() {
2777
2765
  if (s1 === null) {
2778
2766
  s1 = peg$currPos;
2779
2767
  if (input.charCodeAt(peg$currPos) === 39) {
2780
- s2 = peg$c81;
2768
+ s2 = peg$c83;
2781
2769
  peg$currPos++;
2782
2770
  } else {
2783
2771
  s2 = null;
2784
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
2772
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
2785
2773
  }
2786
2774
  if (s2 !== null) {
2787
2775
  s3 = peg$parsehashSingleQuoteStringValue();
2788
2776
  if (s3 !== null) {
2789
2777
  if (input.charCodeAt(peg$currPos) === 39) {
2790
- s4 = peg$c81;
2778
+ s4 = peg$c83;
2791
2779
  peg$currPos++;
2792
2780
  } else {
2793
2781
  s4 = null;
2794
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
2782
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
2795
2783
  }
2796
2784
  if (s4 !== null) {
2797
2785
  s2 = [s2, s3, s4];
@@ -2811,7 +2799,7 @@ Emblem.Parser = (function() {
2811
2799
  }
2812
2800
  if (s1 !== null) {
2813
2801
  peg$reportedPos = s0;
2814
- s1 = peg$c83(s1);
2802
+ s1 = peg$c85(s1);
2815
2803
  }
2816
2804
  if (s1 === null) {
2817
2805
  peg$currPos = s0;
@@ -2840,12 +2828,12 @@ Emblem.Parser = (function() {
2840
2828
  s3 = peg$c0;
2841
2829
  }
2842
2830
  if (s3 !== null) {
2843
- if (peg$c84.test(input.charAt(peg$currPos))) {
2831
+ if (peg$c86.test(input.charAt(peg$currPos))) {
2844
2832
  s4 = input.charAt(peg$currPos);
2845
2833
  peg$currPos++;
2846
2834
  } else {
2847
2835
  s4 = null;
2848
- if (peg$silentFails === 0) { peg$fail(peg$c85); }
2836
+ if (peg$silentFails === 0) { peg$fail(peg$c87); }
2849
2837
  }
2850
2838
  if (s4 !== null) {
2851
2839
  s3 = [s3, s4];
@@ -2872,12 +2860,12 @@ Emblem.Parser = (function() {
2872
2860
  s3 = peg$c0;
2873
2861
  }
2874
2862
  if (s3 !== null) {
2875
- if (peg$c84.test(input.charAt(peg$currPos))) {
2863
+ if (peg$c86.test(input.charAt(peg$currPos))) {
2876
2864
  s4 = input.charAt(peg$currPos);
2877
2865
  peg$currPos++;
2878
2866
  } else {
2879
2867
  s4 = null;
2880
- if (peg$silentFails === 0) { peg$fail(peg$c85); }
2868
+ if (peg$silentFails === 0) { peg$fail(peg$c87); }
2881
2869
  }
2882
2870
  if (s4 !== null) {
2883
2871
  s3 = [s3, s4];
@@ -2916,12 +2904,12 @@ Emblem.Parser = (function() {
2916
2904
  s3 = peg$c0;
2917
2905
  }
2918
2906
  if (s3 !== null) {
2919
- if (peg$c86.test(input.charAt(peg$currPos))) {
2907
+ if (peg$c88.test(input.charAt(peg$currPos))) {
2920
2908
  s4 = input.charAt(peg$currPos);
2921
2909
  peg$currPos++;
2922
2910
  } else {
2923
2911
  s4 = null;
2924
- if (peg$silentFails === 0) { peg$fail(peg$c87); }
2912
+ if (peg$silentFails === 0) { peg$fail(peg$c89); }
2925
2913
  }
2926
2914
  if (s4 !== null) {
2927
2915
  s3 = [s3, s4];
@@ -2948,12 +2936,12 @@ Emblem.Parser = (function() {
2948
2936
  s3 = peg$c0;
2949
2937
  }
2950
2938
  if (s3 !== null) {
2951
- if (peg$c86.test(input.charAt(peg$currPos))) {
2939
+ if (peg$c88.test(input.charAt(peg$currPos))) {
2952
2940
  s4 = input.charAt(peg$currPos);
2953
2941
  peg$currPos++;
2954
2942
  } else {
2955
2943
  s4 = null;
2956
- if (peg$silentFails === 0) { peg$fail(peg$c87); }
2944
+ if (peg$silentFails === 0) { peg$fail(peg$c89); }
2957
2945
  }
2958
2946
  if (s4 !== null) {
2959
2947
  s3 = [s3, s4];
@@ -2978,12 +2966,12 @@ Emblem.Parser = (function() {
2978
2966
  function peg$parsealpha() {
2979
2967
  var s0;
2980
2968
 
2981
- if (peg$c88.test(input.charAt(peg$currPos))) {
2969
+ if (peg$c90.test(input.charAt(peg$currPos))) {
2982
2970
  s0 = input.charAt(peg$currPos);
2983
2971
  peg$currPos++;
2984
2972
  } else {
2985
2973
  s0 = null;
2986
- if (peg$silentFails === 0) { peg$fail(peg$c89); }
2974
+ if (peg$silentFails === 0) { peg$fail(peg$c91); }
2987
2975
  }
2988
2976
 
2989
2977
  return s0;
@@ -3007,7 +2995,7 @@ Emblem.Parser = (function() {
3007
2995
  s4 = peg$parseanyDedent();
3008
2996
  if (s4 !== null) {
3009
2997
  peg$reportedPos = s0;
3010
- s1 = peg$c90(s1, s2, s3);
2998
+ s1 = peg$c92(s1, s2, s3);
3011
2999
  if (s1 === null) {
3012
3000
  peg$currPos = s0;
3013
3001
  s0 = s1;
@@ -3041,12 +3029,12 @@ Emblem.Parser = (function() {
3041
3029
  var s0, s1, s2;
3042
3030
 
3043
3031
  s0 = peg$currPos;
3044
- if (peg$c91.test(input.charAt(peg$currPos))) {
3032
+ if (peg$c93.test(input.charAt(peg$currPos))) {
3045
3033
  s1 = input.charAt(peg$currPos);
3046
3034
  peg$currPos++;
3047
3035
  } else {
3048
3036
  s1 = null;
3049
- if (peg$silentFails === 0) { peg$fail(peg$c92); }
3037
+ if (peg$silentFails === 0) { peg$fail(peg$c94); }
3050
3038
  }
3051
3039
  if (s1 !== null) {
3052
3040
  if (input.charCodeAt(peg$currPos) === 32) {
@@ -3061,7 +3049,7 @@ Emblem.Parser = (function() {
3061
3049
  }
3062
3050
  if (s2 !== null) {
3063
3051
  peg$reportedPos = s0;
3064
- s1 = peg$c53(s1);
3052
+ s1 = peg$c55(s1);
3065
3053
  if (s1 === null) {
3066
3054
  peg$currPos = s0;
3067
3055
  s0 = s1;
@@ -3081,11 +3069,11 @@ Emblem.Parser = (function() {
3081
3069
  s1 = peg$currPos;
3082
3070
  peg$silentFails++;
3083
3071
  if (input.charCodeAt(peg$currPos) === 60) {
3084
- s2 = peg$c93;
3072
+ s2 = peg$c95;
3085
3073
  peg$currPos++;
3086
3074
  } else {
3087
3075
  s2 = null;
3088
- if (peg$silentFails === 0) { peg$fail(peg$c94); }
3076
+ if (peg$silentFails === 0) { peg$fail(peg$c96); }
3089
3077
  }
3090
3078
  peg$silentFails--;
3091
3079
  if (s2 !== null) {
@@ -3096,7 +3084,7 @@ Emblem.Parser = (function() {
3096
3084
  }
3097
3085
  if (s1 !== null) {
3098
3086
  peg$reportedPos = s0;
3099
- s1 = peg$c95();
3087
+ s1 = peg$c97();
3100
3088
  }
3101
3089
  if (s1 === null) {
3102
3090
  peg$currPos = s0;
@@ -3148,7 +3136,7 @@ Emblem.Parser = (function() {
3148
3136
  }
3149
3137
  if (s3 !== null) {
3150
3138
  peg$reportedPos = s0;
3151
- s1 = peg$c96(s1, s2, s3);
3139
+ s1 = peg$c98(s1, s2, s3);
3152
3140
  if (s1 === null) {
3153
3141
  peg$currPos = s0;
3154
3142
  s0 = s1;
@@ -3224,7 +3212,7 @@ Emblem.Parser = (function() {
3224
3212
  s3 = peg$parseTERM();
3225
3213
  if (s3 !== null) {
3226
3214
  peg$reportedPos = s0;
3227
- s1 = peg$c97(s1, s2);
3215
+ s1 = peg$c99(s1, s2);
3228
3216
  if (s1 === null) {
3229
3217
  peg$currPos = s0;
3230
3218
  s0 = s1;
@@ -3252,25 +3240,25 @@ Emblem.Parser = (function() {
3252
3240
 
3253
3241
  s0 = peg$currPos;
3254
3242
  if (input.charCodeAt(peg$currPos) === 34) {
3255
- s1 = peg$c79;
3243
+ s1 = peg$c81;
3256
3244
  peg$currPos++;
3257
3245
  } else {
3258
3246
  s1 = null;
3259
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
3247
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
3260
3248
  }
3261
3249
  if (s1 !== null) {
3262
3250
  s2 = peg$parseattributeTextNodesInner();
3263
3251
  if (s2 !== null) {
3264
3252
  if (input.charCodeAt(peg$currPos) === 34) {
3265
- s3 = peg$c79;
3253
+ s3 = peg$c81;
3266
3254
  peg$currPos++;
3267
3255
  } else {
3268
3256
  s3 = null;
3269
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
3257
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
3270
3258
  }
3271
3259
  if (s3 !== null) {
3272
3260
  peg$reportedPos = s0;
3273
- s1 = peg$c44(s2);
3261
+ s1 = peg$c46(s2);
3274
3262
  if (s1 === null) {
3275
3263
  peg$currPos = s0;
3276
3264
  s0 = s1;
@@ -3292,25 +3280,25 @@ Emblem.Parser = (function() {
3292
3280
  if (s0 === null) {
3293
3281
  s0 = peg$currPos;
3294
3282
  if (input.charCodeAt(peg$currPos) === 39) {
3295
- s1 = peg$c81;
3283
+ s1 = peg$c83;
3296
3284
  peg$currPos++;
3297
3285
  } else {
3298
3286
  s1 = null;
3299
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
3287
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
3300
3288
  }
3301
3289
  if (s1 !== null) {
3302
3290
  s2 = peg$parseattributeTextNodesInnerSingle();
3303
3291
  if (s2 !== null) {
3304
3292
  if (input.charCodeAt(peg$currPos) === 39) {
3305
- s3 = peg$c81;
3293
+ s3 = peg$c83;
3306
3294
  peg$currPos++;
3307
3295
  } else {
3308
3296
  s3 = null;
3309
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
3297
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
3310
3298
  }
3311
3299
  if (s3 !== null) {
3312
3300
  peg$reportedPos = s0;
3313
- s1 = peg$c44(s2);
3301
+ s1 = peg$c46(s2);
3314
3302
  if (s1 === null) {
3315
3303
  peg$currPos = s0;
3316
3304
  s0 = s1;
@@ -3385,7 +3373,7 @@ Emblem.Parser = (function() {
3385
3373
  }
3386
3374
  if (s2 !== null) {
3387
3375
  peg$reportedPos = s0;
3388
- s1 = peg$c98(s1, s2);
3376
+ s1 = peg$c100(s1, s2);
3389
3377
  if (s1 === null) {
3390
3378
  peg$currPos = s0;
3391
3379
  s0 = s1;
@@ -3455,7 +3443,7 @@ Emblem.Parser = (function() {
3455
3443
  }
3456
3444
  if (s2 !== null) {
3457
3445
  peg$reportedPos = s0;
3458
- s1 = peg$c98(s1, s2);
3446
+ s1 = peg$c100(s1, s2);
3459
3447
  if (s1 === null) {
3460
3448
  peg$currPos = s0;
3461
3449
  s0 = s1;
@@ -3492,11 +3480,11 @@ Emblem.Parser = (function() {
3492
3480
  s1 = peg$currPos;
3493
3481
  peg$silentFails++;
3494
3482
  if (input.charCodeAt(peg$currPos) === 123) {
3495
- s2 = peg$c99;
3483
+ s2 = peg$c101;
3496
3484
  peg$currPos++;
3497
3485
  } else {
3498
3486
  s2 = null;
3499
- if (peg$silentFails === 0) { peg$fail(peg$c100); }
3487
+ if (peg$silentFails === 0) { peg$fail(peg$c102); }
3500
3488
  }
3501
3489
  peg$silentFails--;
3502
3490
  if (s2 === null) {
@@ -3508,21 +3496,21 @@ Emblem.Parser = (function() {
3508
3496
  if (s1 !== null) {
3509
3497
  s2 = peg$currPos;
3510
3498
  s3 = [];
3511
- if (peg$c101.test(input.charAt(peg$currPos))) {
3499
+ if (peg$c103.test(input.charAt(peg$currPos))) {
3512
3500
  s4 = input.charAt(peg$currPos);
3513
3501
  peg$currPos++;
3514
3502
  } else {
3515
3503
  s4 = null;
3516
- if (peg$silentFails === 0) { peg$fail(peg$c102); }
3504
+ if (peg$silentFails === 0) { peg$fail(peg$c104); }
3517
3505
  }
3518
3506
  while (s4 !== null) {
3519
3507
  s3.push(s4);
3520
- if (peg$c101.test(input.charAt(peg$currPos))) {
3508
+ if (peg$c103.test(input.charAt(peg$currPos))) {
3521
3509
  s4 = input.charAt(peg$currPos);
3522
3510
  peg$currPos++;
3523
3511
  } else {
3524
3512
  s4 = null;
3525
- if (peg$silentFails === 0) { peg$fail(peg$c102); }
3513
+ if (peg$silentFails === 0) { peg$fail(peg$c104); }
3526
3514
  }
3527
3515
  }
3528
3516
  if (s3 !== null) {
@@ -3531,7 +3519,7 @@ Emblem.Parser = (function() {
3531
3519
  s2 = s3;
3532
3520
  if (s2 !== null) {
3533
3521
  peg$reportedPos = s0;
3534
- s1 = peg$c103(s2);
3522
+ s1 = peg$c105(s2);
3535
3523
  if (s1 === null) {
3536
3524
  peg$currPos = s0;
3537
3525
  s0 = s1;
@@ -3565,7 +3553,7 @@ Emblem.Parser = (function() {
3565
3553
  s5 = peg$parsedoubleClose();
3566
3554
  if (s5 !== null) {
3567
3555
  peg$reportedPos = s0;
3568
- s1 = peg$c104(s3);
3556
+ s1 = peg$c106(s3);
3569
3557
  if (s1 === null) {
3570
3558
  peg$currPos = s0;
3571
3559
  s0 = s1;
@@ -3605,7 +3593,7 @@ Emblem.Parser = (function() {
3605
3593
  s5 = peg$parsehashStacheClose();
3606
3594
  if (s5 !== null) {
3607
3595
  peg$reportedPos = s0;
3608
- s1 = peg$c104(s3);
3596
+ s1 = peg$c106(s3);
3609
3597
  if (s1 === null) {
3610
3598
  peg$currPos = s0;
3611
3599
  s0 = s1;
@@ -3652,7 +3640,7 @@ Emblem.Parser = (function() {
3652
3640
  s5 = peg$parsetripleClose();
3653
3641
  if (s5 !== null) {
3654
3642
  peg$reportedPos = s0;
3655
- s1 = peg$c105(s3);
3643
+ s1 = peg$c107(s3);
3656
3644
  if (s1 === null) {
3657
3645
  peg$currPos = s0;
3658
3646
  s0 = s1;
@@ -3704,7 +3692,7 @@ Emblem.Parser = (function() {
3704
3692
  s1 = s2;
3705
3693
  if (s1 !== null) {
3706
3694
  peg$reportedPos = s0;
3707
- s1 = peg$c106(s1);
3695
+ s1 = peg$c108(s1);
3708
3696
  }
3709
3697
  if (s1 === null) {
3710
3698
  peg$currPos = s0;
@@ -3737,7 +3725,7 @@ Emblem.Parser = (function() {
3737
3725
  s1 = s2;
3738
3726
  if (s1 !== null) {
3739
3727
  peg$reportedPos = s0;
3740
- s1 = peg$c106(s1);
3728
+ s1 = peg$c108(s1);
3741
3729
  }
3742
3730
  if (s1 === null) {
3743
3731
  peg$currPos = s0;
@@ -3758,11 +3746,11 @@ Emblem.Parser = (function() {
3758
3746
  s2 = peg$parsenonMustacheUnit();
3759
3747
  if (s2 === null) {
3760
3748
  if (input.charCodeAt(peg$currPos) === 34) {
3761
- s2 = peg$c79;
3749
+ s2 = peg$c81;
3762
3750
  peg$currPos++;
3763
3751
  } else {
3764
3752
  s2 = null;
3765
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
3753
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
3766
3754
  }
3767
3755
  }
3768
3756
  peg$silentFails--;
@@ -3778,7 +3766,7 @@ Emblem.Parser = (function() {
3778
3766
  peg$currPos++;
3779
3767
  } else {
3780
3768
  s2 = null;
3781
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
3769
+ if (peg$silentFails === 0) { peg$fail(peg$c109); }
3782
3770
  }
3783
3771
  if (s2 !== null) {
3784
3772
  peg$reportedPos = s0;
@@ -3810,11 +3798,11 @@ Emblem.Parser = (function() {
3810
3798
  s2 = peg$parsenonMustacheUnit();
3811
3799
  if (s2 === null) {
3812
3800
  if (input.charCodeAt(peg$currPos) === 39) {
3813
- s2 = peg$c81;
3801
+ s2 = peg$c83;
3814
3802
  peg$currPos++;
3815
3803
  } else {
3816
3804
  s2 = null;
3817
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
3805
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
3818
3806
  }
3819
3807
  }
3820
3808
  peg$silentFails--;
@@ -3830,7 +3818,7 @@ Emblem.Parser = (function() {
3830
3818
  peg$currPos++;
3831
3819
  } else {
3832
3820
  s2 = null;
3833
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
3821
+ if (peg$silentFails === 0) { peg$fail(peg$c109); }
3834
3822
  }
3835
3823
  if (s2 !== null) {
3836
3824
  peg$reportedPos = s0;
@@ -3874,7 +3862,7 @@ Emblem.Parser = (function() {
3874
3862
  s1 = s2;
3875
3863
  if (s1 !== null) {
3876
3864
  peg$reportedPos = s0;
3877
- s1 = peg$c106(s1);
3865
+ s1 = peg$c108(s1);
3878
3866
  }
3879
3867
  if (s1 === null) {
3880
3868
  peg$currPos = s0;
@@ -3906,7 +3894,7 @@ Emblem.Parser = (function() {
3906
3894
  peg$currPos++;
3907
3895
  } else {
3908
3896
  s2 = null;
3909
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
3897
+ if (peg$silentFails === 0) { peg$fail(peg$c109); }
3910
3898
  }
3911
3899
  if (s2 !== null) {
3912
3900
  peg$reportedPos = s0;
@@ -3964,7 +3952,7 @@ Emblem.Parser = (function() {
3964
3952
  s5 = peg$parsesingleClose();
3965
3953
  if (s5 !== null) {
3966
3954
  peg$reportedPos = s0;
3967
- s1 = peg$c104(s3);
3955
+ s1 = peg$c106(s3);
3968
3956
  if (s1 === null) {
3969
3957
  peg$currPos = s0;
3970
3958
  s0 = s1;
@@ -4014,16 +4002,16 @@ Emblem.Parser = (function() {
4014
4002
 
4015
4003
  peg$silentFails++;
4016
4004
  if (input.charCodeAt(peg$currPos) === 123) {
4017
- s0 = peg$c99;
4005
+ s0 = peg$c101;
4018
4006
  peg$currPos++;
4019
4007
  } else {
4020
4008
  s0 = null;
4021
- if (peg$silentFails === 0) { peg$fail(peg$c100); }
4009
+ if (peg$silentFails === 0) { peg$fail(peg$c102); }
4022
4010
  }
4023
4011
  peg$silentFails--;
4024
4012
  if (s0 === null) {
4025
4013
  s1 = null;
4026
- if (peg$silentFails === 0) { peg$fail(peg$c108); }
4014
+ if (peg$silentFails === 0) { peg$fail(peg$c110); }
4027
4015
  }
4028
4016
 
4029
4017
  return s0;
@@ -4033,17 +4021,17 @@ Emblem.Parser = (function() {
4033
4021
  var s0, s1;
4034
4022
 
4035
4023
  peg$silentFails++;
4036
- if (input.substr(peg$currPos, 2) === peg$c110) {
4037
- s0 = peg$c110;
4024
+ if (input.substr(peg$currPos, 2) === peg$c112) {
4025
+ s0 = peg$c112;
4038
4026
  peg$currPos += 2;
4039
4027
  } else {
4040
4028
  s0 = null;
4041
- if (peg$silentFails === 0) { peg$fail(peg$c111); }
4029
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
4042
4030
  }
4043
4031
  peg$silentFails--;
4044
4032
  if (s0 === null) {
4045
4033
  s1 = null;
4046
- if (peg$silentFails === 0) { peg$fail(peg$c109); }
4034
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
4047
4035
  }
4048
4036
 
4049
4037
  return s0;
@@ -4053,17 +4041,17 @@ Emblem.Parser = (function() {
4053
4041
  var s0, s1;
4054
4042
 
4055
4043
  peg$silentFails++;
4056
- if (input.substr(peg$currPos, 3) === peg$c113) {
4057
- s0 = peg$c113;
4044
+ if (input.substr(peg$currPos, 3) === peg$c115) {
4045
+ s0 = peg$c115;
4058
4046
  peg$currPos += 3;
4059
4047
  } else {
4060
4048
  s0 = null;
4061
- if (peg$silentFails === 0) { peg$fail(peg$c114); }
4049
+ if (peg$silentFails === 0) { peg$fail(peg$c116); }
4062
4050
  }
4063
4051
  peg$silentFails--;
4064
4052
  if (s0 === null) {
4065
4053
  s1 = null;
4066
- if (peg$silentFails === 0) { peg$fail(peg$c112); }
4054
+ if (peg$silentFails === 0) { peg$fail(peg$c114); }
4067
4055
  }
4068
4056
 
4069
4057
  return s0;
@@ -4074,16 +4062,16 @@ Emblem.Parser = (function() {
4074
4062
 
4075
4063
  peg$silentFails++;
4076
4064
  if (input.charCodeAt(peg$currPos) === 125) {
4077
- s0 = peg$c116;
4065
+ s0 = peg$c118;
4078
4066
  peg$currPos++;
4079
4067
  } else {
4080
4068
  s0 = null;
4081
- if (peg$silentFails === 0) { peg$fail(peg$c117); }
4069
+ if (peg$silentFails === 0) { peg$fail(peg$c119); }
4082
4070
  }
4083
4071
  peg$silentFails--;
4084
4072
  if (s0 === null) {
4085
4073
  s1 = null;
4086
- if (peg$silentFails === 0) { peg$fail(peg$c115); }
4074
+ if (peg$silentFails === 0) { peg$fail(peg$c117); }
4087
4075
  }
4088
4076
 
4089
4077
  return s0;
@@ -4093,17 +4081,17 @@ Emblem.Parser = (function() {
4093
4081
  var s0, s1;
4094
4082
 
4095
4083
  peg$silentFails++;
4096
- if (input.substr(peg$currPos, 2) === peg$c119) {
4097
- s0 = peg$c119;
4084
+ if (input.substr(peg$currPos, 2) === peg$c121) {
4085
+ s0 = peg$c121;
4098
4086
  peg$currPos += 2;
4099
4087
  } else {
4100
4088
  s0 = null;
4101
- if (peg$silentFails === 0) { peg$fail(peg$c120); }
4089
+ if (peg$silentFails === 0) { peg$fail(peg$c122); }
4102
4090
  }
4103
4091
  peg$silentFails--;
4104
4092
  if (s0 === null) {
4105
4093
  s1 = null;
4106
- if (peg$silentFails === 0) { peg$fail(peg$c118); }
4094
+ if (peg$silentFails === 0) { peg$fail(peg$c120); }
4107
4095
  }
4108
4096
 
4109
4097
  return s0;
@@ -4113,17 +4101,57 @@ Emblem.Parser = (function() {
4113
4101
  var s0, s1;
4114
4102
 
4115
4103
  peg$silentFails++;
4116
- if (input.substr(peg$currPos, 3) === peg$c122) {
4117
- s0 = peg$c122;
4104
+ if (input.substr(peg$currPos, 3) === peg$c124) {
4105
+ s0 = peg$c124;
4118
4106
  peg$currPos += 3;
4119
4107
  } else {
4120
4108
  s0 = null;
4109
+ if (peg$silentFails === 0) { peg$fail(peg$c125); }
4110
+ }
4111
+ peg$silentFails--;
4112
+ if (s0 === null) {
4113
+ s1 = null;
4121
4114
  if (peg$silentFails === 0) { peg$fail(peg$c123); }
4122
4115
  }
4116
+
4117
+ return s0;
4118
+ }
4119
+
4120
+ function peg$parsesexprOpen() {
4121
+ var s0, s1;
4122
+
4123
+ peg$silentFails++;
4124
+ if (input.charCodeAt(peg$currPos) === 40) {
4125
+ s0 = peg$c127;
4126
+ peg$currPos++;
4127
+ } else {
4128
+ s0 = null;
4129
+ if (peg$silentFails === 0) { peg$fail(peg$c128); }
4130
+ }
4131
+ peg$silentFails--;
4132
+ if (s0 === null) {
4133
+ s1 = null;
4134
+ if (peg$silentFails === 0) { peg$fail(peg$c126); }
4135
+ }
4136
+
4137
+ return s0;
4138
+ }
4139
+
4140
+ function peg$parsesexprClose() {
4141
+ var s0, s1;
4142
+
4143
+ peg$silentFails++;
4144
+ if (input.charCodeAt(peg$currPos) === 41) {
4145
+ s0 = peg$c130;
4146
+ peg$currPos++;
4147
+ } else {
4148
+ s0 = null;
4149
+ if (peg$silentFails === 0) { peg$fail(peg$c131); }
4150
+ }
4123
4151
  peg$silentFails--;
4124
4152
  if (s0 === null) {
4125
4153
  s1 = null;
4126
- if (peg$silentFails === 0) { peg$fail(peg$c121); }
4154
+ if (peg$silentFails === 0) { peg$fail(peg$c129); }
4127
4155
  }
4128
4156
 
4129
4157
  return s0;
@@ -4133,17 +4161,17 @@ Emblem.Parser = (function() {
4133
4161
  var s0, s1;
4134
4162
 
4135
4163
  peg$silentFails++;
4136
- if (input.substr(peg$currPos, 2) === peg$c125) {
4137
- s0 = peg$c125;
4164
+ if (input.substr(peg$currPos, 2) === peg$c133) {
4165
+ s0 = peg$c133;
4138
4166
  peg$currPos += 2;
4139
4167
  } else {
4140
4168
  s0 = null;
4141
- if (peg$silentFails === 0) { peg$fail(peg$c126); }
4169
+ if (peg$silentFails === 0) { peg$fail(peg$c134); }
4142
4170
  }
4143
4171
  peg$silentFails--;
4144
4172
  if (s0 === null) {
4145
4173
  s1 = null;
4146
- if (peg$silentFails === 0) { peg$fail(peg$c124); }
4174
+ if (peg$silentFails === 0) { peg$fail(peg$c132); }
4147
4175
  }
4148
4176
 
4149
4177
  return s0;
@@ -4154,16 +4182,16 @@ Emblem.Parser = (function() {
4154
4182
 
4155
4183
  peg$silentFails++;
4156
4184
  if (input.charCodeAt(peg$currPos) === 125) {
4157
- s0 = peg$c116;
4185
+ s0 = peg$c118;
4158
4186
  peg$currPos++;
4159
4187
  } else {
4160
4188
  s0 = null;
4161
- if (peg$silentFails === 0) { peg$fail(peg$c117); }
4189
+ if (peg$silentFails === 0) { peg$fail(peg$c119); }
4162
4190
  }
4163
4191
  peg$silentFails--;
4164
4192
  if (s0 === null) {
4165
4193
  s1 = null;
4166
- if (peg$silentFails === 0) { peg$fail(peg$c127); }
4194
+ if (peg$silentFails === 0) { peg$fail(peg$c135); }
4167
4195
  }
4168
4196
 
4169
4197
  return s0;
@@ -4173,12 +4201,12 @@ Emblem.Parser = (function() {
4173
4201
  var s0, s1, s2;
4174
4202
 
4175
4203
  s0 = peg$currPos;
4176
- if (input.substr(peg$currPos, 2) === peg$c128) {
4177
- s1 = peg$c128;
4204
+ if (input.substr(peg$currPos, 2) === peg$c136) {
4205
+ s1 = peg$c136;
4178
4206
  peg$currPos += 2;
4179
4207
  } else {
4180
4208
  s1 = null;
4181
- if (peg$silentFails === 0) { peg$fail(peg$c129); }
4209
+ if (peg$silentFails === 0) { peg$fail(peg$c137); }
4182
4210
  }
4183
4211
  if (s1 !== null) {
4184
4212
  if (input.charCodeAt(peg$currPos) === 32) {
@@ -4193,7 +4221,7 @@ Emblem.Parser = (function() {
4193
4221
  }
4194
4222
  if (s2 !== null) {
4195
4223
  peg$reportedPos = s0;
4196
- s1 = peg$c130();
4224
+ s1 = peg$c138();
4197
4225
  if (s1 === null) {
4198
4226
  peg$currPos = s0;
4199
4227
  s0 = s1;
@@ -4230,7 +4258,7 @@ Emblem.Parser = (function() {
4230
4258
  }
4231
4259
  if (s2 !== null) {
4232
4260
  peg$reportedPos = s0;
4233
- s1 = peg$c131();
4261
+ s1 = peg$c139();
4234
4262
  if (s1 === null) {
4235
4263
  peg$currPos = s0;
4236
4264
  s0 = s1;
@@ -4276,7 +4304,7 @@ Emblem.Parser = (function() {
4276
4304
  }
4277
4305
  if (s3 !== null) {
4278
4306
  peg$reportedPos = peg$currPos;
4279
- s4 = peg$c132(s1, s2);
4307
+ s4 = peg$c140(s1, s2);
4280
4308
  if (s4) {
4281
4309
  s4 = peg$c1;
4282
4310
  } else {
@@ -4326,7 +4354,7 @@ Emblem.Parser = (function() {
4326
4354
  }
4327
4355
  if (s3 !== null) {
4328
4356
  peg$reportedPos = s0;
4329
- s1 = peg$c133(s1, s2, s3);
4357
+ s1 = peg$c141(s1, s2, s3);
4330
4358
  if (s1 === null) {
4331
4359
  peg$currPos = s0;
4332
4360
  s0 = s1;
@@ -4358,7 +4386,7 @@ Emblem.Parser = (function() {
4358
4386
  s3 = peg$parseidShorthand();
4359
4387
  if (s3 !== null) {
4360
4388
  peg$reportedPos = s2;
4361
- s3 = peg$c134(s3);
4389
+ s3 = peg$c142(s3);
4362
4390
  }
4363
4391
  if (s3 === null) {
4364
4392
  peg$currPos = s2;
@@ -4371,7 +4399,7 @@ Emblem.Parser = (function() {
4371
4399
  s3 = peg$parseclassShorthand();
4372
4400
  if (s3 !== null) {
4373
4401
  peg$reportedPos = s2;
4374
- s3 = peg$c135(s3);
4402
+ s3 = peg$c143(s3);
4375
4403
  }
4376
4404
  if (s3 === null) {
4377
4405
  peg$currPos = s2;
@@ -4387,7 +4415,7 @@ Emblem.Parser = (function() {
4387
4415
  s3 = peg$parseidShorthand();
4388
4416
  if (s3 !== null) {
4389
4417
  peg$reportedPos = s2;
4390
- s3 = peg$c134(s3);
4418
+ s3 = peg$c142(s3);
4391
4419
  }
4392
4420
  if (s3 === null) {
4393
4421
  peg$currPos = s2;
@@ -4400,7 +4428,7 @@ Emblem.Parser = (function() {
4400
4428
  s3 = peg$parseclassShorthand();
4401
4429
  if (s3 !== null) {
4402
4430
  peg$reportedPos = s2;
4403
- s3 = peg$c135(s3);
4431
+ s3 = peg$c143(s3);
4404
4432
  }
4405
4433
  if (s3 === null) {
4406
4434
  peg$currPos = s2;
@@ -4415,7 +4443,7 @@ Emblem.Parser = (function() {
4415
4443
  }
4416
4444
  if (s1 !== null) {
4417
4445
  peg$reportedPos = s0;
4418
- s1 = peg$c136(s1);
4446
+ s1 = peg$c144(s1);
4419
4447
  }
4420
4448
  if (s1 === null) {
4421
4449
  peg$currPos = s0;
@@ -4469,7 +4497,7 @@ Emblem.Parser = (function() {
4469
4497
  }
4470
4498
  if (s2 !== null) {
4471
4499
  peg$reportedPos = s0;
4472
- s1 = peg$c137(s2);
4500
+ s1 = peg$c145(s2);
4473
4501
  if (s1 === null) {
4474
4502
  peg$currPos = s0;
4475
4503
  s0 = s1;
@@ -4491,12 +4519,12 @@ Emblem.Parser = (function() {
4491
4519
  function peg$parseboundAttributeValueChar() {
4492
4520
  var s0;
4493
4521
 
4494
- if (peg$c138.test(input.charAt(peg$currPos))) {
4522
+ if (peg$c146.test(input.charAt(peg$currPos))) {
4495
4523
  s0 = input.charAt(peg$currPos);
4496
4524
  peg$currPos++;
4497
4525
  } else {
4498
4526
  s0 = null;
4499
- if (peg$silentFails === 0) { peg$fail(peg$c139); }
4527
+ if (peg$silentFails === 0) { peg$fail(peg$c147); }
4500
4528
  }
4501
4529
  if (s0 === null) {
4502
4530
  s0 = peg$parsenonSeparatorColon();
@@ -4514,7 +4542,7 @@ Emblem.Parser = (function() {
4514
4542
  s1 = peg$parsepathIdNode();
4515
4543
  if (s1 !== null) {
4516
4544
  peg$reportedPos = s0;
4517
- s1 = peg$c140(s1);
4545
+ s1 = peg$c148(s1);
4518
4546
  }
4519
4547
  if (s1 === null) {
4520
4548
  peg$currPos = s0;
@@ -4533,21 +4561,21 @@ Emblem.Parser = (function() {
4533
4561
  s0 = peg$currPos;
4534
4562
  s1 = peg$currPos;
4535
4563
  if (input.charCodeAt(peg$currPos) === 34) {
4536
- s2 = peg$c79;
4564
+ s2 = peg$c81;
4537
4565
  peg$currPos++;
4538
4566
  } else {
4539
4567
  s2 = null;
4540
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
4568
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
4541
4569
  }
4542
4570
  if (s2 !== null) {
4543
4571
  s3 = peg$parseinMustache();
4544
4572
  if (s3 !== null) {
4545
4573
  if (input.charCodeAt(peg$currPos) === 34) {
4546
- s4 = peg$c79;
4574
+ s4 = peg$c81;
4547
4575
  peg$currPos++;
4548
4576
  } else {
4549
4577
  s4 = null;
4550
- if (peg$silentFails === 0) { peg$fail(peg$c80); }
4578
+ if (peg$silentFails === 0) { peg$fail(peg$c82); }
4551
4579
  }
4552
4580
  if (s4 !== null) {
4553
4581
  s2 = [s2, s3, s4];
@@ -4567,21 +4595,21 @@ Emblem.Parser = (function() {
4567
4595
  if (s1 === null) {
4568
4596
  s1 = peg$currPos;
4569
4597
  if (input.charCodeAt(peg$currPos) === 39) {
4570
- s2 = peg$c81;
4598
+ s2 = peg$c83;
4571
4599
  peg$currPos++;
4572
4600
  } else {
4573
4601
  s2 = null;
4574
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
4602
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
4575
4603
  }
4576
4604
  if (s2 !== null) {
4577
4605
  s3 = peg$parseinMustache();
4578
4606
  if (s3 !== null) {
4579
4607
  if (input.charCodeAt(peg$currPos) === 39) {
4580
- s4 = peg$c81;
4608
+ s4 = peg$c83;
4581
4609
  peg$currPos++;
4582
4610
  } else {
4583
4611
  s4 = null;
4584
- if (peg$silentFails === 0) { peg$fail(peg$c82); }
4612
+ if (peg$silentFails === 0) { peg$fail(peg$c84); }
4585
4613
  }
4586
4614
  if (s4 !== null) {
4587
4615
  s2 = [s2, s3, s4];
@@ -4601,7 +4629,7 @@ Emblem.Parser = (function() {
4601
4629
  }
4602
4630
  if (s1 !== null) {
4603
4631
  peg$reportedPos = s0;
4604
- s1 = peg$c83(s1);
4632
+ s1 = peg$c85(s1);
4605
4633
  }
4606
4634
  if (s1 === null) {
4607
4635
  peg$currPos = s0;
@@ -4630,7 +4658,7 @@ Emblem.Parser = (function() {
4630
4658
  s3 = peg$parseactionValue();
4631
4659
  if (s3 !== null) {
4632
4660
  peg$reportedPos = s0;
4633
- s1 = peg$c141(s1, s3);
4661
+ s1 = peg$c149(s1, s3);
4634
4662
  if (s1 === null) {
4635
4663
  peg$currPos = s0;
4636
4664
  s0 = s1;
@@ -4667,25 +4695,25 @@ Emblem.Parser = (function() {
4667
4695
  if (peg$silentFails === 0) { peg$fail(peg$c5); }
4668
4696
  }
4669
4697
  if (s2 !== null) {
4670
- if (input.substr(peg$currPos, 4) === peg$c69) {
4671
- s3 = peg$c69;
4698
+ if (input.substr(peg$currPos, 4) === peg$c71) {
4699
+ s3 = peg$c71;
4672
4700
  peg$currPos += 4;
4673
4701
  } else {
4674
4702
  s3 = null;
4675
- if (peg$silentFails === 0) { peg$fail(peg$c70); }
4703
+ if (peg$silentFails === 0) { peg$fail(peg$c72); }
4676
4704
  }
4677
4705
  if (s3 === null) {
4678
- if (input.substr(peg$currPos, 5) === peg$c71) {
4679
- s3 = peg$c71;
4706
+ if (input.substr(peg$currPos, 5) === peg$c73) {
4707
+ s3 = peg$c73;
4680
4708
  peg$currPos += 5;
4681
4709
  } else {
4682
4710
  s3 = null;
4683
- if (peg$silentFails === 0) { peg$fail(peg$c72); }
4711
+ if (peg$silentFails === 0) { peg$fail(peg$c74); }
4684
4712
  }
4685
4713
  }
4686
4714
  if (s3 !== null) {
4687
4715
  peg$reportedPos = s0;
4688
- s1 = peg$c142(s1, s3);
4716
+ s1 = peg$c150(s1, s3);
4689
4717
  if (s1 === null) {
4690
4718
  peg$currPos = s0;
4691
4719
  s0 = s1;
@@ -4713,11 +4741,11 @@ Emblem.Parser = (function() {
4713
4741
 
4714
4742
  s0 = peg$currPos;
4715
4743
  if (input.charCodeAt(peg$currPos) === 123) {
4716
- s1 = peg$c99;
4744
+ s1 = peg$c101;
4717
4745
  peg$currPos++;
4718
4746
  } else {
4719
4747
  s1 = null;
4720
- if (peg$silentFails === 0) { peg$fail(peg$c100); }
4748
+ if (peg$silentFails === 0) { peg$fail(peg$c102); }
4721
4749
  }
4722
4750
  if (s1 !== null) {
4723
4751
  s2 = peg$parse_();
@@ -4759,15 +4787,15 @@ Emblem.Parser = (function() {
4759
4787
  s4 = peg$parse_();
4760
4788
  if (s4 !== null) {
4761
4789
  if (input.charCodeAt(peg$currPos) === 125) {
4762
- s5 = peg$c116;
4790
+ s5 = peg$c118;
4763
4791
  peg$currPos++;
4764
4792
  } else {
4765
4793
  s5 = null;
4766
- if (peg$silentFails === 0) { peg$fail(peg$c117); }
4794
+ if (peg$silentFails === 0) { peg$fail(peg$c119); }
4767
4795
  }
4768
4796
  if (s5 !== null) {
4769
4797
  peg$reportedPos = s0;
4770
- s1 = peg$c143(s3);
4798
+ s1 = peg$c151(s3);
4771
4799
  if (s1 === null) {
4772
4800
  peg$currPos = s0;
4773
4801
  s0 = s1;
@@ -4834,11 +4862,11 @@ Emblem.Parser = (function() {
4834
4862
  s4 = peg$currPos;
4835
4863
  peg$silentFails++;
4836
4864
  if (input.charCodeAt(peg$currPos) === 33) {
4837
- s5 = peg$c144;
4865
+ s5 = peg$c152;
4838
4866
  peg$currPos++;
4839
4867
  } else {
4840
4868
  s5 = null;
4841
- if (peg$silentFails === 0) { peg$fail(peg$c145); }
4869
+ if (peg$silentFails === 0) { peg$fail(peg$c153); }
4842
4870
  }
4843
4871
  peg$silentFails--;
4844
4872
  if (s5 === null) {
@@ -4849,7 +4877,7 @@ Emblem.Parser = (function() {
4849
4877
  }
4850
4878
  if (s4 !== null) {
4851
4879
  peg$reportedPos = peg$currPos;
4852
- s5 = peg$c146(s1, s3);
4880
+ s5 = peg$c154(s1, s3);
4853
4881
  if (s5) {
4854
4882
  s5 = peg$c1;
4855
4883
  } else {
@@ -4857,7 +4885,7 @@ Emblem.Parser = (function() {
4857
4885
  }
4858
4886
  if (s5 !== null) {
4859
4887
  peg$reportedPos = s0;
4860
- s1 = peg$c147(s1, s3);
4888
+ s1 = peg$c155(s1, s3);
4861
4889
  if (s1 === null) {
4862
4890
  peg$currPos = s0;
4863
4891
  s0 = s1;
@@ -4905,7 +4933,7 @@ Emblem.Parser = (function() {
4905
4933
  s3 = peg$parsepathIdNode();
4906
4934
  if (s3 !== null) {
4907
4935
  peg$reportedPos = s0;
4908
- s1 = peg$c148(s1, s3);
4936
+ s1 = peg$c156(s1, s3);
4909
4937
  if (s1 === null) {
4910
4938
  peg$currPos = s0;
4911
4939
  s0 = s1;
@@ -4945,7 +4973,7 @@ Emblem.Parser = (function() {
4945
4973
  s3 = peg$parseattributeTextNodes();
4946
4974
  if (s3 !== null) {
4947
4975
  peg$reportedPos = s0;
4948
- s1 = peg$c149(s1, s3);
4976
+ s1 = peg$c157(s1, s3);
4949
4977
  if (s1 === null) {
4950
4978
  peg$currPos = s0;
4951
4979
  s0 = s1;
@@ -4991,28 +5019,28 @@ Emblem.Parser = (function() {
4991
5019
 
4992
5020
  s0 = peg$parsealpha();
4993
5021
  if (s0 === null) {
4994
- if (peg$c76.test(input.charAt(peg$currPos))) {
5022
+ if (peg$c78.test(input.charAt(peg$currPos))) {
4995
5023
  s0 = input.charAt(peg$currPos);
4996
5024
  peg$currPos++;
4997
5025
  } else {
4998
5026
  s0 = null;
4999
- if (peg$silentFails === 0) { peg$fail(peg$c77); }
5027
+ if (peg$silentFails === 0) { peg$fail(peg$c79); }
5000
5028
  }
5001
5029
  if (s0 === null) {
5002
5030
  if (input.charCodeAt(peg$currPos) === 95) {
5003
- s0 = peg$c150;
5031
+ s0 = peg$c158;
5004
5032
  peg$currPos++;
5005
5033
  } else {
5006
5034
  s0 = null;
5007
- if (peg$silentFails === 0) { peg$fail(peg$c151); }
5035
+ if (peg$silentFails === 0) { peg$fail(peg$c159); }
5008
5036
  }
5009
5037
  if (s0 === null) {
5010
5038
  if (input.charCodeAt(peg$currPos) === 45) {
5011
- s0 = peg$c74;
5039
+ s0 = peg$c76;
5012
5040
  peg$currPos++;
5013
5041
  } else {
5014
5042
  s0 = null;
5015
- if (peg$silentFails === 0) { peg$fail(peg$c75); }
5043
+ if (peg$silentFails === 0) { peg$fail(peg$c77); }
5016
5044
  }
5017
5045
  }
5018
5046
  }
@@ -5026,11 +5054,11 @@ Emblem.Parser = (function() {
5026
5054
 
5027
5055
  s0 = peg$currPos;
5028
5056
  if (input.charCodeAt(peg$currPos) === 37) {
5029
- s1 = peg$c152;
5057
+ s1 = peg$c160;
5030
5058
  peg$currPos++;
5031
5059
  } else {
5032
5060
  s1 = null;
5033
- if (peg$silentFails === 0) { peg$fail(peg$c153); }
5061
+ if (peg$silentFails === 0) { peg$fail(peg$c161); }
5034
5062
  }
5035
5063
  if (s1 !== null) {
5036
5064
  s2 = peg$parsecssIdentifier();
@@ -5060,17 +5088,17 @@ Emblem.Parser = (function() {
5060
5088
 
5061
5089
  s0 = peg$currPos;
5062
5090
  if (input.charCodeAt(peg$currPos) === 35) {
5063
- s1 = peg$c154;
5091
+ s1 = peg$c162;
5064
5092
  peg$currPos++;
5065
5093
  } else {
5066
5094
  s1 = null;
5067
- if (peg$silentFails === 0) { peg$fail(peg$c155); }
5095
+ if (peg$silentFails === 0) { peg$fail(peg$c163); }
5068
5096
  }
5069
5097
  if (s1 !== null) {
5070
5098
  s2 = peg$parsecssIdentifier();
5071
5099
  if (s2 !== null) {
5072
5100
  peg$reportedPos = s0;
5073
- s1 = peg$c156(s2);
5101
+ s1 = peg$c164(s2);
5074
5102
  if (s1 === null) {
5075
5103
  peg$currPos = s0;
5076
5104
  s0 = s1;
@@ -5094,11 +5122,11 @@ Emblem.Parser = (function() {
5094
5122
 
5095
5123
  s0 = peg$currPos;
5096
5124
  if (input.charCodeAt(peg$currPos) === 46) {
5097
- s1 = peg$c49;
5125
+ s1 = peg$c51;
5098
5126
  peg$currPos++;
5099
5127
  } else {
5100
5128
  s1 = null;
5101
- if (peg$silentFails === 0) { peg$fail(peg$c50); }
5129
+ if (peg$silentFails === 0) { peg$fail(peg$c52); }
5102
5130
  }
5103
5131
  if (s1 !== null) {
5104
5132
  s2 = peg$parsecssIdentifier();
@@ -5131,7 +5159,7 @@ Emblem.Parser = (function() {
5131
5159
  peg$silentFails--;
5132
5160
  if (s0 === null) {
5133
5161
  s1 = null;
5134
- if (peg$silentFails === 0) { peg$fail(peg$c157); }
5162
+ if (peg$silentFails === 0) { peg$fail(peg$c165); }
5135
5163
  }
5136
5164
 
5137
5165
  return s0;
@@ -5158,12 +5186,12 @@ Emblem.Parser = (function() {
5158
5186
  function peg$parsenmchar() {
5159
5187
  var s0;
5160
5188
 
5161
- if (peg$c158.test(input.charAt(peg$currPos))) {
5189
+ if (peg$c166.test(input.charAt(peg$currPos))) {
5162
5190
  s0 = input.charAt(peg$currPos);
5163
5191
  peg$currPos++;
5164
5192
  } else {
5165
5193
  s0 = null;
5166
- if (peg$silentFails === 0) { peg$fail(peg$c159); }
5194
+ if (peg$silentFails === 0) { peg$fail(peg$c167); }
5167
5195
  }
5168
5196
  if (s0 === null) {
5169
5197
  s0 = peg$parsenonascii();
@@ -5175,12 +5203,12 @@ Emblem.Parser = (function() {
5175
5203
  function peg$parsenmstart() {
5176
5204
  var s0;
5177
5205
 
5178
- if (peg$c160.test(input.charAt(peg$currPos))) {
5206
+ if (peg$c168.test(input.charAt(peg$currPos))) {
5179
5207
  s0 = input.charAt(peg$currPos);
5180
5208
  peg$currPos++;
5181
5209
  } else {
5182
5210
  s0 = null;
5183
- if (peg$silentFails === 0) { peg$fail(peg$c161); }
5211
+ if (peg$silentFails === 0) { peg$fail(peg$c169); }
5184
5212
  }
5185
5213
  if (s0 === null) {
5186
5214
  s0 = peg$parsenonascii();
@@ -5192,12 +5220,12 @@ Emblem.Parser = (function() {
5192
5220
  function peg$parsenonascii() {
5193
5221
  var s0;
5194
5222
 
5195
- if (peg$c162.test(input.charAt(peg$currPos))) {
5223
+ if (peg$c170.test(input.charAt(peg$currPos))) {
5196
5224
  s0 = input.charAt(peg$currPos);
5197
5225
  peg$currPos++;
5198
5226
  } else {
5199
5227
  s0 = null;
5200
- if (peg$silentFails === 0) { peg$fail(peg$c163); }
5228
+ if (peg$silentFails === 0) { peg$fail(peg$c171); }
5201
5229
  }
5202
5230
 
5203
5231
  return s0;
@@ -5231,11 +5259,11 @@ Emblem.Parser = (function() {
5231
5259
  peg$silentFails++;
5232
5260
  s0 = peg$currPos;
5233
5261
  if (input.charCodeAt(peg$currPos) === 37) {
5234
- s1 = peg$c152;
5262
+ s1 = peg$c160;
5235
5263
  peg$currPos++;
5236
5264
  } else {
5237
5265
  s1 = null;
5238
- if (peg$silentFails === 0) { peg$fail(peg$c153); }
5266
+ if (peg$silentFails === 0) { peg$fail(peg$c161); }
5239
5267
  }
5240
5268
  if (s1 !== null) {
5241
5269
  s2 = peg$parse_();
@@ -5243,7 +5271,7 @@ Emblem.Parser = (function() {
5243
5271
  s3 = peg$parsetagString();
5244
5272
  if (s3 !== null) {
5245
5273
  peg$reportedPos = s0;
5246
- s1 = peg$c53(s3);
5274
+ s1 = peg$c55(s3);
5247
5275
  if (s1 === null) {
5248
5276
  peg$currPos = s0;
5249
5277
  s0 = s1;
@@ -5268,7 +5296,7 @@ Emblem.Parser = (function() {
5268
5296
  peg$silentFails--;
5269
5297
  if (s0 === null) {
5270
5298
  s1 = null;
5271
- if (peg$silentFails === 0) { peg$fail(peg$c164); }
5299
+ if (peg$silentFails === 0) { peg$fail(peg$c172); }
5272
5300
  }
5273
5301
 
5274
5302
  return s0;
@@ -5281,7 +5309,7 @@ Emblem.Parser = (function() {
5281
5309
  s1 = peg$parsetagString();
5282
5310
  if (s1 !== null) {
5283
5311
  peg$reportedPos = peg$currPos;
5284
- s2 = peg$c165(s1);
5312
+ s2 = peg$c173(s1);
5285
5313
  if (s2) {
5286
5314
  s2 = peg$c1;
5287
5315
  } else {
@@ -5289,7 +5317,7 @@ Emblem.Parser = (function() {
5289
5317
  }
5290
5318
  if (s2 !== null) {
5291
5319
  peg$reportedPos = s0;
5292
- s1 = peg$c166(s1);
5320
+ s1 = peg$c174(s1);
5293
5321
  if (s1 === null) {
5294
5322
  peg$currPos = s0;
5295
5323
  s0 = s1;
@@ -5311,12 +5339,12 @@ Emblem.Parser = (function() {
5311
5339
  function peg$parsetagChar() {
5312
5340
  var s0;
5313
5341
 
5314
- if (peg$c158.test(input.charAt(peg$currPos))) {
5342
+ if (peg$c166.test(input.charAt(peg$currPos))) {
5315
5343
  s0 = input.charAt(peg$currPos);
5316
5344
  peg$currPos++;
5317
5345
  } else {
5318
5346
  s0 = null;
5319
- if (peg$silentFails === 0) { peg$fail(peg$c159); }
5347
+ if (peg$silentFails === 0) { peg$fail(peg$c167); }
5320
5348
  }
5321
5349
  if (s0 === null) {
5322
5350
  s0 = peg$parsenonSeparatorColon();
@@ -5330,11 +5358,11 @@ Emblem.Parser = (function() {
5330
5358
 
5331
5359
  s0 = peg$currPos;
5332
5360
  if (input.charCodeAt(peg$currPos) === 58) {
5333
- s1 = peg$c55;
5361
+ s1 = peg$c57;
5334
5362
  peg$currPos++;
5335
5363
  } else {
5336
5364
  s1 = null;
5337
- if (peg$silentFails === 0) { peg$fail(peg$c56); }
5365
+ if (peg$silentFails === 0) { peg$fail(peg$c58); }
5338
5366
  }
5339
5367
  if (s1 !== null) {
5340
5368
  s2 = peg$currPos;
@@ -5382,7 +5410,7 @@ Emblem.Parser = (function() {
5382
5410
  s1 = peg$parsetagString();
5383
5411
  if (s1 !== null) {
5384
5412
  peg$reportedPos = peg$currPos;
5385
- s2 = peg$c168(s1);
5413
+ s2 = peg$c176(s1);
5386
5414
  if (s2) {
5387
5415
  s2 = peg$c1;
5388
5416
  } else {
@@ -5390,7 +5418,7 @@ Emblem.Parser = (function() {
5390
5418
  }
5391
5419
  if (s2 !== null) {
5392
5420
  peg$reportedPos = s0;
5393
- s1 = peg$c166(s1);
5421
+ s1 = peg$c174(s1);
5394
5422
  if (s1 === null) {
5395
5423
  peg$currPos = s0;
5396
5424
  s0 = s1;
@@ -5408,7 +5436,7 @@ Emblem.Parser = (function() {
5408
5436
  peg$silentFails--;
5409
5437
  if (s0 === null) {
5410
5438
  s1 = null;
5411
- if (peg$silentFails === 0) { peg$fail(peg$c167); }
5439
+ if (peg$silentFails === 0) { peg$fail(peg$c175); }
5412
5440
  }
5413
5441
 
5414
5442
  return s0;
@@ -5423,7 +5451,7 @@ Emblem.Parser = (function() {
5423
5451
  s2 = peg$parse__();
5424
5452
  if (s2 !== null) {
5425
5453
  peg$reportedPos = s0;
5426
- s1 = peg$c53(s2);
5454
+ s1 = peg$c55(s2);
5427
5455
  if (s1 === null) {
5428
5456
  peg$currPos = s0;
5429
5457
  s0 = s1;
@@ -5448,15 +5476,15 @@ Emblem.Parser = (function() {
5448
5476
  peg$silentFails++;
5449
5477
  s0 = peg$currPos;
5450
5478
  if (input.charCodeAt(peg$currPos) === 61423) {
5451
- s1 = peg$c170;
5479
+ s1 = peg$c178;
5452
5480
  peg$currPos++;
5453
5481
  } else {
5454
5482
  s1 = null;
5455
- if (peg$silentFails === 0) { peg$fail(peg$c171); }
5483
+ if (peg$silentFails === 0) { peg$fail(peg$c179); }
5456
5484
  }
5457
5485
  if (s1 !== null) {
5458
5486
  peg$reportedPos = s0;
5459
- s1 = peg$c172();
5487
+ s1 = peg$c180();
5460
5488
  }
5461
5489
  if (s1 === null) {
5462
5490
  peg$currPos = s0;
@@ -5467,7 +5495,7 @@ Emblem.Parser = (function() {
5467
5495
  peg$silentFails--;
5468
5496
  if (s0 === null) {
5469
5497
  s1 = null;
5470
- if (peg$silentFails === 0) { peg$fail(peg$c169); }
5498
+ if (peg$silentFails === 0) { peg$fail(peg$c177); }
5471
5499
  }
5472
5500
 
5473
5501
  return s0;
@@ -5479,15 +5507,15 @@ Emblem.Parser = (function() {
5479
5507
  peg$silentFails++;
5480
5508
  s0 = peg$currPos;
5481
5509
  if (input.charCodeAt(peg$currPos) === 61438) {
5482
- s1 = peg$c174;
5510
+ s1 = peg$c182;
5483
5511
  peg$currPos++;
5484
5512
  } else {
5485
5513
  s1 = null;
5486
- if (peg$silentFails === 0) { peg$fail(peg$c175); }
5514
+ if (peg$silentFails === 0) { peg$fail(peg$c183); }
5487
5515
  }
5488
5516
  if (s1 !== null) {
5489
5517
  peg$reportedPos = s0;
5490
- s1 = peg$c172();
5518
+ s1 = peg$c180();
5491
5519
  }
5492
5520
  if (s1 === null) {
5493
5521
  peg$currPos = s0;
@@ -5498,7 +5526,7 @@ Emblem.Parser = (function() {
5498
5526
  peg$silentFails--;
5499
5527
  if (s0 === null) {
5500
5528
  s1 = null;
5501
- if (peg$silentFails === 0) { peg$fail(peg$c173); }
5529
+ if (peg$silentFails === 0) { peg$fail(peg$c181); }
5502
5530
  }
5503
5531
 
5504
5532
  return s0;
@@ -5510,15 +5538,15 @@ Emblem.Parser = (function() {
5510
5538
  peg$silentFails++;
5511
5539
  s0 = peg$currPos;
5512
5540
  if (input.charCodeAt(peg$currPos) === 61422) {
5513
- s1 = peg$c177;
5541
+ s1 = peg$c185;
5514
5542
  peg$currPos++;
5515
5543
  } else {
5516
5544
  s1 = null;
5517
- if (peg$silentFails === 0) { peg$fail(peg$c178); }
5545
+ if (peg$silentFails === 0) { peg$fail(peg$c186); }
5518
5546
  }
5519
5547
  if (s1 !== null) {
5520
5548
  peg$reportedPos = s0;
5521
- s1 = peg$c172();
5549
+ s1 = peg$c180();
5522
5550
  }
5523
5551
  if (s1 === null) {
5524
5552
  peg$currPos = s0;
@@ -5529,7 +5557,7 @@ Emblem.Parser = (function() {
5529
5557
  peg$silentFails--;
5530
5558
  if (s0 === null) {
5531
5559
  s1 = null;
5532
- if (peg$silentFails === 0) { peg$fail(peg$c176); }
5560
+ if (peg$silentFails === 0) { peg$fail(peg$c184); }
5533
5561
  }
5534
5562
 
5535
5563
  return s0;
@@ -5541,34 +5569,34 @@ Emblem.Parser = (function() {
5541
5569
  peg$silentFails++;
5542
5570
  s0 = peg$currPos;
5543
5571
  if (input.charCodeAt(peg$currPos) === 13) {
5544
- s1 = peg$c180;
5572
+ s1 = peg$c188;
5545
5573
  peg$currPos++;
5546
5574
  } else {
5547
5575
  s1 = null;
5548
- if (peg$silentFails === 0) { peg$fail(peg$c181); }
5576
+ if (peg$silentFails === 0) { peg$fail(peg$c189); }
5549
5577
  }
5550
5578
  if (s1 === null) {
5551
5579
  s1 = peg$c1;
5552
5580
  }
5553
5581
  if (s1 !== null) {
5554
5582
  if (input.charCodeAt(peg$currPos) === 61439) {
5555
- s2 = peg$c182;
5583
+ s2 = peg$c190;
5556
5584
  peg$currPos++;
5557
5585
  } else {
5558
5586
  s2 = null;
5559
- if (peg$silentFails === 0) { peg$fail(peg$c183); }
5587
+ if (peg$silentFails === 0) { peg$fail(peg$c191); }
5560
5588
  }
5561
5589
  if (s2 !== null) {
5562
5590
  if (input.charCodeAt(peg$currPos) === 10) {
5563
- s3 = peg$c184;
5591
+ s3 = peg$c192;
5564
5592
  peg$currPos++;
5565
5593
  } else {
5566
5594
  s3 = null;
5567
- if (peg$silentFails === 0) { peg$fail(peg$c185); }
5595
+ if (peg$silentFails === 0) { peg$fail(peg$c193); }
5568
5596
  }
5569
5597
  if (s3 !== null) {
5570
5598
  peg$reportedPos = s0;
5571
- s1 = peg$c130();
5599
+ s1 = peg$c138();
5572
5600
  if (s1 === null) {
5573
5601
  peg$currPos = s0;
5574
5602
  s0 = s1;
@@ -5590,7 +5618,7 @@ Emblem.Parser = (function() {
5590
5618
  peg$silentFails--;
5591
5619
  if (s0 === null) {
5592
5620
  s1 = null;
5593
- if (peg$silentFails === 0) { peg$fail(peg$c179); }
5621
+ if (peg$silentFails === 0) { peg$fail(peg$c187); }
5594
5622
  }
5595
5623
 
5596
5624
  return s0;
@@ -5607,7 +5635,7 @@ Emblem.Parser = (function() {
5607
5635
  peg$silentFails--;
5608
5636
  if (s0 === null) {
5609
5637
  s1 = null;
5610
- if (peg$silentFails === 0) { peg$fail(peg$c186); }
5638
+ if (peg$silentFails === 0) { peg$fail(peg$c194); }
5611
5639
  }
5612
5640
 
5613
5641
  return s0;
@@ -5635,7 +5663,7 @@ Emblem.Parser = (function() {
5635
5663
  peg$silentFails--;
5636
5664
  if (s0 === null) {
5637
5665
  s1 = null;
5638
- if (peg$silentFails === 0) { peg$fail(peg$c187); }
5666
+ if (peg$silentFails === 0) { peg$fail(peg$c195); }
5639
5667
  }
5640
5668
 
5641
5669
  return s0;
@@ -5654,7 +5682,7 @@ Emblem.Parser = (function() {
5654
5682
  peg$silentFails--;
5655
5683
  if (s0 === null) {
5656
5684
  s1 = null;
5657
- if (peg$silentFails === 0) { peg$fail(peg$c188); }
5685
+ if (peg$silentFails === 0) { peg$fail(peg$c196); }
5658
5686
  }
5659
5687
 
5660
5688
  return s0;
@@ -5664,17 +5692,17 @@ Emblem.Parser = (function() {
5664
5692
  var s0, s1;
5665
5693
 
5666
5694
  peg$silentFails++;
5667
- if (peg$c190.test(input.charAt(peg$currPos))) {
5695
+ if (peg$c198.test(input.charAt(peg$currPos))) {
5668
5696
  s0 = input.charAt(peg$currPos);
5669
5697
  peg$currPos++;
5670
5698
  } else {
5671
5699
  s0 = null;
5672
- if (peg$silentFails === 0) { peg$fail(peg$c191); }
5700
+ if (peg$silentFails === 0) { peg$fail(peg$c199); }
5673
5701
  }
5674
5702
  peg$silentFails--;
5675
5703
  if (s0 === null) {
5676
5704
  s1 = null;
5677
- if (peg$silentFails === 0) { peg$fail(peg$c189); }
5705
+ if (peg$silentFails === 0) { peg$fail(peg$c197); }
5678
5706
  }
5679
5707
 
5680
5708
  return s0;
@@ -5706,7 +5734,7 @@ Emblem.Parser = (function() {
5706
5734
  peg$currPos++;
5707
5735
  } else {
5708
5736
  s2 = null;
5709
- if (peg$silentFails === 0) { peg$fail(peg$c107); }
5737
+ if (peg$silentFails === 0) { peg$fail(peg$c109); }
5710
5738
  }
5711
5739
  if (s2 !== null) {
5712
5740
  peg$reportedPos = s0;
@@ -5814,6 +5842,8 @@ Emblem.Parser = (function() {
5814
5842
  var threeBrace = twoBrace + closeBrace;
5815
5843
 
5816
5844
  var use11AST = handlebarsVariant.VERSION.slice(0, 3) >= 1.1;
5845
+ var useSexprNodes = handlebarsVariant.VERSION.slice(0, 3) >= 1.3;
5846
+
5817
5847
  function createMustacheNode(params, hash, escaped) {
5818
5848
  if (use11AST) {
5819
5849
  var open = escaped ? twoBrace : threeBrace;
@@ -6259,5 +6289,4 @@ Emblem.Preprocessor = Preprocessor = (function() {
6259
6289
  module.exports = StringScanner;
6260
6290
  }).call(this);
6261
6291
 
6262
- },{}]},{},[3])
6263
- ;
6292
+ },{}]},{},[3])