/* content from:
 * https://github.com/marijnh/CodeMirror/raw/master/js/tokenizejavascript.js
 * closure compiled 2011-05-17 */
var tokenizeJavaScript=function(){function i(a,e){for(var b=!1;!a.endOfLine();){var d=a.next();if(d==e&&!b)return!1;b=!b&&d=="\\"}return b}function k(a,e){return function(b,d){var g=a,c=n(a,e,b,function(b){g=b}),h=c.type=="operator"||c.type=="keyword c"||c.type.match(/^[\[{}\(,;:]$/);(h!=e||g!=a)&&d(k(g,h));return c}}function n(a,e,b,d){function g(){b.nextWhileMatches(o);var a=b.get(),d=j.hasOwnProperty(a)&&j.propertyIsEnumerable(a)&&j[a];return d?{type:d.type,style:d.style,content:a}:{type:"variable",
style:"js-variable",content:a}}function c(a){for(var c="/*",a=a=="*";;){if(b.endOfLine())break;var e=b.next();if(e=="/"&&a){c=null;break}a=e=="*"}d(c);return{type:"comment",style:"js-comment"}}function h(){b.nextWhileMatches(m);return{type:"operator",style:"js-operator"}}function l(a){var c=i(b,a);d(c?a:null);return{type:"string",style:"js-string"}}if(a=='"'||a=="'")return l(a);var f=b.next();if(a=="/*")return c(f);else if(f=='"'||f=="'")return l(f);else if(/[\[\]{}\(\),;\:\.]/.test(f))return{type:f,
style:"js-punctuation"};else if(f=="0"&&(b.equals("x")||b.equals("X")))return b.next(),b.nextWhileMatches(p),{type:"number",style:"js-atom"};else if(/[0-9]/.test(f)){b.nextWhileMatches(/[0-9]/);b.equals(".")&&(b.next(),b.nextWhileMatches(/[0-9]/));if(b.equals("e")||b.equals("E"))b.next(),b.equals("-")&&b.next(),b.nextWhileMatches(/[0-9]/);return{type:"number",style:"js-atom"}}else return f=="/"?b.equals("*")?(b.next(),c(f)):b.equals("/")?(i(b,null),{type:"comment",style:"js-comment"}):(e?(i(b,"/"),
b.nextWhileMatches(/[gimy]/),a={type:"regexp",style:"js-string"}):a=h(),a):m.test(f)?h():g()}var j=function(){function a(a,b){return{type:a,style:"js-"+b}}var e=a("keyword a","keyword"),b=a("keyword b","keyword"),d=a("keyword c","keyword"),g=a("operator","keyword"),c=a("atom","atom");return{"if":e,"while":e,"with":e,"else":b,"do":b,"try":b,"finally":b,"return":d,"break":d,"continue":d,"new":d,"delete":d,"throw":d,"in":g,"typeof":g,"instanceof":g,"var":a("var","keyword"),"function":a("function","keyword"),
"catch":a("catch","keyword"),"for":a("for","keyword"),"switch":a("switch","keyword"),"case":a("case","keyword"),"default":a("default","keyword"),"true":c,"false":c,"null":c,undefined:c,NaN:c,Infinity:c}}(),m=/[+\-*&%=<>!?|]/,p=/[0-9A-Fa-f]/,o=/[\w\$_]/;return function(a,e){return tokenizer(a,e||k(!1,!0))}}();