Helper: extract name from Java/C# field_declaration (declarator > name)
| 4519 | |
| 4520 | // Helper: extract name from Java/C# field_declaration (declarator > name) |
| 4521 | static const char *extract_java_field_name(CBMArena *a, TSNode field, const char *source) { |
| 4522 | TSNode declarator = ts_node_child_by_field_name(field, TS_FIELD("declarator")); |
| 4523 | if (ts_node_is_null(declarator)) { |
| 4524 | // Try iterating children for variable_declarator |
| 4525 | uint32_t n = ts_node_named_child_count(field); |
| 4526 | for (uint32_t i = 0; i < n; i++) { |
| 4527 | TSNode child = ts_node_named_child(field, i); |
| 4528 | if (strcmp(ts_node_type(child), "variable_declarator") == 0) { |
| 4529 | declarator = child; |
| 4530 | break; |
| 4531 | } |
| 4532 | } |
| 4533 | } |
| 4534 | if (ts_node_is_null(declarator)) { |
| 4535 | return NULL; |
| 4536 | } |
| 4537 | TSNode name = ts_node_child_by_field_name(declarator, TS_FIELD("name")); |
| 4538 | if (!ts_node_is_null(name)) { |
| 4539 | return cbm_node_text(a, name, source); |
| 4540 | } |
| 4541 | return NULL; |
| 4542 | } |
| 4543 | |
| 4544 | /* ── Variable name extractors by language group ─────────────────── */ |
| 4545 |
no test coverage detected