handlebars-compiler-parser.js revision e0bd6b490d14919b958622a831bfadbf322397ba
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove/* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove/* Jison generated parser */
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovevar handlebars = (function(){
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovevar parser = {trace: function trace() { },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveyy: {},
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovesymbols_: {"error":2,"root":3,"program":4,"EOF":5,"statements":6,"simpleInverse":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,"OPEN_PARTIAL":24,"params":25,"hash":26,"param":27,"STRING":28,"INTEGER":29,"BOOLEAN":30,"hashSegments":31,"hashSegment":32,"ID":33,"EQUALS":34,"pathSegments":35,"SEP":36,"$accept":0,"$end":1},
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveterminals_: {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:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveproductions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GroveperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovevar $0 = $$.length - 1;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveswitch (yystate) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 1: return $$[$0-1]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 2: this.$ = new yy.ProgramNode($$[$0-2], $$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 3: this.$ = new yy.ProgramNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 4: this.$ = new yy.ProgramNode([])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 5: this.$ = [$$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 6: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 7: this.$ = new yy.InverseNode($$[$0-2], $$[$0-1], $$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 8: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 9: this.$ = $$[$0]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 10: this.$ = $$[$0]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 11: this.$ = new yy.ContentNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 12: this.$ = new yy.CommentNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 13: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 14: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 15: this.$ = $$[$0-1]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true)
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 18: this.$ = new yy.PartialNode($$[$0-1])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 19: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 20:
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 21: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 22: this.$ = [[$$[$0-1]].concat($$[$0]), null]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 23: this.$ = [[$$[$0-1]], $$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 24: this.$ = [[$$[$0]], null]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 25: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 26: this.$ = [$$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 27: this.$ = $$[$0]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 28: this.$ = new yy.StringNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 29: this.$ = new yy.IntegerNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 30: this.$ = new yy.BooleanNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 31: this.$ = new yy.HashNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 32: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 33: this.$ = [$$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 34: this.$ = [$$[$0-2], $$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 35: this.$ = [$$[$0-2], new yy.StringNode($$[$0])]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 36: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 37: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 38: this.$ = new yy.IdNode($$[$0])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 39: $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 40: this.$ = [$$[$0]]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove}
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove},
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovetable: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GrovedefaultActions: {16:[2,1],37:[2,23],53:[2,21]},
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GroveparseError: function parseError(str, hash) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove throw new Error(str);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove},
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveparse: function parse(input) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var self = this,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack = [0],
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove vstack = [null], // semantic value stack
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lstack = [], // location stack
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove table = this.table,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yytext = '',
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yylineno = 0,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyleng = 0,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove recovering = 0,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove TERROR = 2,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove EOF = 1;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove //this.reductionCount = this.shiftCount = 0;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.lexer.setInput(input);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.lexer.yy = this.yy;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yy.lexer = this.lexer;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof this.lexer.yylloc == 'undefined')
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.lexer.yylloc = {};
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var yyloc = this.lexer.yylloc;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lstack.push(yyloc);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof this.yy.parseError === 'function')
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.parseError = this.yy.parseError;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove function popStack (n) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack.length = stack.length - 2*n;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove vstack.length = vstack.length - n;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lstack.length = lstack.length - n;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove function lex() {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var token;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove token = self.lexer.lex() || 1; // $end = 1
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // if token isn't its numeric value, convert
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof token !== 'number') {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove token = self.symbols_[token] || token;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return token;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove while (true) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // retreive state number from top of stack
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove state = stack[stack.length-1];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // use default actions if available
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (this.defaultActions[state]) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove action = this.defaultActions[state];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (symbol == null)
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove symbol = lex();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // read action for current state and first input
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove action = table[state] && table[state][symbol];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // handle parse error
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove _handle_error:
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof action === 'undefined' || !action.length || !action[0]) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (!recovering) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // Report error
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove expected = [];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove for (p in table[state]) if (this.terminals_[p] && p > 2) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove expected.push("'"+this.terminals_[p]+"'");
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var errStr = '';
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (this.lexer.showPosition) {
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'";
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove (symbol == 1 /*EOF*/ ? "end of input" :
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove ("'"+(this.terminals_[symbol] || symbol)+"'"));
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.parseError(errStr,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // just recovered from another error
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (recovering == 3) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (symbol == EOF) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove throw new Error(errStr || 'Parsing halted.');
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // discard current lookahead and grab another
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyleng = this.lexer.yyleng;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yytext = this.lexer.yytext;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yylineno = this.lexer.yylineno;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyloc = this.lexer.yylloc;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove symbol = lex();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // try to recover from error
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove while (1) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // check for error recovery rule in this state
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if ((TERROR.toString()) in table[state]) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove break;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (state == 0) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove throw new Error(errStr || 'Parsing halted.');
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove popStack(1);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove state = stack[stack.length-1];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove preErrorSymbol = symbol; // save the lookahead token
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove symbol = TERROR; // insert generic error symbol as new lookahead
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove state = stack[stack.length-1];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove action = table[state] && table[state][TERROR];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // this shouldn't happen, unless resolve defaults are off
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (action[0] instanceof Array && action.length > 1) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove switch (action[0]) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove case 1: // shift
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove //this.shiftCount++;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack.push(symbol);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove vstack.push(this.lexer.yytext);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lstack.push(this.lexer.yylloc);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack.push(action[1]); // push state
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove symbol = null;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (!preErrorSymbol) { // normal execution/no error
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyleng = this.lexer.yyleng;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yytext = this.lexer.yytext;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yylineno = this.lexer.yylineno;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyloc = this.lexer.yylloc;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (recovering > 0)
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove recovering--;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else { // error just occurred, resume old lookahead f/ before error
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove symbol = preErrorSymbol;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove preErrorSymbol = null;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove break;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove case 2: // reduce
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove //this.reductionCount++;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove len = this.productions_[action[1]][1];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // perform semantic action
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // default location, uses first token for firsts, last for lasts
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove yyval._$ = {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove first_line: lstack[lstack.length-(len||1)].first_line,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove last_line: lstack[lstack.length-1].last_line,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove first_column: lstack[lstack.length-(len||1)].first_column,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove last_column: lstack[lstack.length-1].last_column
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove };
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof r !== 'undefined') {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return r;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // pop off stack
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (len) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack = stack.slice(0,-1*len*2);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove vstack = vstack.slice(0, -1*len);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lstack = lstack.slice(0, -1*len);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove vstack.push(yyval.$);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lstack.push(yyval._$);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove // goto new state = table[STATE][NONTERMINAL]
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove newState = table[stack[stack.length-2]][stack[stack.length-1]];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove stack.push(newState);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove break;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove case 3: // accept
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return true;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return true;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove}};/* Jison generated lexer */
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovevar lexer = (function(){
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovevar lexer = ({EOF:1,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GroveparseError:function parseError(str, hash) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (this.yy.parseError) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yy.parseError(str, hash);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove throw new Error(str);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GrovesetInput:function (input) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._input = input;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._more = this._less = this.done = false;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yylineno = this.yyleng = 0;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yytext = this.matched = this.match = '';
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.conditionStack = ['INITIAL'];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveinput:function () {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var ch = this._input[0];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yytext+=ch;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yyleng++;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.match+=ch;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.matched+=ch;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var lines = ch.match(/\n/);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (lines) this.yylineno++;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._input = this._input.slice(1);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return ch;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveunput:function (ch) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._input = ch + this._input;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovemore:function () {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._more = true;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GrovepastInput:function () {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var past = this.matched.substr(0, this.matched.length - this.match.length);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GroveupcomingInput:function () {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var next = this.match;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (next.length < 20) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove next += this._input.substr(0, 20-next.length);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GroveshowPosition:function () {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var pre = this.pastInput();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var c = new Array(pre.length + 1).join("-");
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return pre + this.upcomingInput() + "\n" + c+"^";
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovenext:function () {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (this.done) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this.EOF;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (!this._input) this.done = true;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var token,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove match,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove col,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lines;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (!this._more) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yytext = '';
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.match = '';
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var rules = this._currentRules();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove for (var i=0;i < rules.length; i++) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove match = this._input.match(this.rules[rules[i]]);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (match) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove lines = match[0].match(/\n.*/g);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (lines) this.yylineno += lines.length;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yylloc = {first_line: this.yylloc.last_line,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove last_line: this.yylineno+1,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove first_column: this.yylloc.last_column,
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yytext += match[0];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.match += match[0];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.matches = match;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.yyleng = this.yytext.length;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._more = false;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this._input = this._input.slice(match[0].length);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.matched += match[0];
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (token) return token;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove else return;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (this._input === "") {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this.EOF;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove {text: "", token: null, line: this.yylineno});
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovelex:function lex() {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var r = this.next();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof r !== 'undefined') {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return r;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this.lex();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebegin:function begin(condition) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove this.conditionStack.push(condition);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan GrovepopState:function popState() {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this.conditionStack.pop();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove },
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove_currentRules:function _currentRules() {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove },
e0bd6b490d14919b958622a831bfadbf322397baRyan GrovetopState:function () {
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove return this.conditionStack[this.conditionStack.length-2];
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove },
e0bd6b490d14919b958622a831bfadbf322397baRyan GrovepushState:function begin(condition) {
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove this.begin(condition);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }});
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovelexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovevar YYSTATE=YY_START
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveswitch($avoiding_name_collisions) {
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 0:
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove if(yy_.yytext.slice(-1) !== "\\") this.begin("mu");
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu");
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove if(yy_.yytext) return 14;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grove
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 1: return 14;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 2: this.popState(); return 14;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 3: return 24;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 4: return 16;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 5: return 20;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 6: return 19;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 7: return 19;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 8: return 23;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 9: return 23;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 11: return 22;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 12: return 34;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 13: return 33;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 14: return 33;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 15: return 36;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 16: /*ignore whitespace*/
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 17: this.popState(); return 18;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 18: this.popState(); return 18;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 28;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovecase 20: return 30;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 21: return 30;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 22: return 29;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 23: return 33;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 25: return 'INVALID';
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovecase 26: return 5;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovebreak;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove}
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove};
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovelexer.rules = [/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/];
e0bd6b490d14919b958622a831bfadbf322397baRyan Grovelexer.conditions = {"mu":{"rules":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"INITIAL":{"rules":[0,1,26],"inclusive":true}};return lexer;})()
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveparser.lexer = lexer;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grovereturn parser;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove})();
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveif (typeof require !== 'undefined' && typeof exports !== 'undefined') {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveexports.parser = handlebars;
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveexports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveexports.main = function commonjsMain(args) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (!args[1])
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove throw new Error('Usage: '+args[0]+' FILE');
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove if (typeof process !== 'undefined') {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8");
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove } else {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var cwd = require("file").path(require("file").cwd());
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove var source = cwd.join(args[1]).read({charset: "utf-8"});
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove }
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove return exports.parser.parse(source);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove}
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Groveif (typeof module !== 'undefined' && require.main === module) {
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove}
c5eeeb5cc5fdca25f16cb4f2fd3e59dd0f937debRyan Grove};