| 573 | } |
| 574 | |
| 575 | bool cbm_kind_in_set(TSNode node, const char **types) { |
| 576 | if (!types || !types[0]) { |
| 577 | return false; |
| 578 | } |
| 579 | const TSLanguage *lang = ts_node_language(node); |
| 580 | if (lang) { |
| 581 | ks_slot_t *s = ks_get(lang, (const char *const *)types); |
| 582 | if (s && s->exact && s->bits) { |
| 583 | TSSymbol sym = ts_node_symbol(node); |
| 584 | return sym < s->nsyms && (((s->bits[sym >> 6] >> (sym & 63)) & 1U) != 0); |
| 585 | } |
| 586 | } |
| 587 | return kind_in_set_strcmp(node, (const char *const *)types); |
| 588 | } |
| 589 | |
| 590 | bool cbm_is_namespace_scope_kind(CBMLanguage lang, const char *kind) { |
| 591 | if (!kind) { |
no test coverage detected