function self.ready() { var tz = new Tokenizer( $(plaintext), #source ); const KEYWORDS = { "type" :true, "function":true, "var" :true,"if" :true, "else" :true, "while" :true, "return" :true,"for" :true, "break" :true, "continue":true, "do" :true,"switch" :true, "case" :true, "default" :true, "null" :true,"super" :true, "new" :true, "try" :true, "catch" :true,"finally" :true, "throw" :true, "typeof" :true, "instanceof":true,"in" :true, "property" :true, "const" :true, "get" :true,"set" :true, "include" :true, "like" :true, "class" :true,"namespace":true, "this" :true, "assert" :true, "delete" :true,"otherwise":true, "with" :true, "__FILE__":true, "__LINE__" :true,"__TRACE__":true, "debug" :true }; const LITERALS = { "true": true, "false": true, "null": true, "undefined": true }; var apply = Selection.applyMark; //shortcut reference while(var tt = tz.token()) switch(tt) { case #NUMBER: apply(tz.tokenStart,tz.tokenEnd,"number"); break; case #NUMBER-UNIT: apply(tz.tokenStart,tz.tokenEnd,"number-unit"); break; case #STRING: apply(tz.tokenStart,tz.tokenEnd,"string"); break; case #NAME: { var val = tz.value; if( val[0] == '#' ) apply(tz.tokenStart,tz.tokenEnd, "symbol"); else if(KEYWORDS[val]) apply(tz.tokenStart,tz.tokenEnd, "keyword"); else if(LITERALS[val]) apply(tz.tokenStart,tz.tokenEnd, "literal"); break; } case #COMMENT: apply(tz.tokenStart,tz.tokenEnd,"comment"); break; } } </plaintext> </body> </html>