made with requirebin
Created
November 6, 2014 08:11
-
-
Save yiminghe/17a607237e1e55dfdc03 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var XTemplate = require('xtemplate'); | |
alert(new XTemplate('{{x}}').render({x:2})); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var XTemplateRuntime=require("./xtemplate/runtime");var util=XTemplateRuntime.util;var Compiler=require("./xtemplate/compiler");var compile=Compiler.compile;function XTemplate(tpl,config){var tplType=typeof tpl;if(tplType!=="string"&&tplType!=="function"){config=tpl;tpl=undefined}config=this.config=util.merge(XTemplate.globalConfig,config);if(tplType==="string"){tpl=this.compile(tpl,config.name)}XTemplateRuntime.call(this,tpl,config)}function Noop(){}Noop.prototype=XTemplateRuntime.prototype;XTemplate.prototype=new Noop;XTemplate.prototype.constructor=XTemplate;XTemplate.prototype.compile=function(content,name){return compile(content,name,this.config)};module.exports=util.mix(XTemplate,{config:XTemplateRuntime.config,compile:compile,version:"@VERSION@",Compiler:Compiler,Scope:XTemplateRuntime.Scope,Runtime:XTemplateRuntime,addCommand:XTemplateRuntime.addCommand,removeCommand:XTemplateRuntime.removeCommand})},{"./xtemplate/compiler":2,"./xtemplate/runtime":6}],2:[function(require,module,exports){var util=require("./runtime").util;var compilerTools=require("./compiler/tools");var pushToArray=compilerTools.pushToArray;var wrapByDoubleQuote=compilerTools.wrapByDoubleQuote;var TMP_DECLARATION=["var t;"];for(var i=0;i<10;i++){TMP_DECLARATION.push("var t"+i+";")}var TOP_DECLARATION=TMP_DECLARATION.concat(["var tpl = this;","var root = tpl.root;","var buffer = tpl.buffer;","var scope = tpl.scope;","var runtime = tpl.runtime;","var name = tpl.name;","var pos = tpl.pos;","var data = scope.data;","var affix = scope.affix;","var nativeCommands = root.nativeCommands;","var utils = root.utils;"]).join("\n");var CALL_NATIVE_COMMAND="{lhs} = {name}Command.call(tpl, scope, {option}, buffer);";var CALL_CUSTOM_COMMAND="buffer = callCommandUtil(tpl, scope, {option}, buffer, {idParts});";var CALL_FUNCTION="{lhs} = callFnUtil(tpl, scope, {option}, buffer, {idParts});";var CALL_FUNCTION_DEPTH="{lhs} = callFnUtil(tpl, scope, {option}, buffer, {idParts}, {depth});";var ASSIGN_STATEMENT="var {lhs} = {value};";var SCOPE_RESOLVE_DEPTH="var {lhs} = scope.resolve({idParts},{depth});";var SCOPE_RESOLVE_LOOSE_DEPTH="var {lhs} = scope.resolveLoose({idParts},{depth});";var FUNC=["function {functionName}({params}){","{body}","}"].join("\n");var SOURCE_URL=["","//# sourceURL = {name}.js"].join("\n");var DECLARE_NATIVE_COMMANDS='var {name}Command = nativeCommands["{name}"];';var DECLARE_UTILS='var {name}Util = utils["{name}"];';var BUFFER_WRITE="buffer = buffer.write({value});";var BUFFER_APPEND="buffer.data += {value};";var BUFFER_WRITE_ESCAPED="buffer = buffer.writeEscaped({value});";var RETURN_BUFFER="return buffer;";var XTemplateRuntime=require("./runtime");var parser=require("./compiler/parser");parser.yy=require("./compiler/ast");var nativeCode=[];var substitute=util.substitute;var each=util.each;var nativeCommands=XTemplateRuntime.nativeCommands;var nativeUtils=XTemplateRuntime.utils;each(nativeUtils,function(v,name){nativeCode.push(substitute(DECLARE_UTILS,{name:name}))});each(nativeCommands,function(v,name){nativeCode.push(substitute(DECLARE_NATIVE_COMMANDS,{name:name}))});nativeCode=nativeCode.join("\n");function getFunctionDeclare(functionName){return["function "+functionName+"(scope, buffer, undefined) {","var data = scope.data;","var affix = scope.affix;"]}function guid(self,str){return str+self.uuid++}function opExpression(e){var source=[];var type=e.opType;var exp1,exp2,code1Source,code2Source;var code1=this[e.op1.type](e.op1);var code2=this[e.op2.type](e.op2);var exp=guid(this,"exp");exp1=code1.exp;exp2=code2.exp;code1Source=code1.source;code2Source=code2.source;pushToArray(source,code1Source);source.push("var "+exp+" = "+exp1+";");if(type==="&&"||type==="||"){source.push("if("+(type==="&&"?"":"!")+"("+exp+")){");pushToArray(source,code2Source);source.push(exp+" = "+exp2+";");source.push("}")}else{pushToArray(source,code2Source);source.push(exp+" = "+"("+exp1+")"+type+"("+exp2+");")}return{exp:exp,source:source}}var lastLine=1;function markLine(pos,source){if(lastLine===pos.line){return}lastLine=pos.line;source.push("pos.line = "+pos.line+";")}function genFunction(self,statements){var functionName=guid(self,"func");var source=getFunctionDeclare(functionName);var statement;for(var i=0,len=statements.length;i<len;i++){statement=statements[i];pushToArray(source,self[statement.type](statement).source)}source.push(RETURN_BUFFER);source.push("}");pushToArray(self.functionDeclares,source);return functionName}function genConditionFunction(self,condition){var functionName=guid(self,"func");var source=getFunctionDeclare(functionName);var gen=self[condition.type](condition);pushToArray(source,gen.source);source.push("return "+gen.exp+";");source.push("}");pushToArray(self.functionDeclares,source);return functionName}function genTopFunction(self,statements){var catchError=self.config.catchError;var source=[TOP_DECLARATION,nativeCode,catchError?"try {":""];var statement,i,len;for(i=0,len=statements.length;i<len;i++){statement=statements[i];pushToArray(source,self[statement.type](statement,{top:1}).source)}source.splice.apply(source,[2,0].concat(self.functionDeclares).concat(""));source.push(RETURN_BUFFER);if(catchError){source.push("} catch(e) {");source.push("if(!e.xtpl){");source.push("buffer.error(e);");source.push("}else{ throw e; }");source.push("}")}return{params:["undefined"],source:source.join("\n")}}function genOptionFromFunction(self,func,escape,fn,elseIfs,inverse){var source=[];var params=func.params;var hash=func.hash;var funcParams=[];if(params){each(params,function(param){var nextIdNameCode=self[param.type](param);pushToArray(source,nextIdNameCode.source);funcParams.push(nextIdNameCode.exp)})}var funcHash=[];if(hash){each(hash.value,function(v,key){var nextIdNameCode=self[v.type](v);pushToArray(source,nextIdNameCode.source);funcHash.push([wrapByDoubleQuote(key),nextIdNameCode.exp])})}var exp="";if(funcParams.length||funcHash.length||escape||fn||inverse||elseIfs){if(escape){exp+=",escape:1"}if(funcParams.length){exp+=",params:["+funcParams.join(",")+"]"}if(funcHash.length){var hashStr="";util.each(funcHash,function(h){hashStr+=","+h[0]+":"+h[1]});exp+=",hash:{"+hashStr.slice(1)+"}"}if(fn){exp+=",fn: "+fn}if(inverse){exp+=",inverse: "+inverse}if(elseIfs){exp+=",elseIfs: "+elseIfs}exp="{"+exp.slice(1)+"}"}return{exp:exp||"{}",source:source}}function generateFunction(self,func,block,escape){var source=[];markLine(func.pos,source);var functionConfigCode,idName;var id=func.id;var idString=id.string;if(idString in nativeCommands){escape=0}var idParts=id.parts;var i;if(idString==="elseif"){return{exp:"",source:[]}}if(block){var programNode=block.program;var inverse=programNode.inverse;var fnName,elseIfsName,inverseName;var elseIfs=[];var elseIf,functionValue,statement;var statements=programNode.statements;var thenStatements=[];for(i=0;i<statements.length;i++){statement=statements[i];if(statement.type==="expressionStatement"&&(functionValue=statement.value)&&functionValue.type==="function"&&functionValue.id.string==="elseif"){if(elseIf){elseIfs.push(elseIf)}elseIf={condition:functionValue.params[0],statements:[]}}else if(elseIf){elseIf.statements.push(statement)}else{thenStatements.push(statement)}}if(elseIf){elseIfs.push(elseIf)}fnName=genFunction(self,thenStatements);if(inverse){inverseName=genFunction(self,inverse)}if(elseIfs.length){var elseIfsVariable=[];for(i=0;i<elseIfs.length;i++){var elseIfStatement=elseIfs[i];var conditionName=genConditionFunction(self,elseIfStatement.condition);elseIfsVariable.push("{test: "+conditionName+",fn : "+genFunction(self,elseIfStatement.statements)+"}")}elseIfsName="["+elseIfsVariable.join(",")+"]"}functionConfigCode=genOptionFromFunction(self,func,escape,fnName,elseIfsName,inverseName);pushToArray(source,functionConfigCode.source)}var isModule=self.config.isModule;if(idString==="include"||idString==="parse"||idString==="extend"){if(func.params.length!==1){throw new Error("xtemplate: include/parse/extend can only has one parameter!")}}if(isModule){if(idString==="include"||idString==="parse"){func.params[0]={type:"raw",value:"re"+'quire("'+func.params[0].value+'")'}}}if(!functionConfigCode){functionConfigCode=genOptionFromFunction(self,func,escape,null,null,null);pushToArray(source,functionConfigCode.source)}if(!block){idName=guid(self,"callRet");source.push("var "+idName)}if(idString in nativeCommands){if(idString==="extend"){source.push('runtime.extendTplName = "'+func.params[0].value+'"');source.push("buffer = buffer.async(function(newBuffer){runtime.extendTplBuffer = newBuffer;});");if(isModule){source.push("runtime.extendTplFn = re"+'quire("'+func.params[0].value+'")')}}else if(idString==="include"){source.push("buffer = root."+(isModule?"includeModule":"include")+"(scope,"+functionConfigCode.exp+",buffer,tpl);")}else if(idString==="parse"){source.push("buffer = root."+(isModule?"includeModule":"include")+"(new scope.constructor(),"+functionConfigCode.exp+",buffer,tpl);")}else{source.push(substitute(CALL_NATIVE_COMMAND,{lhs:block?"buffer":idName,name:idString,option:functionConfigCode.exp}))}}else if(block){source.push(substitute(CALL_CUSTOM_COMMAND,{option:functionConfigCode.exp,idParts:compilerTools.convertIdPartsToRawAccessor(self,source,idParts).arr}))}else{source.push(substitute(id.depth?CALL_FUNCTION_DEPTH:CALL_FUNCTION,{lhs:idName,option:functionConfigCode.exp,idParts:compilerTools.convertIdPartsToRawAccessor(self,source,idParts).arr,depth:id.depth}))}return{exp:idName,source:source}}function AstToJSProcessor(config){this.functionDeclares=[];this.config=config;this.uuid=0}AstToJSProcessor.prototype={constructor:AstToJSProcessor,raw:function(raw){return{exp:raw.value}},arrayExpression:function(e){var list=e.list;var len=list.length;var r;var source=[];var exp=[];for(var i=0;i<len;i++){r=this[list[i].type](list[i]);pushToArray(source,r.source);exp.push(r.exp)}return{exp:"["+exp.join(",")+"]",source:source}},jsonExpression:function(e){var json=e.json;var len=json.length;var r;var source=[];var exp=[];for(var i=0;i<len;i++){var item=json[i];r=this[item[1].type](item[1]);pushToArray(source,r.source);exp.push(wrapByDoubleQuote(item[0])+": "+r.exp)}return{exp:"{"+exp.join(",")+"}",source:source}},conditionalOrExpression:opExpression,conditionalAndExpression:opExpression,relationalExpression:opExpression,equalityExpression:opExpression,additiveExpression:opExpression,multiplicativeExpression:opExpression,unaryExpression:function(e){var code=this[e.value.type](e.value);return{exp:e.unaryType+"("+code.exp+")",source:code.source}},string:function(e){return{exp:compilerTools.wrapBySingleQuote(compilerTools.escapeString(e.value,1)),source:[]}},number:function(e){return{exp:e.value,source:[]}},id:function(idNode){var source=[];var self=this;var loose=!self.config.strict;markLine(idNode.pos,source);if(compilerTools.isGlobalId(idNode)){return{exp:idNode.string,source:source}}var depth=idNode.depth;var idParts=idNode.parts;var idName=guid(self,"id");if(depth){source.push(substitute(loose?SCOPE_RESOLVE_LOOSE_DEPTH:SCOPE_RESOLVE_DEPTH,{lhs:idName,idParts:compilerTools.convertIdPartsToRawAccessor(self,source,idParts).arr,depth:depth}));return{exp:idName,source:source}}else{var part0=idParts[0];var remain;var remainParts;if(part0==="this"){remainParts=idParts.slice(1);source.push(substitute(ASSIGN_STATEMENT,{lhs:idName,value:remainParts.length?compilerTools.chainedVariableRead(self,source,remainParts,undefined,undefined,loose):"data"}));return{exp:idName,source:source}}else if(part0==="root"){remainParts=idParts.slice(1);remain=remainParts.join(".");if(remain){remain="."+remain}source.push(substitute(ASSIGN_STATEMENT,{lhs:idName,value:remain?compilerTools.chainedVariableRead(self,source,remainParts,true,undefined,loose):"scope.root.data",idParts:remain}));return{exp:idName,source:source}}else{source.push(substitute(ASSIGN_STATEMENT,{lhs:idName,value:compilerTools.chainedVariableRead(self,source,idParts,false,true,loose)}));return{exp:idName,source:source}}}},"function":function(func,escape){return generateFunction(this,func,false,escape)},blockStatement:function(block){return generateFunction(this,block.func,block)},expressionStatement:function(expressionStatement){var source=[];var escape=expressionStatement.escape;var code;var expression=expressionStatement.value;var type=expression.type;var expressionOrVariable;code=this[type](expression,escape);pushToArray(source,code.source);expressionOrVariable=code.exp;source.push(substitute(escape?BUFFER_WRITE_ESCAPED:BUFFER_WRITE,{value:expressionOrVariable}));return{exp:"",source:source}},contentStatement:function(contentStatement){return{exp:"",source:[substitute(BUFFER_APPEND,{value:compilerTools.wrapBySingleQuote(compilerTools.escapeString(contentStatement.value,0))})]}}};var compiler;var anonymousCount=0;compiler={parse:function(tplContent,name){return parser.parse(tplContent,name)},compileToStr:function(param){var func=compiler.compileToJson(param);return substitute(FUNC,{functionName:param.functionName||"",params:func.params.join(","),body:func.source})},compileToJson:function(param){var name=param.name=param.name||"xtemplate"+ ++anonymousCount;var root=compiler.parse(param.content,name);return genTopFunction(new AstToJSProcessor(param),root.statements)},compile:function(tplContent,name,config){var code=compiler.compileToJson(util.merge(config,{content:tplContent,name:name}));return Function.apply(null,code.params.concat(code.source+substitute(SOURCE_URL,{name:name})))}};module.exports=compiler},{"./compiler/ast":3,"./compiler/parser":4,"./compiler/tools":5,"./runtime":6}],3:[function(require,module,exports){var ast={};function sameArray(a1,a2){var l1=a1.length,l2=a2.length;if(l1!==l2){return 0}for(var i=0;i<l1;i++){if(a1[i]!==a2[i]){return 0}}return 1}ast.ProgramNode=function(pos,statements,inverse){var self=this;self.pos=pos;self.statements=statements;self.inverse=inverse};ast.ProgramNode.prototype.type="program";ast.BlockStatement=function(pos,func,program,close,escape){var closeParts=close.parts,self=this,e;if(!sameArray(func.id.parts,closeParts)){e="Syntax error at line "+pos.line+", col "+pos.col+":\n"+"expect {{/"+func.id.parts+"}} not {{/"+closeParts+"}}";throw new Error(e)}self.escape=escape;self.pos=pos;self.func=func;self.program=program};ast.BlockStatement.prototype.type="blockStatement";ast.ExpressionStatement=function(pos,expression,escape){var self=this;self.pos=pos;self.value=expression;self.escape=escape};ast.ExpressionStatement.prototype.type="expressionStatement";ast.ContentStatement=function(pos,value){var self=this;self.pos=pos;self.value=value};ast.ContentStatement.prototype.type="contentStatement";ast.UnaryExpression=function(unaryType,v){this.value=v;this.unaryType=unaryType};ast.Function=function(pos,id,params,hash){var self=this;self.pos=pos;self.id=id;self.params=params;self.hash=hash};ast.Function.prototype.type="function";ast.UnaryExpression.prototype.type="unaryExpression";ast.MultiplicativeExpression=function(op1,opType,op2){var self=this;self.op1=op1;self.opType=opType;self.op2=op2};ast.MultiplicativeExpression.prototype.type="multiplicativeExpression";ast.AdditiveExpression=function(op1,opType,op2){var self=this;self.op1=op1;self.opType=opType;self.op2=op2};ast.AdditiveExpression.prototype.type="additiveExpression";ast.RelationalExpression=function(op1,opType,op2){var self=this;self.op1=op1;self.opType=opType;self.op2=op2};ast.RelationalExpression.prototype.type="relationalExpression";ast.EqualityExpression=function(op1,opType,op2){var self=this;self.op1=op1;self.opType=opType;self.op2=op2};ast.EqualityExpression.prototype.type="equalityExpression";ast.ConditionalAndExpression=function(op1,op2){var self=this;self.op1=op1;self.op2=op2;self.opType="&&"};ast.ConditionalAndExpression.prototype.type="conditionalAndExpression";ast.ConditionalOrExpression=function(op1,op2){var self=this;self.op1=op1;self.op2=op2;self.opType="||"};ast.ConditionalOrExpression.prototype.type="conditionalOrExpression";ast.String=function(pos,value){var self=this;self.pos=pos;self.value=value};ast.String.prototype.type="string";ast.Number=function(pos,value){var self=this;self.pos=pos;self.value=value};ast.Number.prototype.type="number";ast.Hash=function(pos){var self=this;var value={};self.pos=pos;self.value=value};ast.Hash.prototype.type="hash";ast.ArrayExpression=function(list){this.list=list};ast.ArrayExpression.prototype.type="arrayExpression";ast.JsonExpression=function(json){this.json=json};ast.JsonExpression.prototype.type="jsonExpression";ast.Id=function(pos,raw){var self=this;var parts=[];var depth=0;self.pos=pos;for(var i=0,l=raw.length;i<l;i++){var p=raw[i];if(p===".."){depth++}else{parts.push(p)}}self.parts=parts;self.string=parts.join(".");self.depth=depth};ast.Id.prototype.type="id";module.exports=ast},{}],4:[function(require,module,exports){var parser=function(undefined){var parser={};var GrammarConst={SHIFT_TYPE:1,REDUCE_TYPE:2,ACCEPT_TYPE:0,TYPE_INDEX:0,PRODUCTION_INDEX:1,TO_INDEX:2};function peekStack(stack,n){n=n||1;return stack[stack.length-n]}function mix(to,from){for(var f in from){to[f]=from[f]}}function isArray(obj){return"[object Array]"===Object.prototype.toString.call(obj)}function each(object,fn,context){if(object){var key,val,length,i=0;context=context||null;if(!isArray(object)){for(key in object){if(fn.call(context,object[key],key,object)===false){break}}}else{length=object.length;for(val=object[0];i<length;val=object[++i]){if(fn.call(context,val,i,object)===false){break}}}}}function inArray(item,arr){for(var i=0,l=arr.length;i<l;i++){if(arr[i]===item){return true}}return false}var Lexer=function Lexer(cfg){var self=this;self.rules=[];mix(self,cfg);self.resetInput(self.input)};Lexer.prototype={resetInput:function(input){mix(this,{input:input,matched:"",stateStack:[Lexer.STATIC.INITIAL],match:"",text:"",firstLine:1,lineNumber:1,lastLine:1,firstColumn:1,lastColumn:1})},getCurrentRules:function(){var self=this,currentState=self.stateStack[self.stateStack.length-1],rules=[];if(self.mapState){currentState=self.mapState(currentState)}each(self.rules,function(r){var state=r.state||r[3];if(!state){if(currentState===Lexer.STATIC.INITIAL){rules.push(r)}}else if(inArray(currentState,state)){rules.push(r)}});return rules},pushState:function(state){this.stateStack.push(state)},popState:function(num){num=num||1;var ret;while(num--){ret=this.stateStack.pop()}return ret},showDebugInfo:function(){var self=this,DEBUG_CONTEXT_LIMIT=Lexer.STATIC.DEBUG_CONTEXT_LIMIT,matched=self.matched,match=self.match,input=self.input;matched=matched.slice(0,matched.length-match.length);var past=(matched.length>DEBUG_CONTEXT_LIMIT?"...":"")+matched.slice(0-DEBUG_CONTEXT_LIMIT).replace(/\n/g," "),next=match+input;next=next.slice(0,DEBUG_CONTEXT_LIMIT).replace(/\n/g," ")+(next.length>DEBUG_CONTEXT_LIMIT?"...":"");return past+next+"\n"+new Array(past.length+1).join("-")+"^"},mapSymbol:function mapSymbolForCodeGen(t){return this.symbolMap[t]},mapReverseSymbol:function(rs){var self=this,symbolMap=self.symbolMap,i,reverseSymbolMap=self.reverseSymbolMap;if(!reverseSymbolMap&&symbolMap){reverseSymbolMap=self.reverseSymbolMap={};for(i in symbolMap){reverseSymbolMap[symbolMap[i]]=i}}if(reverseSymbolMap){return reverseSymbolMap[rs]}else{return rs}},lex:function(){var self=this,input=self.input,i,rule,m,ret,lines,rules=self.getCurrentRules();self.match=self.text="";if(!input){return self.mapSymbol(Lexer.STATIC.END_TAG)}for(i=0;i<rules.length;i++){rule=rules[i];var regexp=rule.regexp||rule[1],token=rule.token||rule[0],action=rule.action||rule[2]||undefined;if(m=input.match(regexp)){lines=m[0].match(/\n.*/g);if(lines){self.lineNumber+=lines.length}mix(self,{firstLine:self.lastLine,lastLine:self.lineNumber,firstColumn:self.lastColumn,lastColumn:lines?lines[lines.length-1].length-1:self.lastColumn+m[0].length});var match;match=self.match=m[0];self.matches=m;self.text=match;self.matched+=match;ret=action&&action.call(self);if(ret===undefined){ret=token}else{ret=self.mapSymbol(ret)}input=input.slice(match.length);self.input=input;if(ret){return ret}else{return self.lex()}}}}};Lexer.STATIC={INITIAL:"I",DEBUG_CONTEXT_LIMIT:20,END_TAG:"$EOF"};var lexer=new Lexer({rules:[[0,/^[\s\S]*?(?={{)/,function(){var self=this,text=self.text,m,n=0;if(m=text.match(/\\+$/)){n=m[0].length}if(n%2){self.pushState("et");text=text.slice(0,-1)}else{self.pushState("t")}if(n){text=text.replace(/\\+$/g,function(m){return new Array(m.length/2+1).join("\\")})}self.text=text;return"CONTENT"}],["b",/^[\s\S]+/,0],["b",/^[\s\S]{2,}?(?:(?={{)|$)/,function popState(){this.popState()},["et"]],["c",/^{{{?(?:#|@)/,function(){var self=this,text=self.text;if(text.length===4){self.pushState("p")}else{self.pushState("e")}},["t"]],["d",/^{{{?\//,function(){var self=this,text=self.text;if(text.length===4){self.pushState("p")}else{self.pushState("e")}},["t"]],["e",/^{{\s*else\s*}}/,function popState(){this.popState()},["t"]],[0,/^{{![\s\S]*?}}/,function popState(){this.popState()},["t"]],["b",/^{{%([\s\S]*?)%}}/,function(){this.text=this.matches[1]||"";this.popState()},["t"]],["f",/^{{{?/,function(){var self=this,text=self.text;if(text.length===3){self.pushState("p")}else{self.pushState("e")}},["t"]],[0,/^\s+/,0,["p","e"]],["g",/^,/,0,["p","e"]],["h",/^}}}/,function(){this.popState(2)},["p"]],["h",/^}}/,function(){this.popState(2)},["e"]],["i",/^\(/,0,["p","e"]],["j",/^\)/,0,["p","e"]],["k",/^\|\|/,0,["p","e"]],["l",/^&&/,0,["p","e"]],["m",/^===/,0,["p","e"]],["n",/^!==/,0,["p","e"]],["o",/^>=/,0,["p","e"]],["p",/^<=/,0,["p","e"]],["q",/^>/,0,["p","e"]],["r",/^</,0,["p","e"]],["s",/^\+/,0,["p","e"]],["t",/^-/,0,["p","e"]],["u",/^\*/,0,["p","e"]],["v",/^\//,0,["p","e"]],["w",/^%/,0,["p","e"]],["x",/^!/,0,["p","e"]],["y",/^"(\\[\s\S]|[^\\"\n])*"/,function(){this.text=this.text.slice(1,-1).replace(/\\"/g,'"')},["p","e"]],["y",/^'(\\[\s\S]|[^\\'\n])*'/,function(){this.text=this.text.slice(1,-1).replace(/\\'/g,"'")},["p","e"]],["z",/^\d+(?:\.\d+)?(?:e-?\d+)?/i,0,["p","e"]],["aa",/^=/,0,["p","e"]],["ab",/^\.\./,function(){this.pushState("ws")},["p","e"]],["ac",/^\//,function popState(){this.popState()},["ws"]],["ac",/^\./,0,["p","e"]],["ad",/^\[/,0,["p","e"]],["ae",/^\]/,0,["p","e"]],["af",/^\{/,0,["p","e"]],["ag",/^\:/,0,["p","e"]],["ah",/^\}/,0,["p","e"]],["ab",/^[a-zA-Z_$][a-zA-Z0-9_$]*/,0,["p","e"]]]});parser.lexer=lexer;lexer.symbolMap={$EOF:"a",CONTENT:"b",OPEN_BLOCK:"c",OPEN_CLOSE_BLOCK:"d",INVERSE:"e",OPEN_TPL:"f",COMMA:"g",CLOSE:"h",L_PAREN:"i",R_PAREN:"j",OR:"k",AND:"l",LOGIC_EQUALS:"m",LOGIC_NOT_EQUALS:"n",GE:"o",LE:"p",GT:"q",LT:"r",PLUS:"s",MINUS:"t",MULTIPLY:"u",DIVIDE:"v",MODULUS:"w",NOT:"x",STRING:"y",NUMBER:"z",EQUALS:"aa",ID:"ab",SEP:"ac",L_BRACKET:"ad",R_BRACKET:"ae",L_BRACE:"af",COLON:"ag",R_BRACE:"ah",$START:"ai",program:"aj",statements:"ak",statement:"al","function":"am",id:"an",expression:"ao",params:"ap",hash:"aq",param:"ar",conditionalOrExpression:"as",listExpression:"at",jsonExpression:"au",jsonPart:"av",conditionalAndExpression:"aw",equalityExpression:"ax",relationalExpression:"ay",additiveExpression:"az",multiplicativeExpression:"ba",unaryExpression:"bb",primaryExpression:"bc",hashSegment:"bd",idSegments:"be"};parser.productions=[["ai",["aj"]],["aj",["ak","e","ak"],function(){return new this.yy.ProgramNode({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1,this.$3)}],["aj",["ak"],function(){return new this.yy.ProgramNode({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1)}],["ak",["al"],function(){return[this.$1]}],["ak",["ak","al"],function(){this.$1.push(this.$2)}],["al",["c","am","h","aj","d","an","h"],function(){return new this.yy.BlockStatement({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$2,this.$4,this.$6,this.$1.length!==4)}],["al",["f","ao","h"],function(){return new this.yy.ExpressionStatement({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$2,this.$1.length!==3)}],["al",["b"],function(){return new this.yy.ContentStatement({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1)}],["am",["an","i","ap","g","aq","j"],function(){return new this.yy.Function({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1,this.$3,this.$5)}],["am",["an","i","ap","j"],function(){return new this.yy.Function({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1,this.$3)}],["am",["an","i","aq","j"],function(){return new this.yy.Function({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1,null,this.$3)}],["am",["an","i","j"],function(){return new this.yy.Function({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1)}],["ap",["ap","g","ar"],function(){this.$1.push(this.$3)}],["ap",["ar"],function(){return[this.$1]}],["ar",["ao"]],["ao",["as"]],["ao",["ad","at","ae"],function(){return new this.yy.ArrayExpression(this.$2)}],["ao",["af","au","ah"],function(){return new this.yy.JsonExpression(this.$2)}],["av",["y","ag","ao"],function(){return[this.$1,this.$3]}],["av",["ab","ag","ao"],function(){return[this.$1,this.$3]}],["au",["av"],function(){return[this.$1]}],["au",["au","g","av"],function(){this.$1.push(this.$3)}],["at",["ao"],function(){return[this.$1]}],["at",["at","g","ao"],function(){this.$1.push(this.$3)}],["as",["aw"]],["as",["as","k","aw"],function(){return new this.yy.ConditionalOrExpression(this.$1,this.$3)}],["aw",["ax"]],["aw",["aw","l","ax"],function(){return new this.yy.ConditionalAndExpression(this.$1,this.$3)}],["ax",["ay"]],["ax",["ax","m","ay"],function(){return new this.yy.EqualityExpression(this.$1,"===",this.$3)}],["ax",["ax","n","ay"],function(){return new this.yy.EqualityExpression(this.$1,"!==",this.$3)}],["ay",["az"]],["ay",["ay","r","az"],function(){return new this.yy.RelationalExpression(this.$1,"<",this.$3)}],["ay",["ay","q","az"],function(){return new this.yy.RelationalExpression(this.$1,">",this.$3)}],["ay",["ay","p","az"],function(){return new this.yy.RelationalExpression(this.$1,"<=",this.$3)}],["ay",["ay","o","az"],function(){return new this.yy.RelationalExpression(this.$1,">=",this.$3)}],["az",["ba"]],["az",["az","s","ba"],function(){return new this.yy.AdditiveExpression(this.$1,"+",this.$3)}],["az",["az","t","ba"],function(){return new this.yy.AdditiveExpression(this.$1,"-",this.$3)}],["ba",["bb"]],["ba",["ba","u","bb"],function(){return new this.yy.MultiplicativeExpression(this.$1,"*",this.$3)}],["ba",["ba","v","bb"],function(){return new this.yy.MultiplicativeExpression(this.$1,"/",this.$3)}],["ba",["ba","w","bb"],function(){return new this.yy.MultiplicativeExpression(this.$1,"%",this.$3)}],["bb",["x","bb"],function(){return new this.yy.UnaryExpression(this.$1,this.$2)}],["bb",["t","bb"],function(){return new this.yy.UnaryExpression(this.$1,this.$2)}],["bb",["bc"]],["bc",["am"]],["bc",["y"],function(){return new this.yy.String({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1)}],["bc",["z"],function(){return new this.yy.Number({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1)}],["bc",["an"]],["bc",["i","ao","j"],function(){return this.$2}],["aq",["aq","g","bd"],function(){var hash=this.$1,seg=this.$3;hash.value[seg[0]]=seg[1]}],["aq",["bd"],function(){var hash=new this.yy.Hash({line:this.lexer.firstLine,col:this.lexer.firstColumn}),$1=this.$1;hash.value[$1[0]]=$1[1];return hash}],["bd",["ab","aa","ao"],function(){return[this.$1,this.$3]}],["an",["be"],function(){return new this.yy.Id({line:this.lexer.firstLine,col:this.lexer.firstColumn},this.$1)}],["be",["be","ac","ab"],function(){this.$1.push(this.$3)}],["be",["be","ad","ao","ae"],function(){this.$1.push(this.$3)}],["be",["ab"],function(){return[this.$1]}]];parser.table={gotos:{0:{aj:4,ak:5,al:6},2:{am:8,an:9,be:10},3:{am:18,an:19,ao:20,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},5:{al:30},11:{am:18,an:19,ao:35,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},12:{am:18,an:19,bb:36,bc:28,be:10},13:{am:18,an:19,bb:37,bc:28,be:10},16:{am:18,an:19,ao:38,as:21,at:39,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},17:{au:42,av:43},29:{ak:58,al:6},31:{aj:59,ak:5,al:6},32:{am:18,an:19,ao:62,ap:63,aq:64,ar:65,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,bd:66,be:10},34:{am:18,an:19,ao:68,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},45:{am:18,an:19,aw:76,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},46:{am:18,an:19,ax:77,ay:24,az:25,ba:26,bb:27,bc:28,be:10},47:{am:18,an:19,ay:78,az:25,ba:26,bb:27,bc:28,be:10},48:{am:18,an:19,ay:79,az:25,ba:26,bb:27,bc:28,be:10},49:{am:18,an:19,az:80,ba:26,bb:27,bc:28,be:10},50:{am:18,an:19,az:81,ba:26,bb:27,bc:28,be:10},51:{am:18,an:19,az:82,ba:26,bb:27,bc:28,be:10},52:{am:18,an:19,az:83,ba:26,bb:27,bc:28,be:10},53:{am:18,an:19,ba:84,bb:27,bc:28,be:10},54:{am:18,an:19,ba:85,bb:27,bc:28,be:10},55:{am:18,an:19,bb:86,bc:28,be:10},56:{am:18,an:19,bb:87,bc:28,be:10},57:{am:18,an:19,bb:88,bc:28,be:10},58:{al:30},70:{am:18,an:19,ao:96,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},72:{am:18,an:19,ao:97,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},73:{am:18,an:19,ao:98,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},74:{av:99},89:{an:100,be:10},90:{am:18,an:19,ao:101,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,be:10},91:{am:18,an:19,ao:62,aq:102,ar:103,as:21,aw:22,ax:23,ay:24,az:25,ba:26,bb:27,bc:28,bd:66,be:10},93:{bd:105}},action:{0:{b:[1,undefined,1],c:[1,undefined,2],f:[1,undefined,3]},1:{a:[2,7],e:[2,7],c:[2,7],f:[2,7],b:[2,7],d:[2,7]},2:{ab:[1,undefined,7]},3:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},4:{a:[0]},5:{a:[2,2],d:[2,2],b:[1,undefined,1],c:[1,undefined,2],e:[1,undefined,29],f:[1,undefined,3]},6:{a:[2,3],e:[2,3],c:[2,3],f:[2,3],b:[2,3],d:[2,3]},7:{i:[2,57],ac:[2,57],ad:[2,57],h:[2,57],k:[2,57],l:[2,57],m:[2,57],n:[2,57],o:[2,57],p:[2,57],q:[2,57],r:[2,57],s:[2,57],t:[2,57],u:[2,57],v:[2,57],w:[2,57],j:[2,57],ae:[2,57],g:[2,57],ah:[2,57]},8:{h:[1,undefined,31]},9:{i:[1,undefined,32]},10:{i:[2,54],h:[2,54],k:[2,54],l:[2,54],m:[2,54],n:[2,54],o:[2,54],p:[2,54],q:[2,54],r:[2,54],s:[2,54],t:[2,54],u:[2,54],v:[2,54],w:[2,54],j:[2,54],ae:[2,54],g:[2,54],ah:[2,54],ac:[1,undefined,33],ad:[1,undefined,34]},11:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},12:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},13:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},14:{h:[2,47],k:[2,47],l:[2,47],m:[2,47],n:[2,47],o:[2,47],p:[2,47],q:[2,47],r:[2,47],s:[2,47],t:[2,47],u:[2,47],v:[2,47],w:[2,47],j:[2,47],ae:[2,47],g:[2,47],ah:[2,47]},15:{h:[2,48],k:[2,48],l:[2,48],m:[2,48],n:[2,48],o:[2,48],p:[2,48],q:[2,48],r:[2,48],s:[2,48],t:[2,48],u:[2,48],v:[2,48],w:[2,48],j:[2,48],ae:[2,48],g:[2,48],ah:[2,48]},16:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},17:{y:[1,undefined,40],ab:[1,undefined,41]},18:{h:[2,46],k:[2,46],l:[2,46],m:[2,46],n:[2,46],o:[2,46],p:[2,46],q:[2,46],r:[2,46],s:[2,46],t:[2,46],u:[2,46],v:[2,46],w:[2,46],j:[2,46],ae:[2,46],g:[2,46],ah:[2,46]},19:{h:[2,49],k:[2,49],l:[2,49],m:[2,49],n:[2,49],o:[2,49],p:[2,49],q:[2,49],r:[2,49],s:[2,49],t:[2,49],u:[2,49],v:[2,49],w:[2,49],j:[2,49],ae:[2,49],g:[2,49],ah:[2,49],i:[1,undefined,32]},20:{h:[1,undefined,44]},21:{h:[2,15],j:[2,15],ae:[2,15],g:[2,15],ah:[2,15],k:[1,undefined,45]},22:{h:[2,24],k:[2,24],j:[2,24],ae:[2,24],g:[2,24],ah:[2,24],l:[1,undefined,46]},23:{h:[2,26],k:[2,26],l:[2,26],j:[2,26],ae:[2,26],g:[2,26],ah:[2,26],m:[1,undefined,47],n:[1,undefined,48]},24:{h:[2,28],k:[2,28],l:[2,28],m:[2,28],n:[2,28],j:[2,28],ae:[2,28],g:[2,28],ah:[2,28],o:[1,undefined,49],p:[1,undefined,50],q:[1,undefined,51],r:[1,undefined,52]},25:{h:[2,31],k:[2,31],l:[2,31],m:[2,31],n:[2,31],o:[2,31],p:[2,31],q:[2,31],r:[2,31],j:[2,31],ae:[2,31],g:[2,31],ah:[2,31],s:[1,undefined,53],t:[1,undefined,54]},26:{h:[2,36],k:[2,36],l:[2,36],m:[2,36],n:[2,36],o:[2,36],p:[2,36],q:[2,36],r:[2,36],s:[2,36],t:[2,36],j:[2,36],ae:[2,36],g:[2,36],ah:[2,36],u:[1,undefined,55],v:[1,undefined,56],w:[1,undefined,57]},27:{h:[2,39],k:[2,39],l:[2,39],m:[2,39],n:[2,39],o:[2,39],p:[2,39],q:[2,39],r:[2,39],s:[2,39],t:[2,39],u:[2,39],v:[2,39],w:[2,39],j:[2,39],ae:[2,39],g:[2,39],ah:[2,39]},28:{h:[2,45],k:[2,45],l:[2,45],m:[2,45],n:[2,45],o:[2,45],p:[2,45],q:[2,45],r:[2,45],s:[2,45],t:[2,45],u:[2,45],v:[2,45],w:[2,45],j:[2,45],ae:[2,45],g:[2,45],ah:[2,45]},29:{b:[1,undefined,1],c:[1,undefined,2],f:[1,undefined,3]},30:{a:[2,4],e:[2,4],c:[2,4],f:[2,4],b:[2,4],d:[2,4]},31:{b:[1,undefined,1],c:[1,undefined,2],f:[1,undefined,3]},32:{i:[1,undefined,11],j:[1,undefined,60],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,61],ad:[1,undefined,16],af:[1,undefined,17]},33:{ab:[1,undefined,67]},34:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},35:{j:[1,undefined,69]},36:{h:[2,44],k:[2,44],l:[2,44],m:[2,44],n:[2,44],o:[2,44],p:[2,44],q:[2,44],r:[2,44],s:[2,44],t:[2,44],u:[2,44],v:[2,44],w:[2,44],j:[2,44],ae:[2,44],g:[2,44],ah:[2,44]},37:{h:[2,43],k:[2,43],l:[2,43],m:[2,43],n:[2,43],o:[2,43],p:[2,43],q:[2,43],r:[2,43],s:[2,43],t:[2,43],u:[2,43],v:[2,43],w:[2,43],j:[2,43],ae:[2,43],g:[2,43],ah:[2,43]},38:{ae:[2,22],g:[2,22]},39:{g:[1,undefined,70],ae:[1,undefined,71]},40:{ag:[1,undefined,72]},41:{ag:[1,undefined,73]},42:{g:[1,undefined,74],ah:[1,undefined,75]},43:{ah:[2,20],g:[2,20]},44:{a:[2,6],e:[2,6],c:[2,6],f:[2,6],b:[2,6],d:[2,6]},45:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},46:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},47:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},48:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},49:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},50:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},51:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},52:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},53:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},54:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},55:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},56:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},57:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7]},58:{a:[2,1],d:[2,1],b:[1,undefined,1],c:[1,undefined,2],f:[1,undefined,3]},59:{d:[1,undefined,89]},60:{h:[2,11],k:[2,11],l:[2,11],m:[2,11],n:[2,11],o:[2,11],p:[2,11],q:[2,11],r:[2,11],s:[2,11],t:[2,11],u:[2,11],v:[2,11],w:[2,11],j:[2,11],ae:[2,11],g:[2,11],ah:[2,11]},61:{g:[2,57],i:[2,57],j:[2,57],k:[2,57],l:[2,57],m:[2,57],n:[2,57],o:[2,57],p:[2,57],q:[2,57],r:[2,57],s:[2,57],t:[2,57],u:[2,57],v:[2,57],w:[2,57],ac:[2,57],ad:[2,57],aa:[1,undefined,90]},62:{g:[2,14],j:[2,14]},63:{g:[1,undefined,91],j:[1,undefined,92]},64:{g:[1,undefined,93],j:[1,undefined,94]},65:{g:[2,13],j:[2,13]},66:{j:[2,52],g:[2,52]},67:{i:[2,55],ac:[2,55],ad:[2,55],h:[2,55],k:[2,55],l:[2,55],m:[2,55],n:[2,55],o:[2,55],p:[2,55],q:[2,55],r:[2,55],s:[2,55],t:[2,55],u:[2,55],v:[2,55],w:[2,55],j:[2,55],ae:[2,55],g:[2,55],ah:[2,55]},68:{ae:[1,undefined,95]},69:{h:[2,50],k:[2,50],l:[2,50],m:[2,50],n:[2,50],o:[2,50],p:[2,50],q:[2,50],r:[2,50],s:[2,50],t:[2,50],u:[2,50],v:[2,50],w:[2,50],j:[2,50],ae:[2,50],g:[2,50],ah:[2,50]},70:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},71:{h:[2,16],j:[2,16],ae:[2,16],g:[2,16],ah:[2,16]},72:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},73:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},74:{y:[1,undefined,40],ab:[1,undefined,41]},75:{h:[2,17],j:[2,17],ae:[2,17],g:[2,17],ah:[2,17]},76:{h:[2,25],k:[2,25],j:[2,25],ae:[2,25],g:[2,25],ah:[2,25],l:[1,undefined,46]},77:{h:[2,27],k:[2,27],l:[2,27],j:[2,27],ae:[2,27],g:[2,27],ah:[2,27],m:[1,undefined,47],n:[1,undefined,48]},78:{h:[2,29],k:[2,29],l:[2,29],m:[2,29],n:[2,29],j:[2,29],ae:[2,29],g:[2,29],ah:[2,29],o:[1,undefined,49],p:[1,undefined,50],q:[1,undefined,51],r:[1,undefined,52]},79:{h:[2,30],k:[2,30],l:[2,30],m:[2,30],n:[2,30],j:[2,30],ae:[2,30],g:[2,30],ah:[2,30],o:[1,undefined,49],p:[1,undefined,50],q:[1,undefined,51],r:[1,undefined,52]},80:{h:[2,35],k:[2,35],l:[2,35],m:[2,35],n:[2,35],o:[2,35],p:[2,35],q:[2,35],r:[2,35],j:[2,35],ae:[2,35],g:[2,35],ah:[2,35],s:[1,undefined,53],t:[1,undefined,54]},81:{h:[2,34],k:[2,34],l:[2,34],m:[2,34],n:[2,34],o:[2,34],p:[2,34],q:[2,34],r:[2,34],j:[2,34],ae:[2,34],g:[2,34],ah:[2,34],s:[1,undefined,53],t:[1,undefined,54]},82:{h:[2,33],k:[2,33],l:[2,33],m:[2,33],n:[2,33],o:[2,33],p:[2,33],q:[2,33],r:[2,33],j:[2,33],ae:[2,33],g:[2,33],ah:[2,33],s:[1,undefined,53],t:[1,undefined,54]},83:{h:[2,32],k:[2,32],l:[2,32],m:[2,32],n:[2,32],o:[2,32],p:[2,32],q:[2,32],r:[2,32],j:[2,32],ae:[2,32],g:[2,32],ah:[2,32],s:[1,undefined,53],t:[1,undefined,54]},84:{h:[2,37],k:[2,37],l:[2,37],m:[2,37],n:[2,37],o:[2,37],p:[2,37],q:[2,37],r:[2,37],s:[2,37],t:[2,37],j:[2,37],ae:[2,37],g:[2,37],ah:[2,37],u:[1,undefined,55],v:[1,undefined,56],w:[1,undefined,57]},85:{h:[2,38],k:[2,38],l:[2,38],m:[2,38],n:[2,38],o:[2,38],p:[2,38],q:[2,38],r:[2,38],s:[2,38],t:[2,38],j:[2,38],ae:[2,38],g:[2,38],ah:[2,38],u:[1,undefined,55],v:[1,undefined,56],w:[1,undefined,57]},86:{h:[2,40],k:[2,40],l:[2,40],m:[2,40],n:[2,40],o:[2,40],p:[2,40],q:[2,40],r:[2,40],s:[2,40],t:[2,40],u:[2,40],v:[2,40],w:[2,40],j:[2,40],ae:[2,40],g:[2,40],ah:[2,40]},87:{h:[2,41],k:[2,41],l:[2,41],m:[2,41],n:[2,41],o:[2,41],p:[2,41],q:[2,41],r:[2,41],s:[2,41],t:[2,41],u:[2,41],v:[2,41],w:[2,41],j:[2,41],ae:[2,41],g:[2,41],ah:[2,41]},88:{h:[2,42],k:[2,42],l:[2,42],m:[2,42],n:[2,42],o:[2,42],p:[2,42],q:[2,42],r:[2,42],s:[2,42],t:[2,42],u:[2,42],v:[2,42],w:[2,42],j:[2,42],ae:[2,42],g:[2,42],ah:[2,42]},89:{ab:[1,undefined,7]},90:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,7],ad:[1,undefined,16],af:[1,undefined,17]},91:{i:[1,undefined,11],t:[1,undefined,12],x:[1,undefined,13],y:[1,undefined,14],z:[1,undefined,15],ab:[1,undefined,61],ad:[1,undefined,16],af:[1,undefined,17]},92:{h:[2,9],k:[2,9],l:[2,9],m:[2,9],n:[2,9],o:[2,9],p:[2,9],q:[2,9],r:[2,9],s:[2,9],t:[2,9],u:[2,9],v:[2,9],w:[2,9],j:[2,9],ae:[2,9],g:[2,9],ah:[2,9]},93:{ab:[1,undefined,104]},94:{h:[2,10],k:[2,10],l:[2,10],m:[2,10],n:[2,10],o:[2,10],p:[2,10],q:[2,10],r:[2,10],s:[2,10],t:[2,10],u:[2,10],v:[2,10],w:[2,10],j:[2,10],ae:[2,10],g:[2,10],ah:[2,10]},95:{i:[2,56],ac:[2,56],ad:[2,56],h:[2,56],k:[2,56],l:[2,56],m:[2,56],n:[2,56],o:[2,56],p:[2,56],q:[2,56],r:[2,56],s:[2,56],t:[2,56],u:[2,56],v:[2,56],w:[2,56],j:[2,56],ae:[2,56],g:[2,56],ah:[2,56]},96:{ae:[2,23],g:[2,23]},97:{ah:[2,18],g:[2,18]},98:{ah:[2,19],g:[2,19]},99:{ah:[2,21],g:[2,21]},100:{h:[1,undefined,106]},101:{j:[2,53],g:[2,53]},102:{g:[1,undefined,93],j:[1,undefined,107]},103:{g:[2,12],j:[2,12]},104:{aa:[1,undefined,90]},105:{j:[2,51],g:[2,51]},106:{a:[2,5],e:[2,5],c:[2,5],f:[2,5],b:[2,5],d:[2,5]},107:{h:[2,8],k:[2,8],l:[2,8],m:[2,8],n:[2,8],o:[2,8],p:[2,8],q:[2,8],r:[2,8],s:[2,8],t:[2,8],u:[2,8],v:[2,8],w:[2,8],j:[2,8],ae:[2,8],g:[2,8],ah:[2,8]}}}; | |
parser.parse=function parse(input,filename){var state,symbol,ret,action,$$;var self=this;var lexer=self.lexer;var table=self.table;var gotos=table.gotos;var tableAction=table.action;var productions=self.productions;var prefix=filename?"in file: "+filename+" ":"";var valueStack=[];var stateStack=[0];var symbolStack=[];lexer.resetInput(input);while(1){state=peekStack(stateStack);if(!symbol){symbol=lexer.lex()}if(symbol){action=tableAction[state]&&tableAction[state][symbol]}else{action=null}if(!action){var expected=[];var error;if(tableAction[state]){each(tableAction[state],function(v,symbolForState){action=v[GrammarConst.TYPE_INDEX];var map=[];map[GrammarConst.SHIFT_TYPE]="shift";map[GrammarConst.REDUCE_TYPE]="reduce";map[GrammarConst.ACCEPT_TYPE]="accept";expected.push(map[action]+":"+self.lexer.mapReverseSymbol(symbolForState))})}error=prefix+"syntax error at line "+lexer.lineNumber+":\n"+lexer.showDebugInfo()+"\n"+"expect "+expected.join(", ");throw new Error(error)}switch(action[GrammarConst.TYPE_INDEX]){case GrammarConst.SHIFT_TYPE:symbolStack.push(symbol);valueStack.push(lexer.text);stateStack.push(action[GrammarConst.TO_INDEX]);symbol=null;break;case GrammarConst.REDUCE_TYPE:var production=productions[action[GrammarConst.PRODUCTION_INDEX]];var reducedSymbol=production.symbol||production[0];var reducedAction=production.action||production[2];var reducedRhs=production.rhs||production[1];var len=reducedRhs.length;$$=peekStack(valueStack,len);ret=undefined;self.$$=$$;for(var i=0;i<len;i++){self["$"+(len-i)]=peekStack(valueStack,i+1)}if(reducedAction){ret=reducedAction.call(self)}if(ret!==undefined){$$=ret}else{$$=self.$$}var reverseIndex=len*-1;stateStack.splice(reverseIndex,len);valueStack.splice(reverseIndex,len);symbolStack.splice(reverseIndex,len);symbolStack.push(reducedSymbol);valueStack.push($$);var newState=gotos[peekStack(stateStack)][reducedSymbol];stateStack.push(newState);break;case GrammarConst.ACCEPT_TYPE:return $$}}};return parser}();if(typeof module!=="undefined"){module.exports=parser}},{}],5:[function(require,module,exports){var doubleReg=/\\*"/g;var singleReg=/\\*'/g;var arrayPush=[].push;var globals={};globals["undefined"]=globals["null"]=globals["true"]=globals["false"]=1;function genStackJudge(parts,data,count){var part0=parts[0];if(parts.length===1){return"("+data+part0+")"}var variable="t"+count;return"(("+variable+"="+data+part0+") != null?"+genStackJudge(parts.slice(1),variable,++count)+":"+variable+")"}var tools=module.exports={isGlobalId:function(node){if(globals[node.string]){return 1}return 0},chainedVariableRead:function(self,source,idParts,root,resolveUp,loose){var strs=tools.convertIdPartsToRawAccessor(self,source,idParts);var part0=strs.parts[0];var parts=strs.parts;var scope="";if(root){scope="scope.root."}var affix=scope+"affix";var data=scope+"data";var ret=["(","(t=("+affix+part0+")) !== undefined ? ",idParts.length>1?affix+strs.str:"t",":"];if(resolveUp){ret=ret.concat(["(","(t = "+data+part0+") !== undefined ? ",idParts.length>1?loose?genStackJudge(parts.slice(1),"t",0):data+strs.str:"t"," :",loose?"scope.resolveLooseUp("+strs.arr+")":"scope.resolveUp("+strs.arr+")",")"])}else{ret.push(loose?genStackJudge(parts,data,0):data+strs.str)}ret.push(")");return ret.join("")},convertIdPartsToRawAccessor:function(self,source,idParts){var i,l,idPart,idPartType,nextIdNameCode;var parts=[];var ret=[];for(i=0,l=idParts.length;i<l;i++){idPart=idParts[i];idPartType=idPart.type;if(idPartType){nextIdNameCode=self[idPartType](idPart);tools.pushToArray(source,nextIdNameCode.source);ret.push("["+nextIdNameCode.exp+"]");parts.push(nextIdNameCode.exp)}else{ret.push("."+idPart);parts.push(tools.wrapByDoubleQuote(idPart))}}return{str:ret.join(""),arr:"["+parts.join(",")+"]",parts:ret}},wrapByDoubleQuote:function(str){return'"'+str+'"'},wrapBySingleQuote:function(str){return"'"+str+"'"},joinArrayOfString:function(arr){return tools.wrapByDoubleQuote(arr.join('","'))},escapeSingleQuoteInCodeString:function(str,isDouble){return str.replace(isDouble?doubleReg:singleReg,function(m){if(m.length%2){m="\\"+m}return m})},escapeString:function(str,isCode){if(isCode){str=tools.escapeSingleQuoteInCodeString(str,0)}else{str=str.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}str=str.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t");return str},pushToArray:function(to,from){if(from){arrayPush.apply(to,from)}}}},{}],6:[function(require,module,exports){var util=require("./runtime/util");var nativeCommands=require("./runtime/commands");var commands={};var Scope=require("./runtime/scope");var LinkedBuffer=require("./runtime/linked-buffer");function TplWrap(name,runtime,root,scope,buffer,originalName,fn){this.name=name;this.originalName=originalName||name;this.runtime=runtime;this.root=root;this.pos={line:1};this.scope=scope;this.buffer=buffer;this.fn=fn}function findCommand(runtimeCommands,instanceCommands,parts){var name=parts[0];var cmd=runtimeCommands&&runtimeCommands[name]||instanceCommands&&instanceCommands[name]||commands[name];if(parts.length===1){return cmd}if(cmd){var len=parts.length;for(var i=1;i<len;i++){cmd=cmd[parts[i]];if(!cmd){return false}}}return cmd}function getSubNameFromParentName(parentName,subName){var parts=parentName.split("/");var subParts=subName.split("/");parts.pop();for(var i=0,l=subParts.length;i<l;i++){var subPart=subParts[i];if(subPart==="."){}else if(subPart===".."){parts.pop()}else{parts.push(subPart)}}return parts.join("/")}function callFn(tpl,scope,option,buffer,parts,depth){var caller,fn,command1;if(!depth){command1=findCommand(tpl.runtime.commands,tpl.root.config.commands,parts)}if(command1){return command1.call(tpl,scope,option,buffer)}else if(command1!==false){caller=scope.resolve(parts.slice(0,-1),depth);fn=caller[parts[parts.length-1]];if(fn){return fn.apply(caller,option.params)}}buffer.error("Command Not Found: "+parts.join("."));return buffer}var utils={callFn:callFn,callCommand:function(tpl,scope,option,buffer,parts){return callFn(tpl,scope,option,buffer,parts)}};function XTemplateRuntime(fn,config){var self=this;self.fn=fn;self.config=util.merge(XTemplateRuntime.globalConfig,config);this.subNameResolveCache={}}util.mix(XTemplateRuntime,{config:function(key,v){var globalConfig=this.globalConfig=this.globalConfig||{};if(arguments.length){if(v!==undefined){globalConfig[key]=v}else{util.mix(globalConfig,key)}}else{return globalConfig}},version:"@VERSION@",nativeCommands:nativeCommands,utils:utils,util:util,addCommand:function(commandName,fn){commands[commandName]=fn},removeCommand:function(commandName){delete commands[commandName]}});function resolve(self,subName,parentName){if(subName.charAt(0)!=="."){return subName}var key=parentName+"_ks_"+subName;var nameResolveCache=self.subNameResolveCache;var cached=nameResolveCache[key];if(cached){return cached}subName=nameResolveCache[key]=getSubNameFromParentName(parentName,subName);return subName}function includeInternal(self,scope,escape,buffer,tpl,originalName){var name=resolve(self,originalName,tpl.name);var newBuffer=buffer.insert();var next=newBuffer.next;loadInternal(self,name,tpl.runtime,scope,newBuffer,originalName,escape);return next}function includeModuleInternal(self,scope,buffer,tpl,tplFn){var newBuffer=buffer.insert();var next=newBuffer.next;var newTpl=new TplWrap(tplFn.TPL_NAME,tpl.runtime,self,scope,newBuffer,undefined,tplFn);newBuffer.tpl=newTpl;renderTpl(newTpl);return next}function loadInternal(self,name,runtime,scope,buffer,originalName,escape){var tpl=new TplWrap(name,runtime,self,scope,buffer,originalName);buffer.tpl=tpl;self.config.loader.load(tpl,function(error,tplFn){if(typeof tplFn==="function"){tpl.fn=tplFn;renderTpl(tpl)}else if(error){buffer.error(error)}else if(tplFn){if(escape){buffer.writeEscaped(tplFn)}else{buffer.data+=tplFn}buffer.end()}})}function renderTpl(tpl){var buffer=tpl.fn();if(buffer){var runtime=tpl.runtime;var extendTplName=runtime.extendTplName;var extendTplFn=runtime.extendTplFn;var extendTplBuffer=runtime.extendTplBuffer;if(extendTplFn){runtime.extendTplName=null;runtime.extendTplBuffer=null;runtime.extendTplFn=null;includeModuleInternal(tpl.root,tpl.scope,extendTplBuffer,tpl,extendTplFn).end()}else if(extendTplName){runtime.extendTplName=null;runtime.extendTplBuffer=null;includeInternal(tpl.root,tpl.scope,0,extendTplBuffer,tpl,extendTplName).end()}return buffer.end()}}XTemplateRuntime.prototype={constructor:XTemplateRuntime,Scope:Scope,nativeCommands:nativeCommands,utils:utils,removeCommand:function(commandName){var config=this.config;if(config.commands){delete config.commands[commandName]}},addCommand:function(commandName,fn){var config=this.config;config.commands=config.commands||{};config.commands[commandName]=fn},include:function(scope,option,buffer,tpl){var params=option.params;var newScope;newScope=scope;var hash=option.hash;var escape=option&&option.escape;if(hash){newScope=new Scope(hash,undefined,scope)}buffer=includeInternal(this,newScope,escape,buffer,tpl,params[0]);return buffer},includeModule:function(scope,option,buffer,tpl){var params=option.params;var newScope;newScope=scope;var hash=option.hash;if(hash){newScope=new Scope(hash,undefined,scope)}buffer=includeModuleInternal(this,newScope,buffer,tpl,params[0]);return buffer},render:function(data,option,callback){var html="";var self=this;var fn=self.fn;var config=self.config;if(typeof option==="function"){callback=option;option=null}option=option||{};callback=callback||function(error,ret){if(error){if(!(error instanceof Error)){error=new Error(error)}throw error}html=ret};var name=self.config.name;if(!name&&fn&&fn.TPL_NAME){name=fn.TPL_NAME}var scope=new Scope(data);var buffer=new XTemplateRuntime.LinkedBuffer(callback,config).head;var tpl=new TplWrap(name,{commands:option.commands},self,scope,buffer,name,fn);buffer.tpl=tpl;if(!fn){config.loader.load(tpl,function(err,fn){if(fn){tpl.fn=self.fn=fn;renderTpl(tpl)}else if(err){buffer.error(err)}});return html}renderTpl(tpl);return html}};XTemplateRuntime.Scope=Scope;XTemplateRuntime.LinkedBuffer=LinkedBuffer;module.exports=XTemplateRuntime},{"./runtime/commands":7,"./runtime/linked-buffer":8,"./runtime/scope":9,"./runtime/util":10}],7:[function(require,module,exports){var Scope=require("./scope");var util=require("./util");var commands={range:function(scope,option){var params=option.params;var start=params[0];var end=params[1];var step=params[2];if(!step){step=start>end?-1:1}else if(start>end&&step>0||start<end&&step<0){step=-step}var ret=[];for(var i=start;start<end?i<end:i>end;i+=step){ret.push(i)}return ret},foreach:function(scope,option,buffer){var params=option.params;var param0=params[0];var xindexName=params[2]||"xindex";var valueName=params[1];var xcount,opScope,affix,xindex;if(param0){xcount=param0.length;for(xindex=0;xindex<xcount;xindex++){opScope=new Scope(param0[xindex],{xcount:xcount,xindex:xindex},scope);affix=opScope.affix;if(xindexName!=="xindex"){affix[xindexName]=xindex;affix.xindex=undefined}if(valueName){affix[valueName]=param0[xindex]}buffer=option.fn(opScope,buffer)}}return buffer},forin:function(scope,option,buffer){var params=option.params;var param0=params[0];var xindexName=params[2]||"xindex";var valueName=params[1];var opScope,affix,name;if(param0){for(name in param0){opScope=new Scope(param0[name],{xindex:name},scope);affix=opScope.affix;if(xindexName!=="xindex"){affix[xindexName]=name;affix.xindex=undefined}if(valueName){affix[valueName]=param0[name]}buffer=option.fn(opScope,buffer)}}return buffer},each:function(scope,option,buffer){var params=option.params;var param0=params[0];if(param0){if(util.isArray(param0)){return commands.foreach(scope,option,buffer)}else{return commands.forin(scope,option,buffer)}}return buffer},"with":function(scope,option,buffer){var params=option.params;var param0=params[0];if(param0){var opScope=new Scope(param0,undefined,scope);buffer=option.fn(opScope,buffer)}return buffer},"if":function(scope,option,buffer){var params=option.params;var param0=params[0];if(param0){var fn=option.fn;if(fn){buffer=fn(scope,buffer)}}else{var matchElseIf=false;var elseIfs=option.elseIfs;var inverse=option.inverse;if(elseIfs){for(var i=0,len=elseIfs.length;i<len;i++){var elseIf=elseIfs[i];matchElseIf=elseIf.test(scope);if(matchElseIf){buffer=elseIf.fn(scope,buffer);break}}}if(!matchElseIf&&inverse){buffer=inverse(scope,buffer)}}return buffer},set:function(scope,option,buffer){scope.mix(option.hash);return buffer},include:1,parse:1,extend:1,block:function(scope,option,buffer){var self=this;var runtime=self.runtime;var params=option.params;var blockName=params[0];var type;if(params.length===2){type=params[0];blockName=params[1]}var blocks=runtime.blocks=runtime.blocks||{};var head=blocks[blockName],cursor;var current={fn:option.fn,type:type};if(!head){blocks[blockName]=current}else if(head.type){if(head.type==="append"){current.next=head;blocks[blockName]=current}else if(head.type==="prepend"){var prev;cursor=head;while(cursor&&cursor.type==="prepend"){prev=cursor;cursor=cursor.next}current.next=cursor;prev.next=current}}if(!runtime.extendTplName){cursor=blocks[blockName];while(cursor){if(cursor.fn){buffer=cursor.fn.call(self,scope,buffer)}cursor=cursor.next}}return buffer},macro:function(scope,option,buffer){var hash=option.hash;var params=option.params;var macroName=params[0];var params1=params.slice(1);var self=this;var runtime=self.runtime;var macros=runtime.macros=runtime.macros||{};if(option.fn){macros[macroName]={paramNames:params1,hash:hash,fn:option.fn}}else{var macro=macros[macroName];var paramValues=macro.hash||{};var paramNames;if(macro&&(paramNames=macro.paramNames)){for(var i=0,len=paramNames.length;i<len;i++){var p=paramNames[i];paramValues[p]=params1[i]}if(hash){for(var h in hash){paramValues[h]=hash[h]}}var newScope=new Scope(paramValues);buffer=macro.fn.call(self,newScope,buffer)}else{var error="can not find macro: "+name;buffer.error(error)}}return buffer}};commands["debugger"]=function(){if("@DEBUG@"){util.globalEval("debugger")}};module.exports=commands},{"./scope":9,"./util":10}],8:[function(require,module,exports){var util=require("./util");function Buffer(list,next,tpl){this.list=list;this.init();this.next=next;this.ready=false;this.tpl=tpl}Buffer.prototype={constructor:Buffer,isBuffer:1,init:function(){this.data=""},append:function(data){this.data+=data;return this},write:function(data){if(data!=null){if(data.isBuffer){return data}else{this.data+=data}}return this},writeEscaped:function(data){if(data!=null){if(data.isBuffer){return data}else{this.data+=util.escapeHtml(data)}}return this},insert:function(){var self=this;var list=self.list;var tpl=self.tpl;var nextFragment=new Buffer(list,self.next,tpl);var asyncFragment=new Buffer(list,nextFragment,tpl);self.next=asyncFragment;self.ready=true;return asyncFragment},async:function(fn){var asyncFragment=this.insert();var nextFragment=asyncFragment.next;fn(asyncFragment);return nextFragment},error:function(e){var callback=this.list.callback;if(callback){var tpl=this.tpl;if(tpl){if(e instanceof Error){}else{e=new Error(e)}var name=tpl.name;var line=tpl.pos.line;var errorStr="At "+name+":"+line+": ";e.stack=errorStr+e.stack;e.message=errorStr+e.message;e.xtpl={pos:{line:line},name:name}}this.list.callback=null;callback(e,undefined)}},end:function(){var self=this;if(self.list.callback){self.ready=true;self.list.flush()}return self}};function LinkedBuffer(callback,config){var self=this;self.config=config;self.head=new Buffer(self,undefined);self.callback=callback;this.init()}LinkedBuffer.prototype={constructor:LinkedBuffer,init:function(){this.data=""},append:function(data){this.data+=data},end:function(){this.callback(null,this.data);this.callback=null},flush:function(){var self=this;var fragment=self.head;while(fragment){if(fragment.ready){this.data+=fragment.data}else{self.head=fragment;return}fragment=fragment.next}self.end()}};LinkedBuffer.Buffer=Buffer;module.exports=LinkedBuffer},{"./util":10}],9:[function(require,module,exports){function Scope(data,affix,parent){if(data!==undefined){this.data=data}else{this.data={}}if(parent){this.parent=parent;this.root=parent.root}else{this.parent=undefined;this.root=this}this.affix=affix||{};this.ready=false}Scope.prototype={isScope:1,constructor:Scope,setParent:function(parentScope){this.parent=parentScope;this.root=parentScope.root},set:function(name,value){this.affix[name]=value},setData:function(data){this.data=data},getData:function(){return this.data},mix:function(v){var affix=this.affix;for(var name in v){affix[name]=v[name]}},get:function(name){var data=this.data;var v;var affix=this.affix;if(data!=null){v=data[name]}if(v!==undefined){return v}return affix[name]},resolveInternalOuter:function(parts){var part0=parts[0];var v;var self=this;var scope=self;if(part0==="this"){v=self.data}else if(part0==="root"){scope=scope.root;v=scope.data}else if(part0){do{v=scope.get(part0)}while(v===undefined&&(scope=scope.parent))}else{return[scope.data]}return[undefined,v]},resolveInternal:function(parts){var ret=this.resolveInternalOuter(parts);if(ret.length===1){return ret[0]}var i;var len=parts.length;var v=ret[1];for(i=1;i<len;i++){v=v[parts[i]]}return v},resolveLooseInternal:function(parts){var ret=this.resolveInternalOuter(parts);if(ret.length===1){return ret[0]}var i;var len=parts.length;var v=ret[1];for(i=1;v!=null&&i<len;i++){v=v[parts[i]]}return v},resolveUp:function(parts){return this.parent&&this.parent.resolveInternal(parts)},resolveLooseUp:function(parts){return this.parent&&this.parent.resolveLooseInternal(parts)},resolveOuter:function(parts,depth){var self=this;var scope=self;var v;if(!depth&&parts.length===1){v=self.get(parts[0]);if(v!==undefined){return[v]}else{depth=1}}if(depth){while(scope&&depth--){scope=scope.parent}}if(!scope){return[undefined]}return[undefined,scope]},resolveLoose:function(parts,depth){var ret=this.resolveOuter(parts,depth);if(ret.length===1){return ret[0]}return ret[1].resolveLooseInternal(parts)},resolve:function(parts,depth){var ret=this.resolveOuter(parts,depth);if(ret.length===1){return ret[0]}return ret[1].resolveInternal(parts)}};module.exports=Scope},{}],10:[function(require,module,exports){(function(global){var htmlEntities={"&":"&",">":">","<":"<","`":"`","/":"/",'"':""","'":"'"};var possibleEscapeHtmlReg=/[&<>"'`]/;var escapeHtmlReg=getEscapeReg();var SUBSTITUTE_REG=/\\?\{([^{}]+)\}/g;var win=typeof global!=="undefined"?global:window;function getEscapeReg(){var str="";for(var entity in htmlEntities){str+=entity+"|"}str=str.slice(0,-1);escapeHtmlReg=new RegExp(str,"g");return escapeHtmlReg}var util;var toString=Object.prototype.toString;module.exports=util={isArray:Array.isArray||function(obj){return toString.call(obj)==="[object Array]"},keys:Object.keys||function(o){var result=[];var p;for(p in o){if(o.hasOwnProperty(p)){result.push(p)}}return result},each:function(object,fn,context){if(object){var key,val,keys;var i=0;var length=object&&object.length;var isObj=length===undefined||Object.prototype.toString.call(object)==="[object Function]";context=context||null;if(isObj){keys=util.keys(object);for(;i<keys.length;i++){key=keys[i];if(fn.call(context,object[key],key,object)===false){break}}}else{for(val=object[0];i<length;val=object[++i]){if(fn.call(context,val,i,object)===false){break}}}}return object},mix:function(t,s){for(var p in s){t[p]=s[p]}return t},globalEval:function(data){if(win.execScript){win.execScript(data)}else{(function(data){win["eval"].call(win,data)})(data)}},substitute:function(str,o,regexp){if(typeof str!=="string"||!o){return str}return str.replace(regexp||SUBSTITUTE_REG,function(match,name){if(match.charAt(0)==="\\"){return match.slice(1)}return o[name]===undefined?"":o[name]})},escapeHtml:function(str){str=""+str;if(!possibleEscapeHtmlReg.test(str)){return str}return(str+"").replace(escapeHtmlReg,function(m){return htmlEntities[m]})},merge:function(){var i=0;var len=arguments.length;var ret={};for(;i<len;i++){var arg=arguments[i];if(arg){util.mix(ret,arg)}}return ret}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],11:[function(require,module,exports){module.exports={name:"xtemplate",version:"3.5.2",author:"yiminghe <[email protected]>",engines:{node:">=0.10"},license:"MIT",repository:{type:"git",url:"http://github.com/kissyteam/xtemplate.git"},testling:{server:"server.js",html:"tests/runner.html",browsers:["ie/6..latest","chrome/latest","firefox/latest","safari/latest","iphone/6..lastest","ipad/6..latest","android-browser/latest"]},devDependencies:{"body-parser":"^1.6.5","combined-stream":"0.0.5","expect.js":"^0.3.1",gulp:"^3.8.7","gulp-clean":"^0.3.1","gulp-filter":"^1.0.0","gulp-footer":"^1.0.5","gulp-header":"^1.0.5","gulp-jscs":"^1.1.0","gulp-jshint":"^1.8.4","gulp-kclean":"^0.0.13","gulp-modulex":"^2.0.0","gulp-rename":"^1.2.0","gulp-replace":"^0.4.0","gulp-uglify":"^0.3.1","gulp-util":"^3.0.1","gulp-wrapper":"^0.1.5","gulp-xtemplate":"^1.2.1",jshint:"^2.5.5","jshint-stylish":"^0.4.0",kison:"^0.3.3",koa:"^0.11.0","koa-body":"^0.2.0","koa-modularize":"^1.0.0","koa-mount":"^1.3.0","koa-node-jscover":"^1.0.0","koa-serve-index":"^1.0.1","koa-static":"^1.4.7",mocha:"^1.21.4","node-jscover":"^0.6.8","node-jscover-coveralls":"^1.0.10","precommit-hook":"^1.0.7",xtpl:"^3.0.0"},precommit:["lint"],scripts:{},readme:"# xtemplate\r\n\r\nHigh Speed, eXtensible Template Engine lib on browser and nodejs.\r\nsupport async control, inheritance, include, logic expression, custom function and more.\r\n\r\n[![xtemplate](https://nodei.co/npm/xtemplate.png)](https://npmjs.org/package/xtemplate)\r\n[![NPM downloads](http://img.shields.io/npm/dm/xtemplate.svg)](https://npmjs.org/package/xtemplate)\r\n[![Build Status](https://secure.travis-ci.org/kissyteam/xtemplate.png?branch=master)](https://travis-ci.org/kissyteam/xtemplate)\r\n[![Coverage Status](https://img.shields.io/coveralls/kissyteam/xtemplate.svg)](https://coveralls.io/r/kissyteam/xtemplate?branch=master)\r\n[![Dependency Status](https://gemnasium.com/kissyteam/xtemplate.png)](https://gemnasium.com/kissyteam/xtemplate)\r\n[![Bower version](https://badge.fury.io/bo/xtemplate.svg)](http://badge.fury.io/bo/xtemplate)\r\n[![node version](https://img.shields.io/badge/node.js-%3E=_0.10-green.svg?style=flat-square)](http://nodejs.org/download/)\r\n\r\n[![browser support](https://ci.testling.com/kissyteam/xtemplate.png)](https://ci.testling.com/kissyteam/xtemplate)\r\n\r\n## api\r\n\r\nhttps://github.com/kissyteam/xtemplate/blob/master/docs/api.md\r\n\r\n## syntax\r\n\r\nhttps://github.com/kissyteam/xtemplate/blob/master/docs/syntax.md\r\n\r\n## use on browser\r\n\r\nsupport [requirejs](https://github.com/jrburke/requirejs) [modulex](https://github.com/kissyteam/modulex)\r\n[kissy](http://docs.kissyui.com) [kissy gallery](http://gallery.kissyui.com)\r\n\r\n中文教程: https://github.com/kissyteam/xtemplate/blob/master/docs/use-on-browser.md\r\n\r\ndemo: https://github.com/yiminghe/xtemplate-on-browser\r\n\r\n## use on node\r\n\r\nhttps://github.com/kissyteam/xtpl\r\n\r\n## 中文介绍\r\n\r\nhttps://github.com/kissyteam/xtemplate/blob/master/docs/introduce.md\r\n\r\n## on dailyjs\r\n\r\nhttp://dailyjs.com/2014/09/24/node-roundup/\r\n\r\n## changelog\r\n\r\nhttps://github.com/kissyteam/xtemplate/blob/master/CHANGELOG.md\r\n\r\n## contribute\r\n\r\n### fork and clone\r\n\r\n### prepare environment\r\n```\r\nnpm install bower -g\r\nnpm install\r\nbower install\r\nnode server\r\n```\r\n\r\nthen open http://localhost:8002/tests/runner.html\r\n\r\n### open issue\r\n\r\n### modify code at lib\r\n\r\n### commit and pull request\r\n\r\n## License\r\n\r\nxtemplate is released under the MIT license.",readmeFilename:"package/README.md"}},{}],xtemplate:[function(require,module,exports){var XTemplate=require("./lib/xtemplate");var packageInfo=require("./package.json");XTemplate.version=XTemplate.Runtime.version=packageInfo.version;module.exports=XTemplate},{"./lib/xtemplate":1,"./package.json":11}]},{},[]);var XTemplate=require("xtemplate");alert(new XTemplate("{{x}}").render({x:2})); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"xtemplate": "3.5.2" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; } | |
body, html { height: 100%; width: 100%; }</style> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment