@@ -0,0 +1,150 @@
3+ ; @todo why does "uniform" break highlighting?
4+ ; "uniform" ; OpenCL C 3.0.13 reserves this as a keyword, but doesn't seem to use it for anything
13+] @keyword.storage.type
20+ (storage_class_specifier)
21+ (address_space_qualifier)
22+] @keyword.storage.modifier
34+] @keyword.control.repeat
42+] @keyword.control.conditional
44+"return" @keyword.control.return
59+(pointer_declarator "*" @type.builtin)
60+(abstract_pointer_declarator "*" @type.builtin)
99+(conditional_expression ":" @operator)
103+["," "." ":" ";" "->" "::"] @punctuation.delimiter
105+["(" ")" "[" "]" "{" "}"] @punctuation.bracket
107+[(true) (false)] @constant.builtin.boolean
109+(enumerator name: (identifier) @type.enum.variant)
111+(string_literal) @string
112+(system_lib_string) @string
115+(number_literal) @constant.numeric
116+(char_literal) @constant.character
119+ function: (identifier) @function)
121+ function: (field_expression
122+ field: (field_identifier) @function))
123+(call_expression (argument_list (identifier) @variable))
125+ declarator: [(identifier) (field_identifier)] @function)
126+(parameter_declaration
127+ declarator: (identifier) @variable.parameter)
128+(parameter_declaration
130+ declarator: (identifier) @variable.parameter))
131+(preproc_function_def
132+ name: (identifier) @function.special)
135+ name: (identifier) @attribute)
137+(field_identifier) @variable.other.member
138+(statement_identifier) @label
139+(type_identifier) @type
140+(scalar_type) @type.builtin
141+(sized_type_specifier) @type.builtin
142+(vector_type) @type.builtin
143+(other_builtin_type) @type.builtin
145+((identifier) @constant
146+ (#match? @constant "^[A-Z][A-Z\\d_]*$"))
148+(identifier) @variable