summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/handlebars.js68
-rw-r--r--src/handlebars.yy10
2 files changed, 32 insertions, 46 deletions
diff --git a/dist/handlebars.js b/dist/handlebars.js
index ac8ec3e..e05f346 100644
--- a/dist/handlebars.js
+++ b/dist/handlebars.js
@@ -188,9 +188,9 @@ Handlebars.registerHelper('log', function(context, options) {
var handlebars = (function(){
var parser = {trace: function trace() { },
yy: {},
-symbols_: {"error":2,"root":3,"program":4,"EOF":5,"simpleInverse":6,"statements":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"CLOSE_UNESCAPED":24,"OPEN_PARTIAL":25,"partialName":26,"partial_option0":27,"params":28,"hash":29,"dataName":30,"param":31,"STRING":32,"INTEGER":33,"BOOLEAN":34,"hash_repetition_plus0":35,"hashSegment":36,"ID":37,"EQUALS":38,"DATA":39,"pathSegments":40,"SEP":41,"$accept":0,"$end":1},
-terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"CLOSE_UNESCAPED",25:"OPEN_PARTIAL",32:"STRING",33:"INTEGER",34:"BOOLEAN",37:"ID",38:"EQUALS",39:"DATA",41:"SEP"},
-productions_: [0,[3,2],[4,2],[4,3],[4,2],[4,1],[4,1],[4,0],[7,1],[7,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[6,2],[17,3],[17,2],[17,2],[17,1],[17,1],[28,2],[28,1],[31,1],[31,1],[31,1],[31,1],[31,1],[29,1],[36,3],[26,1],[26,1],[26,1],[30,2],[21,1],[40,3],[40,1],[27,0],[27,1],[35,1],[35,2]],
+symbols_: {"error":2,"root":3,"program":4,"EOF":5,"simpleInverse":6,"statements":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"CLOSE_UNESCAPED":24,"OPEN_PARTIAL":25,"partialName":26,"partial_option0":27,"inMustache_repetition0":28,"inMustache_option0":29,"dataName":30,"param":31,"STRING":32,"INTEGER":33,"BOOLEAN":34,"hash":35,"hash_repetition_plus0":36,"hashSegment":37,"ID":38,"EQUALS":39,"DATA":40,"pathSegments":41,"SEP":42,"$accept":0,"$end":1},
+terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"CLOSE_UNESCAPED",25:"OPEN_PARTIAL",32:"STRING",33:"INTEGER",34:"BOOLEAN",38:"ID",39:"EQUALS",40:"DATA",42:"SEP"},
+productions_: [0,[3,2],[4,2],[4,3],[4,2],[4,1],[4,1],[4,0],[7,1],[7,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[6,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[35,1],[37,3],[26,1],[26,1],[26,1],[30,2],[21,1],[41,3],[41,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[36,1],[36,2]],
performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
var $0 = $$.length - 1;
@@ -244,54 +244,48 @@ case 22:
break;
case 23:this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
break;
-case 24:this.$ = [[$$[$0-1]].concat($$[$0]), null];
+case 24:this.$ = [[$$[$0]], null];
break;
-case 25:this.$ = [[$$[$0-1]], $$[$0]];
+case 25:this.$ = $$[$0];
break;
-case 26:this.$ = [[$$[$0]], null];
+case 26:this.$ = new yy.StringNode($$[$0]);
break;
-case 27:this.$ = [[$$[$0]], null];
+case 27:this.$ = new yy.IntegerNode($$[$0]);
break;
-case 28: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
+case 28:this.$ = new yy.BooleanNode($$[$0]);
break;
-case 29:this.$ = [$$[$0]];
+case 29:this.$ = $$[$0];
break;
-case 30:this.$ = $$[$0];
+case 30:this.$ = new yy.HashNode($$[$0]);
break;
-case 31:this.$ = new yy.StringNode($$[$0]);
+case 31:this.$ = [$$[$0-2], $$[$0]];
break;
-case 32:this.$ = new yy.IntegerNode($$[$0]);
+case 32:this.$ = new yy.PartialNameNode($$[$0]);
break;
-case 33:this.$ = new yy.BooleanNode($$[$0]);
+case 33:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0]));
break;
-case 34:this.$ = $$[$0];
+case 34:this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0]));
break;
-case 35:this.$ = new yy.HashNode($$[$0]);
+case 35:this.$ = new yy.DataNode($$[$0]);
break;
-case 36:this.$ = [$$[$0-2], $$[$0]];
+case 36:this.$ = new yy.IdNode($$[$0]);
break;
-case 37:this.$ = new yy.PartialNameNode($$[$0]);
+case 37: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2];
break;
-case 38:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0]));
+case 38:this.$ = [{part: $$[$0]}];
break;
-case 39:this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0]));
+case 41:this.$ = [];
break;
-case 40:this.$ = new yy.DataNode($$[$0]);
+case 42:$$[$0-1].push($$[$0]);
break;
-case 41:this.$ = new yy.IdNode($$[$0]);
+case 45:this.$ = [$$[$0]];
break;
-case 42: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2];
-break;
-case 43:this.$ = [{part: $$[$0]}];
-break;
-case 46:this.$ = [$$[$0]];
-break;
-case 47:$$[$0-1].push($$[$0]);
+case 46:$$[$0-1].push($$[$0]);
break;
}
},
-table: [{3:1,4:2,5:[2,7],6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],22:[1,14],23:[1,15],25:[1,16]},{1:[3]},{5:[1,17]},{5:[2,6],7:18,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,6],22:[1,14],23:[1,15],25:[1,16]},{5:[2,5],6:20,8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,5],22:[1,14],23:[1,15],25:[1,16]},{17:23,18:[1,22],21:24,30:25,37:[1,28],39:[1,27],40:26},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],25:[2,8]},{4:29,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{4:30,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{17:31,21:24,30:25,37:[1,28],39:[1,27],40:26},{17:32,21:24,30:25,37:[1,28],39:[1,27],40:26},{17:33,21:24,30:25,37:[1,28],39:[1,27],40:26},{21:35,26:34,32:[1,36],33:[1,37],37:[1,28],40:26},{1:[2,1]},{5:[2,2],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,2],22:[1,14],23:[1,15],25:[1,16]},{17:23,21:24,30:25,37:[1,28],39:[1,27],40:26},{5:[2,4],7:38,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,4],22:[1,14],23:[1,15],25:[1,16]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{18:[1,39]},{18:[2,26],21:44,24:[2,26],28:40,29:41,30:48,31:42,32:[1,45],33:[1,46],34:[1,47],35:43,36:49,37:[1,50],39:[1,27],40:26},{18:[2,27],24:[2,27]},{18:[2,41],24:[2,41],32:[2,41],33:[2,41],34:[2,41],37:[2,41],39:[2,41],41:[1,51]},{21:52,37:[1,28],40:26},{18:[2,43],24:[2,43],32:[2,43],33:[2,43],34:[2,43],37:[2,43],39:[2,43],41:[2,43]},{10:53,20:[1,54]},{10:55,20:[1,54]},{18:[1,56]},{18:[1,57]},{24:[1,58]},{18:[2,44],21:60,27:59,37:[1,28],40:26},{18:[2,37],37:[2,37]},{18:[2,38],37:[2,38]},{18:[2,39],37:[2,39]},{5:[2,3],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,3],22:[1,14],23:[1,15],25:[1,16]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{18:[2,24],21:44,24:[2,24],29:61,30:48,31:62,32:[1,45],33:[1,46],34:[1,47],35:43,36:49,37:[1,50],39:[1,27],40:26},{18:[2,25],24:[2,25]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],37:[2,29],39:[2,29]},{18:[2,35],24:[2,35],36:63,37:[1,64]},{18:[2,30],24:[2,30],32:[2,30],33:[2,30],34:[2,30],37:[2,30],39:[2,30]},{18:[2,31],24:[2,31],32:[2,31],33:[2,31],34:[2,31],37:[2,31],39:[2,31]},{18:[2,32],24:[2,32],32:[2,32],33:[2,32],34:[2,32],37:[2,32],39:[2,32]},{18:[2,33],24:[2,33],32:[2,33],33:[2,33],34:[2,33],37:[2,33],39:[2,33]},{18:[2,34],24:[2,34],32:[2,34],33:[2,34],34:[2,34],37:[2,34],39:[2,34]},{18:[2,46],24:[2,46],37:[2,46]},{18:[2,43],24:[2,43],32:[2,43],33:[2,43],34:[2,43],37:[2,43],38:[1,65],39:[2,43],41:[2,43]},{37:[1,66]},{18:[2,40],24:[2,40],32:[2,40],33:[2,40],34:[2,40],37:[2,40],39:[2,40]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{21:67,37:[1,28],40:26},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{18:[1,68]},{18:[2,45]},{18:[2,23],24:[2,23]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],37:[2,28],39:[2,28]},{18:[2,47],24:[2,47],37:[2,47]},{38:[1,65]},{21:44,30:48,31:69,32:[1,45],33:[1,46],34:[1,47],37:[1,28],39:[1,27],40:26},{18:[2,42],24:[2,42],32:[2,42],33:[2,42],34:[2,42],37:[2,42],39:[2,42],41:[2,42]},{18:[1,70]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[2,36],24:[2,36],37:[2,36]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]}],
-defaultActions: {17:[2,1],60:[2,45]},
+table: [{3:1,4:2,5:[2,7],6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],22:[1,14],23:[1,15],25:[1,16]},{1:[3]},{5:[1,17]},{5:[2,6],7:18,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,6],22:[1,14],23:[1,15],25:[1,16]},{5:[2,5],6:20,8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,5],22:[1,14],23:[1,15],25:[1,16]},{17:23,18:[1,22],21:24,30:25,38:[1,28],40:[1,27],41:26},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],25:[2,8]},{4:29,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{4:30,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],25:[1,16]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{17:31,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:32,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:33,21:24,30:25,38:[1,28],40:[1,27],41:26},{21:35,26:34,32:[1,36],33:[1,37],38:[1,28],41:26},{1:[2,1]},{5:[2,2],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,2],22:[1,14],23:[1,15],25:[1,16]},{17:23,21:24,30:25,38:[1,28],40:[1,27],41:26},{5:[2,4],7:38,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,4],22:[1,14],23:[1,15],25:[1,16]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{18:[1,39]},{18:[2,41],24:[2,41],28:40,32:[2,41],33:[2,41],34:[2,41],38:[2,41],40:[2,41]},{18:[2,24],24:[2,24]},{18:[2,36],24:[2,36],32:[2,36],33:[2,36],34:[2,36],38:[2,36],40:[2,36],42:[1,41]},{21:42,38:[1,28],41:26},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],38:[2,38],40:[2,38],42:[2,38]},{10:43,20:[1,44]},{10:45,20:[1,44]},{18:[1,46]},{18:[1,47]},{24:[1,48]},{18:[2,39],21:50,27:49,38:[1,28],41:26},{18:[2,32],38:[2,32]},{18:[2,33],38:[2,33]},{18:[2,34],38:[2,34]},{5:[2,3],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,3],22:[1,14],23:[1,15],25:[1,16]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{18:[2,43],21:54,24:[2,43],29:51,30:58,31:52,32:[1,55],33:[1,56],34:[1,57],35:53,36:59,37:60,38:[1,61],40:[1,27],41:26},{38:[1,62]},{18:[2,35],24:[2,35],32:[2,35],33:[2,35],34:[2,35],38:[2,35],40:[2,35]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{21:63,38:[1,28],41:26},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{18:[1,64]},{18:[2,40]},{18:[2,23],24:[2,23]},{18:[2,42],24:[2,42],32:[2,42],33:[2,42],34:[2,42],38:[2,42],40:[2,42]},{18:[2,44],24:[2,44]},{18:[2,25],24:[2,25],32:[2,25],33:[2,25],34:[2,25],38:[2,25],40:[2,25]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],38:[2,26],40:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],38:[2,27],40:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],38:[2,28],40:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],38:[2,29],40:[2,29]},{18:[2,30],24:[2,30],37:65,38:[1,66]},{18:[2,45],24:[2,45],38:[2,45]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],38:[2,38],39:[1,67],40:[2,38],42:[2,38]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],38:[2,37],40:[2,37],42:[2,37]},{18:[1,68]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[2,46],24:[2,46],38:[2,46]},{39:[1,67]},{21:54,30:58,31:69,32:[1,55],33:[1,56],34:[1,57],38:[1,28],40:[1,27],41:26},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,31],24:[2,31],38:[2,31]}],
+defaultActions: {17:[2,1],50:[2,40]},
parseError: function parseError(str, hash) {
throw new Error(str);
},
@@ -610,13 +604,13 @@ case 13: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return
break;
case 14: return 22;
break;
-case 15: return 38;
+case 15: return 39;
break;
-case 16: return 37;
+case 16: return 38;
break;
-case 17: return 37;
+case 17: return 38;
break;
-case 18: return 41;
+case 18: return 42;
break;
case 19: /*ignore whitespace*/
break;
@@ -628,7 +622,7 @@ case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); ret
break;
case 23: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return 32;
break;
-case 24: return 39;
+case 24: return 40;
break;
case 25: return 34;
break;
@@ -636,9 +630,9 @@ case 26: return 34;
break;
case 27: return 33;
break;
-case 28: return 37;
+case 28: return 38;
break;
-case 29: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 37;
+case 29: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 38;
break;
case 30: return 'INVALID';
break;
diff --git a/src/handlebars.yy b/src/handlebars.yy
index bad05f4..8a89dff 100644
--- a/src/handlebars.yy
+++ b/src/handlebars.yy
@@ -61,18 +61,10 @@ simpleInverse
;
inMustache
- : path params hash -> [[$1].concat($2), $3]
- | path params -> [[$1].concat($2), null]
- | path hash -> [[$1], $2]
- | path -> [[$1], null]
+ : path param* hash? -> [[$1].concat($2), $3]
| dataName -> [[$1], null]
;
-params
- : params param { $1.push($2); $$ = $1; }
- | param -> [$1]
- ;
-
param
: path -> $1
| STRING -> new yy.StringNode($1)