# Syntax rules for the C and the C++ programming languages
#
# List of keywords is based on opencl-mode.el from
# Salmane Bah <salmane.bah@u-bordeaux.fr>
context default
# Keywords
keyword whole break color19
keyword whole closure color19
keyword whole color color19
keyword whole continue color19
keyword whole do color19
keyword whole else color19
keyword whole float color19
keyword whole for color19
keyword whole if color19
keyword whole illuminance color19
keyword whole illuminate color19
keyword whole int color19
keyword whole matrix color19
keyword whole normal color19
keyword whole output color19
keyword whole point color19
keyword whole public color19
keyword whole return color19
keyword whole string color19
keyword whole struct color19
keyword whole vector color19
keyword whole void color19
keyword whole while color19
keyword whole or color19
keyword whole and color19
keyword whole not color19
keyword whole linestart \{\s\t\}\[\s\t\]#*\n color90
# Reserved words
keyword whole bool color160
keyword whole case color160
keyword whole char color160
keyword whole class color160
keyword whole const color160
keyword whole default color160
keyword whole double color160
keyword whole enum color160
keyword whole extern color160
keyword whole false color160
keyword whole friend color160
keyword whole inline color160
keyword whole long color160
keyword whole private color160
keyword whole protected color160
keyword whole short color160
keyword whole signed color160
keyword whole sizeof color160
keyword whole static color160
keyword whole struct color160
keyword whole switch color160
keyword whole template color160
keyword whole this color160
keyword whole true color160
keyword whole typedef color160
keyword whole uniform color160
keyword whole union color160
keyword whole unsigned color160
keyword whole varying color160
keyword whole virtual color160
# Shader types
keyword whole shader color243
keyword whole surface color243
keyword whole displacement color243
keyword whole volume color243
keyword /\* color30
keyword \*/ color30
keyword // color30
keyword '\\\{"abtnvfr\}' color88
keyword '\\\{0123\}\{01234567\}\{01234567\}' color88
keyword '\\'' color88
keyword '\\\\' color88
keyword '\\0' color88
keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' color88
# punctuation characters, sorted by ASCII code
keyword ! color19
keyword % color19
keyword && color19
keyword & color90
keyword ( color17
keyword ) color17
keyword \* color19
keyword \+ color19
keyword , color17
keyword - color19
keyword / color19
keyword : color17
keyword ; color90
keyword < color19
keyword = color19
keyword > color19
keyword ? color17
keyword [ color17
keyword ] color17
keyword ^ color90
keyword { color17
keyword || color19
keyword | color90
keyword } color17
keyword ~ color90
context exclusive /\* \*/ color30
spellcheck
context exclusive // \n color30
spellcheck
context linestart # \n color196
keyword \\\n color19
keyword /\**\*/ color30
keyword //*\n color30
keyword "+" color160
keyword <+> color160
context " " color28
spellcheck
keyword \\" color88
keyword %% color88
keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} color88
keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} color88
keyword %\[hl\]n color88
keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s color88
keyword %[*] color88
keyword %c color88
keyword %p color88
keyword \\\{0123\}\{01234567\}\{01234567\} color88
keyword \\\\ color88
keyword \\' color88
keyword \\\{abtnvfr\} color88