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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user