//>>built define("dojox/highlight/_base",["dojo/_base/lang","dojo/_base/array","dojo/dom","dojo/dom-class"],function(_1,_2,_3,_4){ var dh=_1.getObject("dojox.highlight",true),_5="\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)"; dh.languages=dh.languages||{}; dh.constants={IDENT_RE:"[a-zA-Z][a-zA-Z0-9_]*",UNDERSCORE_IDENT_RE:"[a-zA-Z_][a-zA-Z0-9_]*",NUMBER_RE:"\\b\\d+(\\.\\d+)?",C_NUMBER_RE:_5,APOS_STRING_MODE:{className:"string",begin:"'",end:"'",illegal:"\\n",contains:["escape"],relevance:0},QUOTE_STRING_MODE:{className:"string",begin:"\"",end:"\"",illegal:"\\n",contains:["escape"],relevance:0},BACKSLASH_ESCAPE:{className:"escape",begin:"\\\\.",end:"^",relevance:0},C_LINE_COMMENT_MODE:{className:"comment",begin:"//",end:"$",relevance:0},C_BLOCK_COMMENT_MODE:{className:"comment",begin:"/\\*",end:"\\*/"},HASH_COMMENT_MODE:{className:"comment",begin:"#",end:"$"},C_NUMBER_MODE:{className:"number",begin:_5,end:"^",relevance:0}}; function _6(_7){ return _7.replace(/&/gm,"&").replace(//gm,">"); }; function _8(_9){ return _2.every(_9.childNodes,function(_a){ return _a.nodeType==3||String(_a.nodeName).toLowerCase()=="br"; }); }; function _b(_c){ var _d=[]; _2.forEach(_c.childNodes,function(_e){ if(_e.nodeType==3){ _d.push(_e.nodeValue); }else{ if(String(_e.nodeName).toLowerCase()=="br"){ _d.push("\n"); }else{ throw "Complex markup"; } } }); return _d.join(""); }; function _f(_10){ if(!_10.keywordGroups){ for(var key in _10.keywords){ var kw=_10.keywords[key]; if(kw instanceof Object){ _10.keywordGroups=_10.keywords; }else{ _10.keywordGroups={keyword:_10.keywords}; } break; } } }; function _11(_12){ if(_12.defaultMode&&_12.modes){ _f(_12.defaultMode); _2.forEach(_12.modes,_f); } }; var _13=function(_14,_15){ this.langName=_14; this.lang=dh.languages[_14]; this.modes=[this.lang.defaultMode]; this.relevance=0; this.keywordCount=0; this.result=[]; if(!this.lang.defaultMode.illegalRe){ this.buildRes(); _11(this.lang); } try{ this.highlight(_15); this.result=this.result.join(""); } catch(e){ if(e=="Illegal"){ this.relevance=0; this.keywordCount=0; this.partialResult=this.result.join(""); this.result=_6(_15); }else{ throw e; } } }; _1.extend(_13,{buildRes:function(){ _2.forEach(this.lang.modes,function(_16){ if(_16.begin){ _16.beginRe=this.langRe("^"+_16.begin); } if(_16.end){ _16.endRe=this.langRe("^"+_16.end); } if(_16.illegal){ _16.illegalRe=this.langRe("^(?:"+_16.illegal+")"); } },this); this.lang.defaultMode.illegalRe=this.langRe("^(?:"+this.lang.defaultMode.illegal+")"); },subMode:function(_17){ var _18=this.modes[this.modes.length-1].contains; if(_18){ var _19=this.lang.modes; for(var i=0;i<_18.length;++i){ var _1a=_18[i]; for(var j=0;j<_19.length;++j){ var _1b=_19[j]; if(_1b.className==_1a&&_1b.beginRe.test(_17)){ return _1b; } } } } return null; },endOfMode:function(_1c){ for(var i=this.modes.length-1;i>=0;--i){ var _1d=this.modes[i]; if(_1d.end&&_1d.endRe.test(_1c)){ return this.modes.length-i; } if(!_1d.endsWithParent){ break; } } return 0; },isIllegal:function(_1e){ var _1f=this.modes[this.modes.length-1].illegalRe; return _1f&&_1f.test(_1e); },langRe:function(_20,_21){ var _22="m"+(this.lang.case_insensitive?"i":"")+(_21?"g":""); return new RegExp(_20,_22); },buildTerminators:function(){ var _23=this.modes[this.modes.length-1],_24={}; if(_23.contains){ _2.forEach(this.lang.modes,function(_25){ if(_2.indexOf(_23.contains,_25.className)>=0){ _24[_25.begin]=1; } }); } for(var i=this.modes.length-1;i>=0;--i){ var m=this.modes[i]; if(m.end){ _24[m.end]=1; } if(!m.endsWithParent){ break; } } if(_23.illegal){ _24[_23.illegal]=1; } var t=[]; for(i in _24){ t.push(i); } _23.terminatorsRe=this.langRe("("+t.join("|")+")"); },eatModeChunk:function(_26,_27){ var _28=this.modes[this.modes.length-1]; if(!_28.terminatorsRe){ this.buildTerminators(); } _26=_26.substr(_27); var _29=_28.terminatorsRe.exec(_26); if(!_29){ return {buffer:_26,lexeme:"",end:true}; } return {buffer:_29.index?_26.substr(0,_29.index):"",lexeme:_29[0],end:false}; },keywordMatch:function(_2a,_2b){ var _2c=_2b[0]; if(this.lang.case_insensitive){ _2c=_2c.toLowerCase(); } for(var _2d in _2a.keywordGroups){ if(_2c in _2a.keywordGroups[_2d]){ return _2d; } } return ""; },buildLexemes:function(_2e){ var _2f={}; _2.forEach(_2e.lexems,function(_30){ _2f[_30]=1; }); var t=[]; for(var i in _2f){ t.push(i); } _2e.lexemsRe=this.langRe("("+t.join("|")+")",true); },processKeywords:function(_31){ var _32=this.modes[this.modes.length-1]; if(!_32.keywords||!_32.lexems){ return _6(_31); } if(!_32.lexemsRe){ this.buildLexemes(_32); } _32.lexemsRe.lastIndex=0; var _33=[],_34=0,_35=_32.lexemsRe.exec(_31); while(_35){ _33.push(_6(_31.substr(_34,_35.index-_34))); var _36=this.keywordMatch(_32,_35); if(_36){ ++this.keywordCount; _33.push(""+_6(_35[0])+""); }else{ _33.push(_6(_35[0])); } _34=_32.lexemsRe.lastIndex; _35=_32.lexemsRe.exec(_31); } _33.push(_6(_31.substr(_34,_31.length-_34))); return _33.join(""); },processModeInfo:function(_37,_38,end){ var _39=this.modes[this.modes.length-1]; if(end){ this.result.push(this.processKeywords(_39.buffer+_37)); return; } if(this.isIllegal(_38)){ throw "Illegal"; } var _3a=this.subMode(_38); if(_3a){ _39.buffer+=_37; this.result.push(this.processKeywords(_39.buffer)); if(_3a.excludeBegin){ this.result.push(_38+""); _3a.buffer=""; }else{ this.result.push(""); _3a.buffer=_38; } this.modes.push(_3a); this.relevance+=typeof _3a.relevance=="number"?_3a.relevance:1; return; } var _3b=this.endOfMode(_38); if(_3b){ _39.buffer+=_37; if(_39.excludeEnd){ this.result.push(this.processKeywords(_39.buffer)+""+_38); }else{ this.result.push(this.processKeywords(_39.buffer+_38)+""); } while(_3b>1){ this.result.push(""); --_3b; this.modes.pop(); } this.modes.pop(); this.modes[this.modes.length-1].buffer=""; return; } },highlight:function(_3c){ var _3d=0; this.lang.defaultMode.buffer=""; do{ var _3e=this.eatModeChunk(_3c,_3d); this.processModeInfo(_3e.buffer,_3e.lexeme,_3e.end); _3d+=_3e.buffer.length+_3e.lexeme.length; }while(!_3e.end); if(this.modes.length>1){ throw "Illegal"; } }}); function _3f(_40,_41,_42){ if(String(_40.tagName).toLowerCase()=="code"&&String(_40.parentNode.tagName).toLowerCase()=="pre"){ var _43=document.createElement("div"),_44=_40.parentNode.parentNode; _43.innerHTML="
"+_42+"
";
_44.replaceChild(_43.firstChild,_40.parentNode);
}else{
_40.className=_41;
_40.innerHTML=_42;
}
};
function _45(_46,str){
var _47=new _13(_46,str);
return {result:_47.result,langName:_46,partialResult:_47.partialResult};
};
function _48(_49,_4a){
var _4b=_45(_4a,_b(_49));
_3f(_49,_49.className,_4b.result);
};
function _4c(str){
var _4d="",_4e="",_4f=2,_50=str;
for(var key in dh.languages){
if(!dh.languages[key].defaultMode){
continue;
}
var _51=new _13(key,_50),_52=_51.keywordCount+_51.relevance,_53=0;
if(!_4d||_52>_53){
_53=_52;
_4d=_51.result;
_4e=_51.langName;
}
}
return {result:_4d,langName:_4e};
};
function _54(_55){
var _56=_4c(_b(_55));
if(_56.result){
_3f(_55,_56.langName,_56.result);
}
};
dojox.highlight.processString=function(str,_57){
return _57?_45(_57,str):_4c(str);
};
dojox.highlight.init=function(_58){
_58=_3.byId(_58);
if(_4.contains(_58,"no-highlight")){
return;
}
if(!_8(_58)){
return;
}
var _59=_58.className.split(/\s+/),_5a=_2.some(_59,function(_5b){
if(_5b.charAt(0)!="_"&&dh.languages[_5b]){
_48(_58,_5b);
return true;
}
return false;
});
if(!_5a){
_54(_58);
}
};
dh.Code=function(_5c,_5d){
dh.init(_5d);
};
return dh;
});