1[
2 "break"
3 "case"
4 "const"
5 "continue"
6 "default"
7 "do"
8 "else"
9 "enum"
10 "extern"
11 "for"
12 "goto"
13 "if"
14 "inline"
15 "return"
16 "sizeof"
17 "static"
18 "struct"
19 "switch"
20 "typedef"
21 "union"
22 "volatile"
23 "while"
24] @keyword
25
26[
27 "#define"
28 "#elif"
29 "#else"
30 "#endif"
31 "#if"
32 "#ifdef"
33 "#ifndef"
34 "#include"
35 (preproc_directive)
36] @keyword
37
38[
39 "="
40 "+="
41 "-="
42 "*="
43 "/="
44 "%="
45 "&="
46 "|="
47 "^="
48 "<<="
49 ">>="
50 "++"
51 "--"
52 "+"
53 "-"
54 "*"
55 "/"
56 "%"
57 "~"
58 "&"
59 "|"
60 "^"
61 "<<"
62 ">>"
63 "!"
64 "&&"
65 "||"
66 "=="
67 "!="
68 "<"
69 ">"
70 "<="
71 ">="
72 "->"
73 "?"
74 ":"
75] @operator
76
77[
78 "."
79 ";"
80 ","
81] @punctuation.delimiter
82
83[
84 "{"
85 "}"
86 "("
87 ")"
88 "["
89 "]"
90] @punctuation.bracket
91
92[
93 (string_literal)
94 (system_lib_string)
95 (char_literal)
96] @string
97
98(comment) @comment
99
100(number_literal) @number
101
102[
103 (true)
104 (false)
105] @boolean
106
107(null) @constant.builtin
108
109(identifier) @variable
110
111((identifier) @constant
112 (#match? @constant "^_*[A-Z][A-Z\\d_]*$"))
113
114(call_expression
115 function: (identifier) @function)
116(call_expression
117 function: (field_expression
118 field: (field_identifier) @function))
119(function_declarator
120 declarator: (identifier) @function)
121(preproc_function_def
122 name: (identifier) @function.special)
123
124(field_identifier) @property
125(statement_identifier) @label
126
127[
128 (type_identifier)
129 (primitive_type)
130 (sized_type_specifier)
131] @type