| 490 | } |
| 491 | |
| 492 | static const cbm_token_t *expect(parser_t *p, cbm_token_type_t type) { |
| 493 | if (check(p, type)) { |
| 494 | return advance(p); |
| 495 | } |
| 496 | snprintf(p->error, sizeof(p->error), "expected token type %d, got %d at pos %d", type, |
| 497 | peek(p)->type, peek(p)->pos); |
| 498 | return NULL; |
| 499 | } |
| 500 | |
| 501 | /* Parse inline properties: {key: "value", ...} */ |
| 502 | static int parse_props(parser_t *p, cbm_prop_filter_t **out, int *count) { |
no test coverage detected