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