emblem-source 0.3.9 → 0.3.11

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