color blue "\b[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
color blue "\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
color brightblue "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
-color cyan "\b(break|case|catch|continue|default|delete|do|else|finally)\b"
-color cyan "\b(for|function|get|if|in|instanceof|new|return|set|switch)\b"
-color cyan "\b(switch|this|throw|try|typeof|var|void|while|with)\b"
-color cyan "\b(null|undefined|NaN)\b"
-color brightcyan "\b(true|false)\b"
-color green "\b(Array|Boolean|Date|Enumerator|Error|Function|Math)\b"
-color green "\b(Number|Object|RegExp|String)\b"
-color red "[-+/*=<>!~%?:&|]"
-color magenta "/[^*]([^/]|(\\/))*[^\\]/[gim]*"
-color magenta "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]"
-color brightblack "(^|[[:space:]])//.*"
-color brightblack "/\*.+\*/"
-color brightwhite,cyan "TODO:?"
-color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
-color ,green "[[:space:]]+$"
-color ,red " + +| + +"
+color statement "\b(break|case|catch|continue|default|delete|do|else|finally)\b"
+color statement "\b(for|function|get|if|in|instanceof|new|return|set|switch)\b"
+color statement "\b(switch|this|throw|try|typeof|var|void|while|with)\b"
+color constant "\b(null|undefined|NaN)\b"
+color constant "\b(true|false)\b"
+color type "\b(Array|Boolean|Date|Enumerator|Error|Function|Math)\b"
+color type "\b(Number|Object|RegExp|String)\b"
+color statement "[-+/*=<>!~%?:&|]"
+color constant "/[^*]([^/]|(\\/))*[^\\]/[gim]*"
+color constant "\\[0-7][0-7]?[0-7]?|\\x[0-9a-fA-F]+|\\[bfnrt'"\?\\]"
+color comment "(^|[[:space:]])//.*"
+color comment "/\*.+\*/"
+color todo "TODO:?"
+color constant ""(\\.|[^"])*"|'(\\.|[^'])*'"