From eb25b7263e1604b4382295563f5a924002d6f87c Mon Sep 17 00:00:00 2001 From: Saad Ali Date: Tue, 25 Aug 2026 11:05:24 +0500 Subject: [PATCH] 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 * tests : add parser test for "\-" in char classes Assisted-by: Claude Code * tests : add integration test for "\-" in char classes Assisted-by: Claude Code * tests : drop integration and parser tests --- src/llama-grammar.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/llama-grammar.cpp b/src/llama-grammar.cpp index c685346b63..f14215ac7e 100644 --- a/src/llama-grammar.cpp +++ b/src/llama-grammar.cpp @@ -172,6 +172,7 @@ static std::pair 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);