| 423 | } |
| 424 | |
| 425 | void cbm_lex_free(cbm_lex_result_t *r) { |
| 426 | if (!r) { |
| 427 | return; |
| 428 | } |
| 429 | for (int i = 0; i < r->count; i++) { |
| 430 | safe_str_free(&r->tokens[i].text); |
| 431 | } |
| 432 | free(r->tokens); |
| 433 | free(r->error); |
| 434 | memset(r, 0, sizeof(*r)); |
| 435 | } |
| 436 | |
| 437 | /* ══════════════════════════════════════════════════════════════════ |
| 438 | * PARSER |
no test coverage detected