1; Inherit C queries
 2(function_declarator (identifier) @function)
 3(call_expression (identifier) @function)
 4(parameter_declaration (primitive_type) @type)
 5(parameter_declaration (identifier) @variable)
 6(declaration (primitive_type) @type)
 7(declaration (identifier) @variable)
 8(string_literal) @string
 9(number_literal) @number
10(char_literal) @string
11(comment) @comment
12(field_identifier) @property
13((identifier) @boolean (#eq? @boolean "true"))
14((identifier) @boolean (#eq? @boolean "false"))
15(null) @null
16((identifier) @keyword (#match? @keyword "^(static_cast|dynamic_cast|const_cast|reinterpret_cast|friend|inline|decltype|explicit|export|mutable|asm|auto|bool|nullptr)$"))
17
18; C++ specific
19(template_declaration) @type
20(virtual) @keyword
21(this) @keyword
22(class_specifier name: (type_identifier) @type)
23(namespace_definition name: (namespace_identifier) @type)
24(using_declaration (qualified_identifier) @type)
25(destructor_name) @function
26(function_declarator (field_identifier) @function)
27(function_definition declarator: (function_declarator declarator: (field_identifier) @function))
28
29[
30  "return"
31  "if"
32  "else"
33  "for"
34  "while"
35  "do"
36  "switch"
37  "case"
38  "default"
39  "break"
40  "continue"
41  "struct"
42  "enum"
43  "union"
44  "typedef"
45  "extern"
46  "static"
47  "const"
48  "signed"
49  "unsigned"
50  "volatile"
51  
52  ; C++ keywords
53  "new"
54  "delete"
55  "operator"
56  "throw"
57  "try"
58  "catch"
59  "class"
60  "constexpr"
61  "template"
62  "typename"
63  "using"
64  "namespace"
65  "public"
66  "private"
67  "protected"
68
69  "#include"
70  "#define"
71  "#ifdef"
72  "#ifndef"
73  "#endif"
74] @keyword