.*\.(glsl|vert|frag|prog)
commentDoxygen
/\*\*.*\*/
comment
/\*.*\*/
preprocesseur
#[ \t]*if 0(.|\\[\\\n])*#(endif|else)
preprocesseur
#(.|\\[\\\n])*$
commentDoxygen
//!(.|\\[\\\n])*$
SYNTAX_ERROR
//[ \t]*TODO[ \t]*:(.|\\[\\\n])*$
comment
//(.|\\[\\\n])*$
keyword
\b(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)\b
type
\b(void|bool|float|int|(vec|mat|ivec|bvec)[2-4])\b
storageKeyword
\b(varying|uniform|attribute|precision|mediump)\b
number
\b(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)\b
boolean
\b(true|false)\b
macro
\b([A-Z_][A-Z_0-9]{3,500})\b
functionName
\b(\w|_)+[ \t]*\(
boolean
==|<=|>=|!=|<{1,2}|>{1,2}|&&|\{|\}