grammar : parse \- in char classes as literal hyphen (#27591)

* grammar : accept "\-" escape in character classes

gbnf_escape_char_class() escapes '-' as "\-" but parse_char() rejected
that escape, so generated tool-call grammars failed to parse.

Assisted-by: Claude Code <claude@anthropic.com>

* tests : add parser test for "\-" in char classes

Assisted-by: Claude Code <claude@anthropic.com>

* tests : add integration test for "\-" in char classes

Assisted-by: Claude Code <claude@anthropic.com>

* tests : drop integration and parser tests
This commit is contained in:
Saad Ali
2026-08-25 09:05:24 +03:00
committed by GitHub
parent 814d84bc9d
commit eb25b7263e
+1
View File
@@ -172,6 +172,7 @@ static std::pair<uint32_t, const char *> parse_char(const char * src) {
case '"':
case '[':
case ']':
case '-':
return std::make_pair(src[1], src + 2);
default:
throw std::runtime_error(std::string("unknown escape at ") + src);