handlebars-source 4.2.2 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handlebars-source might be problematic. Click here for more details.

Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/handlebars.js +652 -410
  3. data/handlebars.runtime.js +33 -19
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 886f2def88bf93f4617d3c7895594bceb318d5ffe239a7dabc922264bbb66705
4
- data.tar.gz: 7cd3a5b6a9f7b36662245ee852275747255de478870be7e2274af22db52b3322
3
+ metadata.gz: abd35253deb2222b2dbf9053814e618969a2e9a4f676d7d67bca639a23e2de11
4
+ data.tar.gz: b478bc2bcc21c05f6a475d7d500bcb362fbf4d31d889d4c0cae4b25ceda7dabe
5
5
  SHA512:
6
- metadata.gz: 6d451fe78ceb0a0532ecae730ede00dd3e15f879648adbefd714927491d4b26d4b1f341156523b00c65a31caa21209d6a2c88167c66487e885aa543b97558a12
7
- data.tar.gz: 24b7f65c889d72426864dcae3db6798d750efc52bf4da0331aec7405630185d45b7f8329791a63320ec94ebc5145a53706e382bec32c5770aa1bd38e7e094045
6
+ metadata.gz: 0efc9dc868477d08e8c5f18b0beb5727bc2d3b813b0eec7ba87e78574860749496459fed96afca9881b0e725988ecfb21884b012b5c1a05f69c0b8fb43ccc72c
7
+ data.tar.gz: d9e4692274edb3f37e77fd3ff705d78c2292de60196a0eab7efd6a5829d4c06c998645914ecb27cdce640755b81fd373b71338c7a17ae11a18c4c054c9606524
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
 
3
3
  @license
4
- handlebars v4.2.2
4
+ handlebars v4.3.0
5
5
 
6
6
  Copyright (C) 2011-2017 by Yehuda Katz
7
7
 
@@ -98,13 +98,13 @@ return /******/ (function(modules) { // webpackBootstrap
98
98
 
99
99
  var _handlebarsCompilerBase = __webpack_require__(36);
100
100
 
101
- var _handlebarsCompilerCompiler = __webpack_require__(41);
101
+ var _handlebarsCompilerCompiler = __webpack_require__(43);
102
102
 
103
- var _handlebarsCompilerJavascriptCompiler = __webpack_require__(42);
103
+ var _handlebarsCompilerJavascriptCompiler = __webpack_require__(44);
104
104
 
105
105
  var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
106
106
 
107
- var _handlebarsCompilerVisitor = __webpack_require__(39);
107
+ var _handlebarsCompilerVisitor = __webpack_require__(41);
108
108
 
109
109
  var _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);
110
110
 
@@ -275,9 +275,9 @@ return /******/ (function(modules) { // webpackBootstrap
275
275
 
276
276
  var _logger2 = _interopRequireDefault(_logger);
277
277
 
278
- var VERSION = '4.2.2';
278
+ var VERSION = '4.3.0';
279
279
  exports.VERSION = VERSION;
280
- var COMPILER_REVISION = 7;
280
+ var COMPILER_REVISION = 8;
281
281
 
282
282
  exports.COMPILER_REVISION = COMPILER_REVISION;
283
283
  var REVISION_CHANGES = {
@@ -287,7 +287,8 @@ return /******/ (function(modules) { // webpackBootstrap
287
287
  4: '== 1.x.x',
288
288
  5: '== 2.0.0-alpha.x',
289
289
  6: '>= 2.0.0-beta.1',
290
- 7: '>= 4.0.0'
290
+ 7: '>= 4.0.0 <4.3.0',
291
+ 8: '>= 4.3.0'
291
292
  };
292
293
 
293
294
  exports.REVISION_CHANGES = REVISION_CHANGES;
@@ -371,6 +372,7 @@ return /******/ (function(modules) { // webpackBootstrap
371
372
  exports.createFrame = createFrame;
372
373
  exports.blockParams = blockParams;
373
374
  exports.appendContextPath = appendContextPath;
375
+
374
376
  var escape = {
375
377
  '&': '&amp;',
376
378
  '<': '&lt;',
@@ -588,6 +590,7 @@ return /******/ (function(modules) { // webpackBootstrap
588
590
 
589
591
  exports.__esModule = true;
590
592
  exports.registerDefaultHelpers = registerDefaultHelpers;
593
+ exports.moveHelperToHooks = moveHelperToHooks;
591
594
 
592
595
  var _helpersBlockHelperMissing = __webpack_require__(11);
593
596
 
@@ -627,6 +630,15 @@ return /******/ (function(modules) { // webpackBootstrap
627
630
  _helpersWith2['default'](instance);
628
631
  }
629
632
 
633
+ function moveHelperToHooks(instance, helperName, keepHelper) {
634
+ if (instance.helpers[helperName]) {
635
+ instance.hooks[helperName] = instance.helpers[helperName];
636
+ if (!keepHelper) {
637
+ delete instance.helpers[helperName];
638
+ }
639
+ }
640
+ }
641
+
630
642
  /***/ }),
631
643
  /* 11 */
632
644
  /***/ (function(module, exports, __webpack_require__) {
@@ -1069,6 +1081,8 @@ return /******/ (function(modules) { // webpackBootstrap
1069
1081
 
1070
1082
  var _base = __webpack_require__(4);
1071
1083
 
1084
+ var _helpers = __webpack_require__(10);
1085
+
1072
1086
  function checkRevision(compilerInfo) {
1073
1087
  var compilerRevision = compilerInfo && compilerInfo[0] || 1,
1074
1088
  currentRevision = _base.COMPILER_REVISION;
@@ -1086,6 +1100,7 @@ return /******/ (function(modules) { // webpackBootstrap
1086
1100
  }
1087
1101
 
1088
1102
  function template(templateSpec, env) {
1103
+
1089
1104
  /* istanbul ignore next */
1090
1105
  if (!env) {
1091
1106
  throw new _exception2['default']('No environment passed to template');
@@ -1107,13 +1122,15 @@ return /******/ (function(modules) { // webpackBootstrap
1107
1122
  options.ids[0] = true;
1108
1123
  }
1109
1124
  }
1110
-
1111
1125
  partial = env.VM.resolvePartial.call(this, partial, context, options);
1112
- var result = env.VM.invokePartial.call(this, partial, context, options);
1126
+
1127
+ var optionsWithHooks = Utils.extend({}, options, { hooks: this.hooks });
1128
+
1129
+ var result = env.VM.invokePartial.call(this, partial, context, optionsWithHooks);
1113
1130
 
1114
1131
  if (result == null && env.compile) {
1115
1132
  options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
1116
- result = options.partials[options.name](context, options);
1133
+ result = options.partials[options.name](context, optionsWithHooks);
1117
1134
  }
1118
1135
  if (result != null) {
1119
1136
  if (options.indent) {
@@ -1180,15 +1197,6 @@ return /******/ (function(modules) { // webpackBootstrap
1180
1197
  }
1181
1198
  return value;
1182
1199
  },
1183
- merge: function merge(param, common) {
1184
- var obj = param || common;
1185
-
1186
- if (param && common && param !== common) {
1187
- obj = Utils.extend({}, common, param);
1188
- }
1189
-
1190
- return obj;
1191
- },
1192
1200
  // An empty object to use as replacement for null-contexts
1193
1201
  nullContext: _Object$seal({}),
1194
1202
 
@@ -1225,18 +1233,24 @@ return /******/ (function(modules) { // webpackBootstrap
1225
1233
 
1226
1234
  ret._setup = function (options) {
1227
1235
  if (!options.partial) {
1228
- container.helpers = container.merge(options.helpers, env.helpers);
1236
+ container.helpers = Utils.extend({}, env.helpers, options.helpers);
1229
1237
 
1230
1238
  if (templateSpec.usePartial) {
1231
- container.partials = container.merge(options.partials, env.partials);
1239
+ container.partials = Utils.extend({}, env.partials, options.partials);
1232
1240
  }
1233
1241
  if (templateSpec.usePartial || templateSpec.useDecorators) {
1234
- container.decorators = container.merge(options.decorators, env.decorators);
1242
+ container.decorators = Utils.extend({}, env.decorators, options.decorators);
1235
1243
  }
1244
+
1245
+ container.hooks = {};
1246
+ var keepHelper = options.allowCallsToHelperMissing;
1247
+ _helpers.moveHelperToHooks(container, 'helperMissing', keepHelper);
1248
+ _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelper);
1236
1249
  } else {
1237
1250
  container.helpers = options.helpers;
1238
1251
  container.partials = options.partials;
1239
1252
  container.decorators = options.decorators;
1253
+ container.hooks = options.hooks;
1240
1254
  }
1241
1255
  };
1242
1256
 
@@ -1592,11 +1606,11 @@ return /******/ (function(modules) { // webpackBootstrap
1592
1606
 
1593
1607
  var _parser2 = _interopRequireDefault(_parser);
1594
1608
 
1595
- var _whitespaceControl = __webpack_require__(38);
1609
+ var _whitespaceControl = __webpack_require__(40);
1596
1610
 
1597
1611
  var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
1598
1612
 
1599
- var _helpers = __webpack_require__(40);
1613
+ var _helpers = __webpack_require__(42);
1600
1614
 
1601
1615
  var Helpers = _interopRequireWildcard(_helpers);
1602
1616
 
@@ -1626,20 +1640,131 @@ return /******/ (function(modules) { // webpackBootstrap
1626
1640
 
1627
1641
  /***/ }),
1628
1642
  /* 37 */
1629
- /***/ (function(module, exports) {
1643
+ /***/ (function(module, exports, __webpack_require__) {
1630
1644
 
1631
1645
  // File ignored in coverage tests via setting in .istanbul.yml
1632
- /* Jison generated parser */
1646
+ /* parser generated by jison 0.4.16 */
1647
+ /*
1648
+ Returns a Parser object of the following structure:
1649
+
1650
+ Parser: {
1651
+ yy: {}
1652
+ }
1653
+
1654
+ Parser.prototype: {
1655
+ yy: {},
1656
+ trace: function(),
1657
+ symbols_: {associative list: name ==> number},
1658
+ terminals_: {associative list: number ==> name},
1659
+ productions_: [...],
1660
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
1661
+ table: [...],
1662
+ defaultActions: {...},
1663
+ parseError: function(str, hash),
1664
+ parse: function(input),
1665
+
1666
+ lexer: {
1667
+ EOF: 1,
1668
+ parseError: function(str, hash),
1669
+ setInput: function(input),
1670
+ input: function(),
1671
+ unput: function(str),
1672
+ more: function(),
1673
+ less: function(n),
1674
+ pastInput: function(),
1675
+ upcomingInput: function(),
1676
+ showPosition: function(),
1677
+ test_match: function(regex_match_array, rule_index),
1678
+ next: function(),
1679
+ lex: function(),
1680
+ begin: function(condition),
1681
+ popState: function(),
1682
+ _currentRules: function(),
1683
+ topState: function(),
1684
+ pushState: function(condition),
1685
+
1686
+ options: {
1687
+ ranges: boolean (optional: true ==> token location info will include a .range[] member)
1688
+ flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
1689
+ backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
1690
+ },
1691
+
1692
+ performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
1693
+ rules: [...],
1694
+ conditions: {associative list: name ==> set},
1695
+ }
1696
+ }
1697
+
1698
+
1699
+ token location info (@$, _$, etc.): {
1700
+ first_line: n,
1701
+ last_line: n,
1702
+ first_column: n,
1703
+ last_column: n,
1704
+ range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
1705
+ }
1706
+
1707
+
1708
+ the parseError function receives a 'hash' object with these members for lexer and parser errors: {
1709
+ text: (matched text)
1710
+ token: (the produced terminal token, if any)
1711
+ line: (yylineno)
1712
+ }
1713
+ while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
1714
+ loc: (yylloc)
1715
+ expected: (string describing the set of expected tokens)
1716
+ recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
1717
+ }
1718
+ */
1633
1719
  "use strict";
1634
1720
 
1721
+ var _Object$create = __webpack_require__(38)["default"];
1722
+
1635
1723
  exports.__esModule = true;
1636
1724
  var handlebars = (function () {
1725
+ var o = function o(k, v, _o, l) {
1726
+ for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v);return _o;
1727
+ },
1728
+ $V0 = [2, 46],
1729
+ $V1 = [1, 20],
1730
+ $V2 = [5, 14, 15, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60],
1731
+ $V3 = [1, 35],
1732
+ $V4 = [1, 28],
1733
+ $V5 = [1, 29],
1734
+ $V6 = [1, 30],
1735
+ $V7 = [1, 31],
1736
+ $V8 = [1, 32],
1737
+ $V9 = [1, 34],
1738
+ $Va = [14, 15, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60],
1739
+ $Vb = [14, 15, 19, 29, 34, 44, 47, 48, 51, 55, 60],
1740
+ $Vc = [1, 44],
1741
+ $Vd = [14, 15, 19, 29, 34, 47, 48, 51, 55, 60],
1742
+ $Ve = [33, 65, 72, 80, 81, 82, 83, 84, 85],
1743
+ $Vf = [23, 33, 54, 65, 68, 72, 75, 80, 81, 82, 83, 84, 85],
1744
+ $Vg = [1, 51],
1745
+ $Vh = [23, 33, 54, 65, 68, 72, 75, 80, 81, 82, 83, 84, 85, 87],
1746
+ $Vi = [2, 45],
1747
+ $Vj = [54, 65, 72, 80, 81, 82, 83, 84, 85],
1748
+ $Vk = [1, 58],
1749
+ $Vl = [1, 59],
1750
+ $Vm = [15, 18],
1751
+ $Vn = [1, 67],
1752
+ $Vo = [33, 65, 72, 75, 80, 81, 82, 83, 84, 85],
1753
+ $Vp = [23, 65, 72, 80, 81, 82, 83, 84, 85],
1754
+ $Vq = [1, 79],
1755
+ $Vr = [65, 68, 72, 80, 81, 82, 83, 84, 85],
1756
+ $Vs = [33, 75],
1757
+ $Vt = [23, 33, 54, 68, 72, 75],
1758
+ $Vu = [1, 109],
1759
+ $Vv = [1, 121],
1760
+ $Vw = [72, 77];
1637
1761
  var parser = { trace: function trace() {},
1638
1762
  yy: {},
1639
1763
  symbols_: { "error": 2, "root": 3, "program": 4, "EOF": 5, "program_repetition0": 6, "statement": 7, "mustache": 8, "block": 9, "rawBlock": 10, "partial": 11, "partialBlock": 12, "content": 13, "COMMENT": 14, "CONTENT": 15, "openRawBlock": 16, "rawBlock_repetition_plus0": 17, "END_RAW_BLOCK": 18, "OPEN_RAW_BLOCK": 19, "helperName": 20, "openRawBlock_repetition0": 21, "openRawBlock_option0": 22, "CLOSE_RAW_BLOCK": 23, "openBlock": 24, "block_option0": 25, "closeBlock": 26, "openInverse": 27, "block_option1": 28, "OPEN_BLOCK": 29, "openBlock_repetition0": 30, "openBlock_option0": 31, "openBlock_option1": 32, "CLOSE": 33, "OPEN_INVERSE": 34, "openInverse_repetition0": 35, "openInverse_option0": 36, "openInverse_option1": 37, "openInverseChain": 38, "OPEN_INVERSE_CHAIN": 39, "openInverseChain_repetition0": 40, "openInverseChain_option0": 41, "openInverseChain_option1": 42, "inverseAndProgram": 43, "INVERSE": 44, "inverseChain": 45, "inverseChain_option0": 46, "OPEN_ENDBLOCK": 47, "OPEN": 48, "mustache_repetition0": 49, "mustache_option0": 50, "OPEN_UNESCAPED": 51, "mustache_repetition1": 52, "mustache_option1": 53, "CLOSE_UNESCAPED": 54, "OPEN_PARTIAL": 55, "partialName": 56, "partial_repetition0": 57, "partial_option0": 58, "openPartialBlock": 59, "OPEN_PARTIAL_BLOCK": 60, "openPartialBlock_repetition0": 61, "openPartialBlock_option0": 62, "param": 63, "sexpr": 64, "OPEN_SEXPR": 65, "sexpr_repetition0": 66, "sexpr_option0": 67, "CLOSE_SEXPR": 68, "hash": 69, "hash_repetition_plus0": 70, "hashSegment": 71, "ID": 72, "EQUALS": 73, "blockParams": 74, "OPEN_BLOCK_PARAMS": 75, "blockParams_repetition_plus0": 76, "CLOSE_BLOCK_PARAMS": 77, "path": 78, "dataName": 79, "STRING": 80, "NUMBER": 81, "BOOLEAN": 82, "UNDEFINED": 83, "NULL": 84, "DATA": 85, "pathSegments": 86, "SEP": 87, "$accept": 0, "$end": 1 },
1640
1764
  terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 51: "OPEN_UNESCAPED", 54: "CLOSE_UNESCAPED", 55: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 65: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 72: "ID", 73: "EQUALS", 75: "OPEN_BLOCK_PARAMS", 77: "CLOSE_BLOCK_PARAMS", 80: "STRING", 81: "NUMBER", 82: "BOOLEAN", 83: "UNDEFINED", 84: "NULL", 85: "DATA", 87: "SEP" },
1641
1765
  productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],
1642
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
1766
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, /* action[1] */$$, /* vstack */_$ /* lstack */) {
1767
+ /* this == yyval */
1643
1768
 
1644
1769
  var $0 = $$.length - 1;
1645
1770
  switch (yystate) {
@@ -1649,25 +1774,11 @@ return /******/ (function(modules) { // webpackBootstrap
1649
1774
  case 2:
1650
1775
  this.$ = yy.prepareProgram($$[$0]);
1651
1776
  break;
1652
- case 3:
1653
- this.$ = $$[$0];
1654
- break;
1655
- case 4:
1656
- this.$ = $$[$0];
1657
- break;
1658
- case 5:
1659
- this.$ = $$[$0];
1660
- break;
1661
- case 6:
1662
- this.$ = $$[$0];
1663
- break;
1664
- case 7:
1665
- this.$ = $$[$0];
1666
- break;
1667
- case 8:
1777
+ case 3:case 4:case 5:case 6:case 7:case 8:case 20:case 27:case 28:case 33:case 34:case 40:case 41:
1668
1778
  this.$ = $$[$0];
1669
1779
  break;
1670
1780
  case 9:
1781
+
1671
1782
  this.$ = {
1672
1783
  type: 'CommentStatement',
1673
1784
  value: yy.stripComment($$[$0]),
@@ -1677,6 +1788,7 @@ return /******/ (function(modules) { // webpackBootstrap
1677
1788
 
1678
1789
  break;
1679
1790
  case 10:
1791
+
1680
1792
  this.$ = {
1681
1793
  type: 'ContentStatement',
1682
1794
  original: $$[$0],
@@ -1700,36 +1812,29 @@ return /******/ (function(modules) { // webpackBootstrap
1700
1812
  case 15:
1701
1813
  this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
1702
1814
  break;
1703
- case 16:
1704
- this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
1705
- break;
1706
- case 17:
1815
+ case 16:case 17:
1707
1816
  this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
1708
1817
  break;
1709
1818
  case 18:
1710
1819
  this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] };
1711
1820
  break;
1712
1821
  case 19:
1822
+
1713
1823
  var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),
1714
1824
  program = yy.prepareProgram([inverse], $$[$0 - 1].loc);
1715
1825
  program.chained = true;
1716
1826
 
1717
1827
  this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true };
1718
1828
 
1719
- break;
1720
- case 20:
1721
- this.$ = $$[$0];
1722
1829
  break;
1723
1830
  case 21:
1724
1831
  this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) };
1725
1832
  break;
1726
- case 22:
1727
- this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
1728
- break;
1729
- case 23:
1833
+ case 22:case 23:
1730
1834
  this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
1731
1835
  break;
1732
1836
  case 24:
1837
+
1733
1838
  this.$ = {
1734
1839
  type: 'PartialStatement',
1735
1840
  name: $$[$0 - 3],
@@ -1747,13 +1852,8 @@ return /******/ (function(modules) { // webpackBootstrap
1747
1852
  case 26:
1748
1853
  this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) };
1749
1854
  break;
1750
- case 27:
1751
- this.$ = $$[$0];
1752
- break;
1753
- case 28:
1754
- this.$ = $$[$0];
1755
- break;
1756
1855
  case 29:
1856
+
1757
1857
  this.$ = {
1758
1858
  type: 'SubExpression',
1759
1859
  path: $$[$0 - 3],
@@ -1772,12 +1872,6 @@ return /******/ (function(modules) { // webpackBootstrap
1772
1872
  case 32:
1773
1873
  this.$ = yy.id($$[$0 - 1]);
1774
1874
  break;
1775
- case 33:
1776
- this.$ = $$[$0];
1777
- break;
1778
- case 34:
1779
- this.$ = $$[$0];
1780
- break;
1781
1875
  case 35:
1782
1876
  this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) };
1783
1877
  break;
@@ -1793,12 +1887,6 @@ return /******/ (function(modules) { // webpackBootstrap
1793
1887
  case 39:
1794
1888
  this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) };
1795
1889
  break;
1796
- case 40:
1797
- this.$ = $$[$0];
1798
- break;
1799
- case 41:
1800
- this.$ = $$[$0];
1801
- break;
1802
1890
  case 42:
1803
1891
  this.$ = yy.preparePath(true, $$[$0], this._$);
1804
1892
  break;
@@ -1811,125 +1899,81 @@ return /******/ (function(modules) { // webpackBootstrap
1811
1899
  case 45:
1812
1900
  this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }];
1813
1901
  break;
1814
- case 46:
1902
+ case 46:case 50:case 58:case 64:case 70:case 78:case 82:case 86:case 90:case 94:
1815
1903
  this.$ = [];
1816
1904
  break;
1817
- case 47:
1905
+ case 47:case 49:case 51:case 59:case 65:case 71:case 79:case 83:case 87:case 91:case 95:case 99:case 101:
1818
1906
  $$[$0 - 1].push($$[$0]);
1819
1907
  break;
1820
- case 48:
1908
+ case 48:case 98:case 100:
1821
1909
  this.$ = [$$[$0]];
1822
1910
  break;
1823
- case 49:
1824
- $$[$0 - 1].push($$[$0]);
1825
- break;
1826
- case 50:
1827
- this.$ = [];
1828
- break;
1829
- case 51:
1830
- $$[$0 - 1].push($$[$0]);
1831
- break;
1832
- case 58:
1833
- this.$ = [];
1834
- break;
1835
- case 59:
1836
- $$[$0 - 1].push($$[$0]);
1837
- break;
1838
- case 64:
1839
- this.$ = [];
1840
- break;
1841
- case 65:
1842
- $$[$0 - 1].push($$[$0]);
1843
- break;
1844
- case 70:
1845
- this.$ = [];
1846
- break;
1847
- case 71:
1848
- $$[$0 - 1].push($$[$0]);
1849
- break;
1850
- case 78:
1851
- this.$ = [];
1852
- break;
1853
- case 79:
1854
- $$[$0 - 1].push($$[$0]);
1855
- break;
1856
- case 82:
1857
- this.$ = [];
1858
- break;
1859
- case 83:
1860
- $$[$0 - 1].push($$[$0]);
1861
- break;
1862
- case 86:
1863
- this.$ = [];
1864
- break;
1865
- case 87:
1866
- $$[$0 - 1].push($$[$0]);
1867
- break;
1868
- case 90:
1869
- this.$ = [];
1870
- break;
1871
- case 91:
1872
- $$[$0 - 1].push($$[$0]);
1873
- break;
1874
- case 94:
1875
- this.$ = [];
1876
- break;
1877
- case 95:
1878
- $$[$0 - 1].push($$[$0]);
1879
- break;
1880
- case 98:
1881
- this.$ = [$$[$0]];
1882
- break;
1883
- case 99:
1884
- $$[$0 - 1].push($$[$0]);
1885
- break;
1886
- case 100:
1887
- this.$ = [$$[$0]];
1888
- break;
1889
- case 101:
1890
- $$[$0 - 1].push($$[$0]);
1891
- break;
1892
1911
  }
1893
1912
  },
1894
- table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 13: 40, 15: [1, 20], 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 45, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 48, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 50, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 51] }, { 72: [1, 35], 86: 52 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 53, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 54, 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: [1, 59], 47: [2, 56] }, { 13: 63, 15: [1, 20], 18: [1, 62] }, { 15: [2, 48], 18: [2, 48] }, { 33: [2, 86], 57: 64, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 65, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 66, 47: [1, 67] }, { 30: 68, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 69, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 70, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 71, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: [1, 44], 69: 74, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 80] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 51] }, { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: [1, 44], 69: 83, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 84, 47: [1, 67] }, { 47: [2, 55] }, { 4: 85, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 86, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 87, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 88, 47: [1, 67] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: [1, 44], 69: 91, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 92, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 93, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 31: 94, 33: [2, 60], 63: 95, 64: 76, 65: [1, 44], 69: 96, 70: 77, 71: 78, 72: [1, 79], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 66], 36: 97, 63: 98, 64: 76, 65: [1, 44], 69: 99, 70: 77, 71: 78, 72: [1, 79], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: [1, 44], 69: 102, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: [1, 44], 69: 105, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 106] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 107, 72: [1, 108], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 109], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 110] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 112, 46: 111, 47: [2, 76] }, { 33: [2, 70], 40: 113, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 114] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: [1, 44], 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: [1, 121] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 122, 74: 123, 75: [1, 121] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 124] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 125] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 109] }, { 20: 75, 63: 126, 64: 76, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 75, 33: [2, 72], 41: 127, 63: 128, 64: 76, 65: [1, 44], 69: 129, 70: 77, 71: 78, 72: [1, 79], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 130] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 135, 74: 136, 75: [1, 121] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 138], 77: [1, 137] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }],
1913
+ table: [o([5, 14, 15, 19, 29, 34, 48, 51, 55, 60], $V0, { 3: 1, 4: 2, 6: 3 }), { 1: [3] }, { 5: [1, 4] }, o([5, 39, 44, 47], [2, 2], { 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 24: 15, 27: 16, 16: 17, 59: 19, 14: [1, 12], 15: $V1, 19: [1, 23], 29: [1, 21], 34: [1, 22], 48: [1, 13], 51: [1, 14], 55: [1, 18], 60: [1, 24] }), { 1: [2, 1] }, o($V2, [2, 47]), o($V2, [2, 3]), o($V2, [2, 4]), o($V2, [2, 5]), o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 8]), o($V2, [2, 9]), { 20: 25, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 20: 36, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($Va, $V0, { 6: 3, 4: 37 }), o($Vb, $V0, { 6: 3, 4: 38 }), { 13: 40, 15: $V1, 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: $Vc, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($Vd, $V0, { 6: 3, 4: 45 }), o([5, 14, 15, 18, 19, 29, 34, 39, 44, 47, 48, 51, 55, 60], [2, 10]), { 20: 46, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 20: 47, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 20: 48, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: $Vc, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($Ve, [2, 78], { 49: 50 }), o($Vf, [2, 33]), o($Vf, [2, 34]), o($Vf, [2, 35]), o($Vf, [2, 36]), o($Vf, [2, 37]), o($Vf, [2, 38]), o($Vf, [2, 39]), o($Vf, [2, 43], { 87: $Vg }), { 72: $V3, 86: 52 }, o($Vh, $Vi), o($Vj, [2, 82], { 52: 53 }), { 25: 54, 38: 56, 39: $Vk, 43: 57, 44: $Vl, 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: $Vl, 47: [2, 56] }, { 13: 63, 15: $V1, 18: [1, 62] }, o($Vm, [2, 48]), o($Ve, [2, 86], { 57: 64 }), o($Ve, [2, 40]), o($Ve, [2, 41]), { 20: 65, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 26: 66, 47: $Vn }, o($Vo, [2, 58], { 30: 68 }), o($Vo, [2, 64], { 35: 69 }), o($Vp, [2, 50], { 21: 70 }), o($Ve, [2, 90], { 61: 71 }), { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: $Vc, 69: 74, 70: 77, 71: 78, 72: $Vq, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 72: [1, 80] }, o($Vf, [2, 42], { 87: $Vg }), { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: $Vc, 69: 83, 70: 77, 71: 78, 72: $Vq, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 26: 84, 47: $Vn }, { 47: [2, 55] }, o($Va, $V0, { 6: 3, 4: 85 }), { 47: [2, 20] }, { 20: 86, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($Vd, $V0, { 6: 3, 4: 87 }), { 26: 88, 47: $Vn }, { 47: [2, 57] }, o($V2, [2, 11]), o($Vm, [2, 49]), { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: $Vc, 69: 91, 70: 77, 71: 78, 72: $Vq, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($Vr, [2, 94], { 66: 92 }), o($V2, [2, 25]), { 20: 93, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($Vs, [2, 60], { 78: 26, 79: 27, 86: 33, 20: 75, 64: 76, 70: 77, 71: 78, 31: 94, 63: 95, 69: 96, 65: $Vc, 72: $Vq, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9 }), o($Vs, [2, 66], { 78: 26, 79: 27, 86: 33, 20: 75, 64: 76, 70: 77, 71: 78, 36: 97, 63: 98, 69: 99, 65: $Vc, 72: $Vq, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9 }), { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: $Vc, 69: 102, 70: 77, 71: 78, 72: $Vq, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: $Vc, 69: 105, 70: 77, 71: 78, 72: $Vq, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 33: [1, 106] }, o($Ve, [2, 79]), { 33: [2, 81] }, o($Vf, [2, 27]), o($Vf, [2, 28]), o([23, 33, 54, 68, 75], [2, 30], { 71: 107, 72: [1, 108] }), o($Vt, [2, 98]), o($Vh, $Vi, { 73: $Vu }), o($Vh, [2, 44]), { 54: [1, 110] }, o($Vj, [2, 83]), { 54: [2, 85] }, o($V2, [2, 13]), { 38: 56, 39: $Vk, 43: 57, 44: $Vl, 45: 112, 46: 111, 47: [2, 76] }, o($Vo, [2, 70], { 40: 113 }), { 47: [2, 18] }, o($V2, [2, 14]), { 33: [1, 114] }, o($Ve, [2, 87]), { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: $Vc, 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: $Vq, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: $Vv }, o($Vo, [2, 59]), o($Vs, [2, 61]), { 33: [2, 68], 37: 122, 74: 123, 75: $Vv }, o($Vo, [2, 65]), o($Vs, [2, 67]), { 23: [1, 124] }, o($Vp, [2, 51]), { 23: [2, 53] }, { 33: [1, 125] }, o($Ve, [2, 91]), { 33: [2, 93] }, o($V2, [2, 22]), o($Vt, [2, 99]), { 73: $Vu }, { 20: 75, 63: 126, 64: 76, 65: $Vc, 72: $V3, 78: 26, 79: 27, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9, 86: 33 }, o($V2, [2, 23]), { 47: [2, 19] }, { 47: [2, 77] }, o($Vs, [2, 72], { 78: 26, 79: 27, 86: 33, 20: 75, 64: 76, 70: 77, 71: 78, 41: 127, 63: 128, 69: 129, 65: $Vc, 72: $Vq, 80: $V4, 81: $V5, 82: $V6, 83: $V7, 84: $V8, 85: $V9 }), o($V2, [2, 24]), { 68: [1, 130] }, o($Vr, [2, 95]), { 68: [2, 97] }, o($V2, [2, 21]), { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, o($Vd, [2, 26]), o($Vt, [2, 31]), { 33: [2, 74], 42: 135, 74: 136, 75: $Vv }, o($Vo, [2, 71]), o($Vs, [2, 73]), o($Vf, [2, 29]), o($Va, [2, 15]), { 72: [1, 138], 77: [1, 137] }, o($Vw, [2, 100]), o($Vb, [2, 16]), { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, o($Vw, [2, 101]), o($Va, [2, 17])],
1895
1914
  defaultActions: { 4: [2, 1], 55: [2, 55], 57: [2, 20], 61: [2, 57], 74: [2, 81], 83: [2, 85], 87: [2, 18], 91: [2, 89], 102: [2, 53], 105: [2, 93], 111: [2, 19], 112: [2, 77], 117: [2, 97], 120: [2, 63], 123: [2, 69], 124: [2, 12], 136: [2, 75], 137: [2, 32] },
1896
1915
  parseError: function parseError(str, hash) {
1897
- throw new Error(str);
1916
+ if (hash.recoverable) {
1917
+ this.trace(str);
1918
+ } else {
1919
+ var _parseError = function _parseError(msg, hash) {
1920
+ this.message = msg;
1921
+ this.hash = hash;
1922
+ };
1923
+
1924
+ _parseError.prototype = new Error();
1925
+
1926
+ throw new _parseError(str, hash);
1927
+ }
1898
1928
  },
1899
1929
  parse: function parse(input) {
1900
1930
  var self = this,
1901
1931
  stack = [0],
1932
+ tstack = [],
1902
1933
  vstack = [null],
1903
1934
  lstack = [],
1904
1935
  table = this.table,
1905
- yytext = "",
1936
+ yytext = '',
1906
1937
  yylineno = 0,
1907
1938
  yyleng = 0,
1908
1939
  recovering = 0,
1909
1940
  TERROR = 2,
1910
1941
  EOF = 1;
1911
- this.lexer.setInput(input);
1912
- this.lexer.yy = this.yy;
1913
- this.yy.lexer = this.lexer;
1914
- this.yy.parser = this;
1915
- if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
1916
- var yyloc = this.lexer.yylloc;
1942
+ var args = lstack.slice.call(arguments, 1);
1943
+ var lexer = _Object$create(this.lexer);
1944
+ var sharedState = { yy: {} };
1945
+ for (var k in this.yy) {
1946
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
1947
+ sharedState.yy[k] = this.yy[k];
1948
+ }
1949
+ }
1950
+ lexer.setInput(input, sharedState.yy);
1951
+ sharedState.yy.lexer = lexer;
1952
+ sharedState.yy.parser = this;
1953
+ if (typeof lexer.yylloc == 'undefined') {
1954
+ lexer.yylloc = {};
1955
+ }
1956
+ var yyloc = lexer.yylloc;
1917
1957
  lstack.push(yyloc);
1918
- var ranges = this.lexer.options && this.lexer.options.ranges;
1919
- if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError;
1958
+ var ranges = lexer.options && lexer.options.ranges;
1959
+ if (typeof sharedState.yy.parseError === 'function') {
1960
+ this.parseError = sharedState.yy.parseError;
1961
+ } else {
1962
+ this.parseError = Object.getPrototypeOf(this).parseError;
1963
+ }
1920
1964
  function popStack(n) {
1921
1965
  stack.length = stack.length - 2 * n;
1922
1966
  vstack.length = vstack.length - n;
1923
1967
  lstack.length = lstack.length - n;
1924
1968
  }
1925
- function lex() {
1969
+ _token_stack: var lex = function lex() {
1926
1970
  var token;
1927
- token = self.lexer.lex() || 1;
1928
- if (typeof token !== "number") {
1971
+ token = lexer.lex() || EOF;
1972
+ if (typeof token !== 'number') {
1929
1973
  token = self.symbols_[token] || token;
1930
1974
  }
1931
1975
  return token;
1932
- }
1976
+ };
1933
1977
  var symbol,
1934
1978
  preErrorSymbol,
1935
1979
  state,
@@ -1946,42 +1990,50 @@ return /******/ (function(modules) { // webpackBootstrap
1946
1990
  if (this.defaultActions[state]) {
1947
1991
  action = this.defaultActions[state];
1948
1992
  } else {
1949
- if (symbol === null || typeof symbol == "undefined") {
1993
+ if (symbol === null || typeof symbol == 'undefined') {
1950
1994
  symbol = lex();
1951
1995
  }
1952
1996
  action = table[state] && table[state][symbol];
1953
1997
  }
1954
- if (typeof action === "undefined" || !action.length || !action[0]) {
1955
- var errStr = "";
1956
- if (!recovering) {
1957
- expected = [];
1958
- for (p in table[state]) if (this.terminals_[p] && p > 2) {
1959
- expected.push("'" + this.terminals_[p] + "'");
1960
- }
1961
- if (this.lexer.showPosition) {
1962
- errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
1963
- } else {
1964
- errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
1998
+ if (typeof action === 'undefined' || !action.length || !action[0]) {
1999
+ var errStr = '';
2000
+ expected = [];
2001
+ for (p in table[state]) {
2002
+ if (this.terminals_[p] && p > TERROR) {
2003
+ expected.push('\'' + this.terminals_[p] + '\'');
1965
2004
  }
1966
- this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected });
1967
2005
  }
2006
+ if (lexer.showPosition) {
2007
+ errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
2008
+ } else {
2009
+ errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
2010
+ }
2011
+ this.parseError(errStr, {
2012
+ text: lexer.match,
2013
+ token: this.terminals_[symbol] || symbol,
2014
+ line: lexer.yylineno,
2015
+ loc: yyloc,
2016
+ expected: expected
2017
+ });
1968
2018
  }
1969
2019
  if (action[0] instanceof Array && action.length > 1) {
1970
- throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
2020
+ throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
1971
2021
  }
1972
2022
  switch (action[0]) {
1973
2023
  case 1:
1974
2024
  stack.push(symbol);
1975
- vstack.push(this.lexer.yytext);
1976
- lstack.push(this.lexer.yylloc);
2025
+ vstack.push(lexer.yytext);
2026
+ lstack.push(lexer.yylloc);
1977
2027
  stack.push(action[1]);
1978
2028
  symbol = null;
1979
2029
  if (!preErrorSymbol) {
1980
- yyleng = this.lexer.yyleng;
1981
- yytext = this.lexer.yytext;
1982
- yylineno = this.lexer.yylineno;
1983
- yyloc = this.lexer.yylloc;
1984
- if (recovering > 0) recovering--;
2030
+ yyleng = lexer.yyleng;
2031
+ yytext = lexer.yytext;
2032
+ yylineno = lexer.yylineno;
2033
+ yyloc = lexer.yylloc;
2034
+ if (recovering > 0) {
2035
+ recovering--;
2036
+ }
1985
2037
  } else {
1986
2038
  symbol = preErrorSymbol;
1987
2039
  preErrorSymbol = null;
@@ -1990,12 +2042,17 @@ return /******/ (function(modules) { // webpackBootstrap
1990
2042
  case 2:
1991
2043
  len = this.productions_[action[1]][1];
1992
2044
  yyval.$ = vstack[vstack.length - len];
1993
- yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column };
2045
+ yyval._$ = {
2046
+ first_line: lstack[lstack.length - (len || 1)].first_line,
2047
+ last_line: lstack[lstack.length - 1].last_line,
2048
+ first_column: lstack[lstack.length - (len || 1)].first_column,
2049
+ last_column: lstack[lstack.length - 1].last_column
2050
+ };
1994
2051
  if (ranges) {
1995
2052
  yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
1996
2053
  }
1997
- r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
1998
- if (typeof r !== "undefined") {
2054
+ r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
2055
+ if (typeof r !== 'undefined') {
1999
2056
  return r;
2000
2057
  }
2001
2058
  if (len) {
@@ -2014,11 +2071,13 @@ return /******/ (function(modules) { // webpackBootstrap
2014
2071
  }
2015
2072
  }
2016
2073
  return true;
2017
- }
2018
- };
2019
- /* Jison generated lexer */
2074
+ } };
2075
+ /* generated by jison-lex 0.3.4 */
2020
2076
  var lexer = (function () {
2021
- var lexer = { EOF: 1,
2077
+ var lexer = {
2078
+
2079
+ EOF: 1,
2080
+
2022
2081
  parseError: function parseError(str, hash) {
2023
2082
  if (this.yy.parser) {
2024
2083
  this.yy.parser.parseError(str, hash);
@@ -2026,17 +2085,29 @@ return /******/ (function(modules) { // webpackBootstrap
2026
2085
  throw new Error(str);
2027
2086
  }
2028
2087
  },
2029
- setInput: function setInput(input) {
2088
+
2089
+ // resets the lexer, sets new input
2090
+ setInput: function setInput(input, yy) {
2091
+ this.yy = yy || this.yy || {};
2030
2092
  this._input = input;
2031
- this._more = this._less = this.done = false;
2093
+ this._more = this._backtrack = this.done = false;
2032
2094
  this.yylineno = this.yyleng = 0;
2033
2095
  this.yytext = this.matched = this.match = '';
2034
2096
  this.conditionStack = ['INITIAL'];
2035
- this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 };
2036
- if (this.options.ranges) this.yylloc.range = [0, 0];
2097
+ this.yylloc = {
2098
+ first_line: 1,
2099
+ first_column: 0,
2100
+ last_line: 1,
2101
+ last_column: 0
2102
+ };
2103
+ if (this.options.ranges) {
2104
+ this.yylloc.range = [0, 0];
2105
+ }
2037
2106
  this.offset = 0;
2038
2107
  return this;
2039
2108
  },
2109
+
2110
+ // consumes and returns one char from the input
2040
2111
  input: function input() {
2041
2112
  var ch = this._input[0];
2042
2113
  this.yytext += ch;
@@ -2051,27 +2122,34 @@ return /******/ (function(modules) { // webpackBootstrap
2051
2122
  } else {
2052
2123
  this.yylloc.last_column++;
2053
2124
  }
2054
- if (this.options.ranges) this.yylloc.range[1]++;
2125
+ if (this.options.ranges) {
2126
+ this.yylloc.range[1]++;
2127
+ }
2055
2128
 
2056
2129
  this._input = this._input.slice(1);
2057
2130
  return ch;
2058
2131
  },
2132
+
2133
+ // unshifts one char (or a string) into the input
2059
2134
  unput: function unput(ch) {
2060
2135
  var len = ch.length;
2061
2136
  var lines = ch.split(/(?:\r\n?|\n)/g);
2062
2137
 
2063
2138
  this._input = ch + this._input;
2064
- this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
2139
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
2065
2140
  //this.yyleng -= len;
2066
2141
  this.offset -= len;
2067
2142
  var oldLines = this.match.split(/(?:\r\n?|\n)/g);
2068
2143
  this.match = this.match.substr(0, this.match.length - 1);
2069
2144
  this.matched = this.matched.substr(0, this.matched.length - 1);
2070
2145
 
2071
- if (lines.length - 1) this.yylineno -= lines.length - 1;
2146
+ if (lines.length - 1) {
2147
+ this.yylineno -= lines.length - 1;
2148
+ }
2072
2149
  var r = this.yylloc.range;
2073
2150
 
2074
- this.yylloc = { first_line: this.yylloc.first_line,
2151
+ this.yylloc = {
2152
+ first_line: this.yylloc.first_line,
2075
2153
  last_line: this.yylineno + 1,
2076
2154
  first_column: this.yylloc.first_column,
2077
2155
  last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
@@ -2080,19 +2158,42 @@ return /******/ (function(modules) { // webpackBootstrap
2080
2158
  if (this.options.ranges) {
2081
2159
  this.yylloc.range = [r[0], r[0] + this.yyleng - len];
2082
2160
  }
2161
+ this.yyleng = this.yytext.length;
2083
2162
  return this;
2084
2163
  },
2164
+
2165
+ // When called from action, caches matched text and appends it on next action
2085
2166
  more: function more() {
2086
2167
  this._more = true;
2087
2168
  return this;
2088
2169
  },
2170
+
2171
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
2172
+ reject: function reject() {
2173
+ if (this.options.backtrack_lexer) {
2174
+ this._backtrack = true;
2175
+ } else {
2176
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
2177
+ text: "",
2178
+ token: null,
2179
+ line: this.yylineno
2180
+ });
2181
+ }
2182
+ return this;
2183
+ },
2184
+
2185
+ // retain first n characters of the match
2089
2186
  less: function less(n) {
2090
2187
  this.unput(this.match.slice(n));
2091
2188
  },
2189
+
2190
+ // displays already matched input, i.e. for error messages
2092
2191
  pastInput: function pastInput() {
2093
2192
  var past = this.matched.substr(0, this.matched.length - this.match.length);
2094
2193
  return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
2095
2194
  },
2195
+
2196
+ // displays upcoming input, i.e. for error messages
2096
2197
  upcomingInput: function upcomingInput() {
2097
2198
  var next = this.match;
2098
2199
  if (next.length < 20) {
@@ -2100,18 +2201,92 @@ return /******/ (function(modules) { // webpackBootstrap
2100
2201
  }
2101
2202
  return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
2102
2203
  },
2204
+
2205
+ // displays the character position where the lexing error occurred, i.e. for error messages
2103
2206
  showPosition: function showPosition() {
2104
2207
  var pre = this.pastInput();
2105
2208
  var c = new Array(pre.length + 1).join("-");
2106
2209
  return pre + this.upcomingInput() + "\n" + c + "^";
2107
2210
  },
2211
+
2212
+ // test the lexed token: return FALSE when not a match, otherwise return token
2213
+ test_match: function test_match(match, indexed_rule) {
2214
+ var token, lines, backup;
2215
+
2216
+ if (this.options.backtrack_lexer) {
2217
+ // save context
2218
+ backup = {
2219
+ yylineno: this.yylineno,
2220
+ yylloc: {
2221
+ first_line: this.yylloc.first_line,
2222
+ last_line: this.last_line,
2223
+ first_column: this.yylloc.first_column,
2224
+ last_column: this.yylloc.last_column
2225
+ },
2226
+ yytext: this.yytext,
2227
+ match: this.match,
2228
+ matches: this.matches,
2229
+ matched: this.matched,
2230
+ yyleng: this.yyleng,
2231
+ offset: this.offset,
2232
+ _more: this._more,
2233
+ _input: this._input,
2234
+ yy: this.yy,
2235
+ conditionStack: this.conditionStack.slice(0),
2236
+ done: this.done
2237
+ };
2238
+ if (this.options.ranges) {
2239
+ backup.yylloc.range = this.yylloc.range.slice(0);
2240
+ }
2241
+ }
2242
+
2243
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
2244
+ if (lines) {
2245
+ this.yylineno += lines.length;
2246
+ }
2247
+ this.yylloc = {
2248
+ first_line: this.yylloc.last_line,
2249
+ last_line: this.yylineno + 1,
2250
+ first_column: this.yylloc.last_column,
2251
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
2252
+ };
2253
+ this.yytext += match[0];
2254
+ this.match += match[0];
2255
+ this.matches = match;
2256
+ this.yyleng = this.yytext.length;
2257
+ if (this.options.ranges) {
2258
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
2259
+ }
2260
+ this._more = false;
2261
+ this._backtrack = false;
2262
+ this._input = this._input.slice(match[0].length);
2263
+ this.matched += match[0];
2264
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
2265
+ if (this.done && this._input) {
2266
+ this.done = false;
2267
+ }
2268
+ if (token) {
2269
+ return token;
2270
+ } else if (this._backtrack) {
2271
+ // recover context
2272
+ for (var k in backup) {
2273
+ this[k] = backup[k];
2274
+ }
2275
+ return false; // rule action called reject() implying the next rule should be tested instead.
2276
+ }
2277
+ return false;
2278
+ },
2279
+
2280
+ // return next match in input
2108
2281
  next: function next() {
2109
2282
  if (this.done) {
2110
2283
  return this.EOF;
2111
2284
  }
2112
- if (!this._input) this.done = true;
2285
+ if (!this._input) {
2286
+ this.done = true;
2287
+ }
2113
2288
 
2114
- var token, match, tempMatch, index, col, lines;
2289
+ var token, match, tempMatch, index;
2115
2290
  if (!this._more) {
2116
2291
  this.yytext = '';
2117
2292
  this.match = '';
@@ -2122,251 +2297,303 @@ return /******/ (function(modules) { // webpackBootstrap
2122
2297
  if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
2123
2298
  match = tempMatch;
2124
2299
  index = i;
2125
- if (!this.options.flex) break;
2300
+ if (this.options.backtrack_lexer) {
2301
+ token = this.test_match(tempMatch, rules[i]);
2302
+ if (token !== false) {
2303
+ return token;
2304
+ } else if (this._backtrack) {
2305
+ match = false;
2306
+ continue; // rule action called reject() implying a rule MISmatch.
2307
+ } else {
2308
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
2309
+ return false;
2310
+ }
2311
+ } else if (!this.options.flex) {
2312
+ break;
2313
+ }
2126
2314
  }
2127
2315
  }
2128
2316
  if (match) {
2129
- lines = match[0].match(/(?:\r\n?|\n).*/g);
2130
- if (lines) this.yylineno += lines.length;
2131
- this.yylloc = { first_line: this.yylloc.last_line,
2132
- last_line: this.yylineno + 1,
2133
- first_column: this.yylloc.last_column,
2134
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length };
2135
- this.yytext += match[0];
2136
- this.match += match[0];
2137
- this.matches = match;
2138
- this.yyleng = this.yytext.length;
2139
- if (this.options.ranges) {
2140
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
2317
+ token = this.test_match(match, rules[index]);
2318
+ if (token !== false) {
2319
+ return token;
2141
2320
  }
2142
- this._more = false;
2143
- this._input = this._input.slice(match[0].length);
2144
- this.matched += match[0];
2145
- token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);
2146
- if (this.done && this._input) this.done = false;
2147
- if (token) return token;else return;
2321
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
2322
+ return false;
2148
2323
  }
2149
2324
  if (this._input === "") {
2150
2325
  return this.EOF;
2151
2326
  } else {
2152
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, line: this.yylineno });
2327
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
2328
+ text: "",
2329
+ token: null,
2330
+ line: this.yylineno
2331
+ });
2153
2332
  }
2154
2333
  },
2334
+
2335
+ // return next match that has a token
2155
2336
  lex: function lex() {
2156
2337
  var r = this.next();
2157
- if (typeof r !== 'undefined') {
2338
+ if (r) {
2158
2339
  return r;
2159
2340
  } else {
2160
2341
  return this.lex();
2161
2342
  }
2162
2343
  },
2344
+
2345
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
2163
2346
  begin: function begin(condition) {
2164
2347
  this.conditionStack.push(condition);
2165
2348
  },
2349
+
2350
+ // pop the previously active lexer condition state off the condition stack
2166
2351
  popState: function popState() {
2167
- return this.conditionStack.pop();
2352
+ var n = this.conditionStack.length - 1;
2353
+ if (n > 0) {
2354
+ return this.conditionStack.pop();
2355
+ } else {
2356
+ return this.conditionStack[0];
2357
+ }
2168
2358
  },
2359
+
2360
+ // produce the lexer rule set which is active for the currently active lexer condition state
2169
2361
  _currentRules: function _currentRules() {
2170
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
2362
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
2363
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
2364
+ } else {
2365
+ return this.conditions["INITIAL"].rules;
2366
+ }
2171
2367
  },
2172
- topState: function topState() {
2173
- return this.conditionStack[this.conditionStack.length - 2];
2368
+
2369
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
2370
+ topState: function topState(n) {
2371
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
2372
+ if (n >= 0) {
2373
+ return this.conditionStack[n];
2374
+ } else {
2375
+ return "INITIAL";
2376
+ }
2174
2377
  },
2175
- pushState: function begin(condition) {
2378
+
2379
+ // alias for begin(condition)
2380
+ pushState: function pushState(condition) {
2176
2381
  this.begin(condition);
2177
- } };
2178
- lexer.options = {};
2179
- lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
2382
+ },
2180
2383
 
2181
- function strip(start, end) {
2182
- return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);
2183
- }
2384
+ // return the number of states currently on the stack
2385
+ stateStackSize: function stateStackSize() {
2386
+ return this.conditionStack.length;
2387
+ },
2388
+ options: {},
2389
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
2184
2390
 
2185
- var YYSTATE = YY_START;
2186
- switch ($avoiding_name_collisions) {
2187
- case 0:
2188
- if (yy_.yytext.slice(-2) === "\\\\") {
2189
- strip(0, 1);
2190
- this.begin("mu");
2191
- } else if (yy_.yytext.slice(-1) === "\\") {
2192
- strip(0, 1);
2193
- this.begin("emu");
2194
- } else {
2195
- this.begin("mu");
2196
- }
2197
- if (yy_.yytext) return 15;
2391
+ function strip(start, end) {
2392
+ return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);
2393
+ }
2198
2394
 
2199
- break;
2200
- case 1:
2201
- return 15;
2202
- break;
2203
- case 2:
2204
- this.popState();
2205
- return 15;
2395
+ var YYSTATE = YY_START;
2396
+ switch ($avoiding_name_collisions) {
2397
+ case 0:
2398
+ if (yy_.yytext.slice(-2) === "\\\\") {
2399
+ strip(0, 1);
2400
+ this.begin("mu");
2401
+ } else if (yy_.yytext.slice(-1) === "\\") {
2402
+ strip(0, 1);
2403
+ this.begin("emu");
2404
+ } else {
2405
+ this.begin("mu");
2406
+ }
2407
+ if (yy_.yytext) return 15;
2206
2408
 
2207
- break;
2208
- case 3:
2209
- this.begin('raw');return 15;
2210
- break;
2211
- case 4:
2212
- this.popState();
2213
- // Should be using `this.topState()` below, but it currently
2214
- // returns the second top instead of the first top. Opened an
2215
- // issue about it at https://github.com/zaach/jison/issues/291
2216
- if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
2409
+ break;
2410
+ case 1:
2411
+ return 15;
2412
+ break;
2413
+ case 2:
2414
+ this.popState();
2217
2415
  return 15;
2218
- } else {
2219
- strip(5, 9);
2220
- return 'END_RAW_BLOCK';
2221
- }
2222
2416
 
2223
- break;
2224
- case 5:
2225
- return 15;
2226
- break;
2227
- case 6:
2228
- this.popState();
2229
- return 14;
2417
+ break;
2418
+ case 3:
2419
+ this.begin('raw');return 15;
2420
+ break;
2421
+ case 4:
2422
+ this.popState();
2423
+ // Should be using `this.topState()` below, but it currently
2424
+ // returns the second top instead of the first top. Opened an
2425
+ // issue about it at https://github.com/zaach/jison/issues/291
2426
+ if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
2427
+ return 15;
2428
+ } else {
2429
+ strip(5, 9);
2430
+ return 18;
2431
+ }
2230
2432
 
2231
- break;
2232
- case 7:
2233
- return 65;
2234
- break;
2235
- case 8:
2236
- return 68;
2237
- break;
2238
- case 9:
2239
- return 19;
2240
- break;
2241
- case 10:
2242
- this.popState();
2243
- this.begin('raw');
2244
- return 23;
2433
+ break;
2434
+ case 5:
2435
+ return 15;
2436
+ break;
2437
+ case 6:
2438
+ this.popState();
2439
+ return 14;
2245
2440
 
2246
- break;
2247
- case 11:
2248
- return 55;
2249
- break;
2250
- case 12:
2251
- return 60;
2252
- break;
2253
- case 13:
2254
- return 29;
2255
- break;
2256
- case 14:
2257
- return 47;
2258
- break;
2259
- case 15:
2260
- this.popState();return 44;
2261
- break;
2262
- case 16:
2263
- this.popState();return 44;
2264
- break;
2265
- case 17:
2266
- return 34;
2267
- break;
2268
- case 18:
2269
- return 39;
2270
- break;
2271
- case 19:
2272
- return 51;
2273
- break;
2274
- case 20:
2275
- return 48;
2276
- break;
2277
- case 21:
2278
- this.unput(yy_.yytext);
2279
- this.popState();
2280
- this.begin('com');
2441
+ break;
2442
+ case 7:
2443
+ return 65;
2444
+ break;
2445
+ case 8:
2446
+ return 68;
2447
+ break;
2448
+ case 9:
2449
+ return 19;
2450
+ break;
2451
+ case 10:
2452
+ this.popState();
2453
+ this.begin('raw');
2454
+ return 23;
2281
2455
 
2282
- break;
2283
- case 22:
2284
- this.popState();
2285
- return 14;
2456
+ break;
2457
+ case 11:
2458
+ return 55;
2459
+ break;
2460
+ case 12:
2461
+ return 60;
2462
+ break;
2463
+ case 13:
2464
+ return 29;
2465
+ break;
2466
+ case 14:
2467
+ return 47;
2468
+ break;
2469
+ case 15:
2470
+ this.popState();return 44;
2471
+ break;
2472
+ case 16:
2473
+ this.popState();return 44;
2474
+ break;
2475
+ case 17:
2476
+ return 34;
2477
+ break;
2478
+ case 18:
2479
+ return 39;
2480
+ break;
2481
+ case 19:
2482
+ return 51;
2483
+ break;
2484
+ case 20:
2485
+ return 48;
2486
+ break;
2487
+ case 21:
2488
+ this.unput(yy_.yytext);
2489
+ this.popState();
2490
+ this.begin('com');
2286
2491
 
2287
- break;
2288
- case 23:
2289
- return 48;
2290
- break;
2291
- case 24:
2292
- return 73;
2293
- break;
2294
- case 25:
2295
- return 72;
2296
- break;
2297
- case 26:
2298
- return 72;
2299
- break;
2300
- case 27:
2301
- return 87;
2302
- break;
2303
- case 28:
2304
- // ignore whitespace
2305
- break;
2306
- case 29:
2307
- this.popState();return 54;
2308
- break;
2309
- case 30:
2310
- this.popState();return 33;
2311
- break;
2312
- case 31:
2313
- yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80;
2314
- break;
2315
- case 32:
2316
- yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80;
2317
- break;
2318
- case 33:
2319
- return 85;
2320
- break;
2321
- case 34:
2322
- return 82;
2323
- break;
2324
- case 35:
2325
- return 82;
2326
- break;
2327
- case 36:
2328
- return 83;
2329
- break;
2330
- case 37:
2331
- return 84;
2332
- break;
2333
- case 38:
2334
- return 81;
2335
- break;
2336
- case 39:
2337
- return 75;
2338
- break;
2339
- case 40:
2340
- return 77;
2341
- break;
2342
- case 41:
2343
- return 72;
2344
- break;
2345
- case 42:
2346
- yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72;
2347
- break;
2348
- case 43:
2349
- return 'INVALID';
2350
- break;
2351
- case 44:
2352
- return 5;
2353
- break;
2354
- }
2492
+ break;
2493
+ case 22:
2494
+ this.popState();
2495
+ return 14;
2496
+
2497
+ break;
2498
+ case 23:
2499
+ return 48;
2500
+ break;
2501
+ case 24:
2502
+ return 73;
2503
+ break;
2504
+ case 25:
2505
+ return 72;
2506
+ break;
2507
+ case 26:
2508
+ return 72;
2509
+ break;
2510
+ case 27:
2511
+ return 87;
2512
+ break;
2513
+ case 28:
2514
+ // ignore whitespace
2515
+ break;
2516
+ case 29:
2517
+ this.popState();return 54;
2518
+ break;
2519
+ case 30:
2520
+ this.popState();return 33;
2521
+ break;
2522
+ case 31:
2523
+ yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80;
2524
+ break;
2525
+ case 32:
2526
+ yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80;
2527
+ break;
2528
+ case 33:
2529
+ return 85;
2530
+ break;
2531
+ case 34:
2532
+ return 82;
2533
+ break;
2534
+ case 35:
2535
+ return 82;
2536
+ break;
2537
+ case 36:
2538
+ return 83;
2539
+ break;
2540
+ case 37:
2541
+ return 84;
2542
+ break;
2543
+ case 38:
2544
+ return 81;
2545
+ break;
2546
+ case 39:
2547
+ return 75;
2548
+ break;
2549
+ case 40:
2550
+ return 77;
2551
+ break;
2552
+ case 41:
2553
+ return 72;
2554
+ break;
2555
+ case 42:
2556
+ yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72;
2557
+ break;
2558
+ case 43:
2559
+ return 'INVALID';
2560
+ break;
2561
+ case 44:
2562
+ return 5;
2563
+ break;
2564
+ }
2565
+ },
2566
+ rules: [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/],
2567
+ conditions: { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } }
2355
2568
  };
2356
- lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/];
2357
- lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } };
2358
2569
  return lexer;
2359
2570
  })();
2360
2571
  parser.lexer = lexer;
2361
2572
  function Parser() {
2362
2573
  this.yy = {};
2363
- }Parser.prototype = parser;parser.Parser = Parser;
2574
+ }
2575
+ Parser.prototype = parser;parser.Parser = Parser;
2364
2576
  return new Parser();
2365
2577
  })();exports["default"] = handlebars;
2366
2578
  module.exports = exports["default"];
2367
2579
 
2368
2580
  /***/ }),
2369
2581
  /* 38 */
2582
+ /***/ (function(module, exports, __webpack_require__) {
2583
+
2584
+ module.exports = { "default": __webpack_require__(39), __esModule: true };
2585
+
2586
+ /***/ }),
2587
+ /* 39 */
2588
+ /***/ (function(module, exports, __webpack_require__) {
2589
+
2590
+ var $ = __webpack_require__(9);
2591
+ module.exports = function create(P, D){
2592
+ return $.create(P, D);
2593
+ };
2594
+
2595
+ /***/ }),
2596
+ /* 40 */
2370
2597
  /***/ (function(module, exports, __webpack_require__) {
2371
2598
 
2372
2599
  'use strict';
@@ -2375,7 +2602,7 @@ return /******/ (function(modules) { // webpackBootstrap
2375
2602
 
2376
2603
  exports.__esModule = true;
2377
2604
 
2378
- var _visitor = __webpack_require__(39);
2605
+ var _visitor = __webpack_require__(41);
2379
2606
 
2380
2607
  var _visitor2 = _interopRequireDefault(_visitor);
2381
2608
 
@@ -2590,7 +2817,7 @@ return /******/ (function(modules) { // webpackBootstrap
2590
2817
  module.exports = exports['default'];
2591
2818
 
2592
2819
  /***/ }),
2593
- /* 39 */
2820
+ /* 41 */
2594
2821
  /***/ (function(module, exports, __webpack_require__) {
2595
2822
 
2596
2823
  'use strict';
@@ -2733,7 +2960,7 @@ return /******/ (function(modules) { // webpackBootstrap
2733
2960
  module.exports = exports['default'];
2734
2961
 
2735
2962
  /***/ }),
2736
- /* 40 */
2963
+ /* 42 */
2737
2964
  /***/ (function(module, exports, __webpack_require__) {
2738
2965
 
2739
2966
  'use strict';
@@ -2964,7 +3191,7 @@ return /******/ (function(modules) { // webpackBootstrap
2964
3191
  }
2965
3192
 
2966
3193
  /***/ }),
2967
- /* 41 */
3194
+ /* 43 */
2968
3195
  /***/ (function(module, exports, __webpack_require__) {
2969
3196
 
2970
3197
  /* eslint-disable new-cap */
@@ -3540,7 +3767,7 @@ return /******/ (function(modules) { // webpackBootstrap
3540
3767
  }
3541
3768
 
3542
3769
  /***/ }),
3543
- /* 42 */
3770
+ /* 44 */
3544
3771
  /***/ (function(module, exports, __webpack_require__) {
3545
3772
 
3546
3773
  'use strict';
@@ -3557,7 +3784,7 @@ return /******/ (function(modules) { // webpackBootstrap
3557
3784
 
3558
3785
  var _utils = __webpack_require__(5);
3559
3786
 
3560
- var _codeGen = __webpack_require__(43);
3787
+ var _codeGen = __webpack_require__(45);
3561
3788
 
3562
3789
  var _codeGen2 = _interopRequireDefault(_codeGen);
3563
3790
 
@@ -3871,7 +4098,7 @@ return /******/ (function(modules) { // webpackBootstrap
3871
4098
  // replace it on the stack with the result of properly
3872
4099
  // invoking blockHelperMissing.
3873
4100
  blockValue: function blockValue(name) {
3874
- var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
4101
+ var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),
3875
4102
  params = [this.contextName(0)];
3876
4103
  this.setupHelperArgs(name, 0, params);
3877
4104
 
@@ -3889,7 +4116,7 @@ return /******/ (function(modules) { // webpackBootstrap
3889
4116
  // On stack, after, if lastHelper: value
3890
4117
  ambiguousBlockValue: function ambiguousBlockValue() {
3891
4118
  // We're being a bit cheeky and reusing the options value from the prior exec
3892
- var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
4119
+ var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),
3893
4120
  params = [this.contextName(0)];
3894
4121
  this.setupHelperArgs('', 0, params, true);
3895
4122
 
@@ -4180,18 +4407,33 @@ return /******/ (function(modules) { // webpackBootstrap
4180
4407
  // If the helper is not found, `helperMissing` is called.
4181
4408
  invokeHelper: function invokeHelper(paramSize, name, isSimple) {
4182
4409
  var nonHelper = this.popStack(),
4183
- helper = this.setupHelper(paramSize, name),
4184
- simple = isSimple ? [helper.name, ' || '] : '';
4410
+ helper = this.setupHelper(paramSize, name);
4185
4411
 
4186
- var lookup = ['('].concat(simple, nonHelper);
4412
+ var possibleFunctionCalls = [];
4413
+
4414
+ if (isSimple) {
4415
+ // direct call to helper
4416
+ possibleFunctionCalls.push(helper.name);
4417
+ }
4418
+ // call a function from the input object
4419
+ possibleFunctionCalls.push(nonHelper);
4187
4420
  if (!this.options.strict) {
4188
- lookup.push(' || ', this.aliasable('helpers.helperMissing'));
4421
+ possibleFunctionCalls.push(this.aliasable('container.hooks.helperMissing'));
4189
4422
  }
4190
- lookup.push(')');
4191
4423
 
4192
- this.push(this.source.functionCall(lookup, 'call', helper.callParams));
4424
+ var functionLookupCode = ['(', this.itemsSeparatedBy(possibleFunctionCalls, '||'), ')'];
4425
+ var functionCall = this.source.functionCall(functionLookupCode, 'call', helper.callParams);
4426
+ this.push(functionCall);
4193
4427
  },
4194
4428
 
4429
+ itemsSeparatedBy: function itemsSeparatedBy(items, separator) {
4430
+ var result = [];
4431
+ result.push(items[0]);
4432
+ for (var i = 1; i < items.length; i++) {
4433
+ result.push(separator, items[i]);
4434
+ }
4435
+ return result;
4436
+ },
4195
4437
  // [invokeKnownHelper]
4196
4438
  //
4197
4439
  // On stack, before: hash, inverse, program, params..., ...
@@ -4229,7 +4471,7 @@ return /******/ (function(modules) { // webpackBootstrap
4229
4471
  var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];
4230
4472
  if (!this.options.strict) {
4231
4473
  lookup[0] = '(helper = ';
4232
- lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing'));
4474
+ lookup.push(' != null ? helper : ', this.aliasable('container.hooks.helperMissing'));
4233
4475
  }
4234
4476
 
4235
4477
  this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);
@@ -4674,7 +4916,7 @@ return /******/ (function(modules) { // webpackBootstrap
4674
4916
  module.exports = exports['default'];
4675
4917
 
4676
4918
  /***/ }),
4677
- /* 43 */
4919
+ /* 45 */
4678
4920
  /***/ (function(module, exports, __webpack_require__) {
4679
4921
 
4680
4922
  /* global define */