# 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
keyword whole auto color19
keyword whole break color19
keyword whole case color19
keyword whole char color19
keyword whole const color19
keyword whole continue color19
keyword whole do color19
keyword whole double color19
keyword whole else color19
keyword whole enum color19
keyword whole extern color19
keyword whole float color19
keyword whole for color19
keyword whole goto color19
keyword whole if color19
keyword whole int color19
keyword whole long color19
keyword whole register color19
keyword whole return color19
keyword whole short color19
keyword whole signed color19
keyword whole sizeof color19
keyword whole static color19
keyword whole struct color19
keyword whole switch color19
keyword whole typedef color19
keyword whole union color19
keyword whole unsigned color19
keyword whole void color19
keyword whole volatile color19
keyword whole while color19
keyword whole asm color19
keyword whole inline color19
keyword whole wchar_t color19
keyword whole ... color19
keyword whole linestart \{\s\t\}\[\s\t\]#*\n color90
keyword whole \[\s\t\]default color19
keyword whole linestart \[\s\t\]\{ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]: color26
# Function type qualifiers
keyword whole __kernel color243
# Variable type qualifiers
keyword whole __global color243
keyword whole __local color243
keyword whole __constant color243
keyword whole __private color243
keyword whole __read_only color243
keyword whole __write_only color243
keyword whole __read_write color243
keyword whole __enable color243
keyword whole __disable color243
keyword whole global color243
keyword whole local color243
keyword whole constant color243
keyword whole private color243
keyword whole read_only color243
keyword whole write_only color243
keyword whole read_write color243
keyword whole enable color243
keyword whole disable color243
# Built-in functions
keyword whole get_group_id color90
keyword whole get_local_id color90
keyword whole get_global_id color90
keyword whole get_local_size color90
keyword whole get_global_size color90
keyword whole get_work_dim color90
keyword whole get_num_groups color90
keyword whole get_global_offset color90
keyword whole barrier color90
# Constants
keyword whole CLK_LOCAL_MEM_FENCE color243
keyword whole CLK_GLOBAL_MEM_FENCE color243
keyword whole MAXFLOAT color243
keyword whole HUGE_VAL color243
keyword whole HUGE_VALF color243
keyword whole INFINITY color243
keyword whole NAN color243
# Built-in types
keyword whole half color19
keyword whole uchar color19
keyword whole ushort color19
keyword whole uint color19
keyword whole ulong color19
keyword whole bool color19
keyword whole size_t color19
keyword whole ptrdiff_t color19
keyword whole intptr_t color19
keyword whole uintptr_t color19
keyword whole image2d_t color19
keyword whole image3d_t color19
keyword whole image2d_array_t color19
keyword whole image3d_array_t color19
keyword whole image1d_array_t color19
keyword whole image1d_t color19
keyword whole image1d_buffer_t color19
keyword whole sampler_t color19
keyword whole event_t color19
keyword whole cl_khr_\{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\}\{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_\}+ color88
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