195 lines · 4.3 KB · Scheme
RawDownload
(preproc_def  "#define" @context  name: (_) @name) @item (preproc_function_def  "#define" @context  name: (_) @name  parameters: (preproc_params    "(" @context    ")" @context)) @item (namespace_definition  "inline"? @context  "namespace" @context  name: (_) @name) @item (type_definition  "typedef" @context  declarator: (_) @name) @item (struct_specifier  "struct" @context  name: (_) @name) @item (class_specifier  "class" @context  name: (_) @name) @item (enum_specifier  "enum" @context  [    "class"    "struct"  ]? @context  name: (_) @name) @item (union_specifier  "union" @context  name: (_) @name) @item (enumerator  name: (_) @name) @item (concept_definition  "concept" @context  name: (_) @name) @item (declaration  [    (storage_class_specifier)    (type_qualifier)  ]* @context  type: (_) @context  declarator: [    ; The declaration may define multiple variables, using @item on the    ; declarator so that they get distinct ranges.    (init_declarator      declarator: (_) @item @name)    (identifier) @item @name  ] @item) (function_definition  [    (storage_class_specifier)    (type_qualifier)  ]* @context  type: (_)? @context  declarator: [    (function_declarator      declarator: (_) @name      parameters: (parameter_list        "(" @context        ")" @context))    (pointer_declarator      "*" @context      declarator: (function_declarator        declarator: (_) @name        parameters: (parameter_list          "(" @context          ")" @context)))    (pointer_declarator      "*" @context      declarator: (pointer_declarator        "*" @context        declarator: (function_declarator          declarator: (_) @name          parameters: (parameter_list            "(" @context            ")" @context))))    (reference_declarator      [        "&"        "&&"      ] @context      (function_declarator        declarator: (_) @name        parameters: (parameter_list          "(" @context          ")" @context)))  ]  (type_qualifier)? @context) @item (declaration  [    (storage_class_specifier)    (type_qualifier)  ]* @context  type: (_)? @context  declarator: [    (field_identifier) @name    (pointer_declarator      "*" @context      declarator: (field_identifier) @name)    (function_declarator      declarator: (_) @name      parameters: (parameter_list        "(" @context        ")" @context))    (pointer_declarator      "*" @context      declarator: (function_declarator        declarator: (_) @name        parameters: (parameter_list          "(" @context          ")" @context)))    (pointer_declarator      "*" @context      declarator: (pointer_declarator        "*" @context        declarator: (function_declarator          declarator: (_) @name          parameters: (parameter_list            "(" @context            ")" @context))))    (reference_declarator      [        "&"        "&&"      ] @context      (function_declarator        declarator: (_) @name        parameters: (parameter_list          "(" @context          ")" @context)))  ]  (type_qualifier)? @context) @item (field_declaration  [    (storage_class_specifier)    (type_qualifier)  ]* @context  type: (_) @context  declarator: [    (field_identifier) @name    (pointer_declarator      "*" @context      declarator: (field_identifier) @name)    (function_declarator      declarator: (_) @name      parameters: (parameter_list        "(" @context        ")" @context))    (pointer_declarator      "*" @context      declarator: (function_declarator        declarator: (_) @name        parameters: (parameter_list          "(" @context          ")" @context)))    (pointer_declarator      "*" @context      declarator: (pointer_declarator        "*" @context        declarator: (function_declarator          declarator: (_) @name          parameters: (parameter_list            "(" @context            ")" @context))))    (reference_declarator      [        "&"        "&&"      ] @context      (function_declarator        declarator: (_) @name        parameters: (parameter_list          "(" @context          ")" @context)))    ; Fields declarations may define multiple fields, and so @item is on the    ; declarator so they each get distinct ranges.  ] @item  (type_qualifier)? @context) (comment) @annotation