| 431 | } |
| 432 | |
| 433 | const char * llama_grammar_parser::parse_alternates( |
| 434 | const char * src, |
| 435 | const std::string & rule_name, |
| 436 | uint32_t rule_id, |
| 437 | bool is_nested) { |
| 438 | llama_grammar_rule rule; |
| 439 | const char * pos = parse_sequence(src, rule_name, rule, is_nested); |
| 440 | while (*pos == '|') { |
| 441 | rule.push_back({LLAMA_GRETYPE_ALT, 0}); |
| 442 | pos = parse_space(pos + 1, true); |
| 443 | pos = parse_sequence(pos, rule_name, rule, is_nested); |
| 444 | } |
| 445 | rule.push_back({LLAMA_GRETYPE_END, 0}); |
| 446 | add_rule(rule_id, rule); |
| 447 | return pos; |
| 448 | } |
| 449 | |
| 450 | const char * llama_grammar_parser::parse_sequence( |
| 451 | const char * src, |
nothing calls this directly
no test coverage detected