summaryrefslogtreecommitdiff
path: root/llama.cpp
diff options
context:
space:
mode:
authorClint Herron <hanclinto@gmail.com>2024-04-04 03:44:28 -0400
committerGitHub <noreply@github.com>2024-04-04 10:44:28 +0300
commit9b84ae1806cded4d6683c7b810925da5ead40607 (patch)
tree608fa8160885c5c7571c8bd400fa59d9a2ee7e78 /llama.cpp
parent4399f13fb9462cd06f3f154d0aee738425000fea (diff)
examples : add GBNF validator program (#5948)
* Revising GBNF validator program to be much simpler. * Changing from streams to using cstdio * Adding final newline character.
Diffstat (limited to 'llama.cpp')
-rw-r--r--llama.cpp22
1 files changed, 2 insertions, 20 deletions
diff --git a/llama.cpp b/llama.cpp
index 267ac4cc..9a1c1104 100644
--- a/llama.cpp
+++ b/llama.cpp
@@ -11621,28 +11621,10 @@ static std::vector<llama_vocab::id> llama_tokenize_internal(const llama_vocab &
// grammar - internal
//
-struct llama_partial_utf8 {
- uint32_t value; // bit value so far (unshifted)
- int n_remain; // num bytes remaining; -1 indicates invalid sequence
-};
-
-struct llama_grammar {
- const std::vector<std::vector<llama_grammar_element>> rules;
- std::vector<std::vector<const llama_grammar_element *>> stacks;
-
- // buffer for partially generated UTF-8 sequence from accepted tokens
- llama_partial_utf8 partial_utf8;
-};
-
-struct llama_grammar_candidate {
- size_t index;
- const uint32_t * code_points;
- llama_partial_utf8 partial_utf8;
-};
// Decodes a UTF-8 string which may end in an incomplete sequence. Adds a terminating 0 for use as
// pointer. If an invalid sequence is encountered, returns `llama_partial_utf8.n_remain == -1`.
-static std::pair<std::vector<uint32_t>, llama_partial_utf8> decode_utf8(
+std::pair<std::vector<uint32_t>, llama_partial_utf8> decode_utf8(
const std::string & src,
llama_partial_utf8 partial_start) {
static const int lookup[] = { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 3, 4 };
@@ -11844,7 +11826,7 @@ static void llama_grammar_advance_stack(
// be positioned at a character range (see `llama_grammar_advance_stack`), and
// produces the N possible stacks if the given char is accepted at those
// positions
-static std::vector<std::vector<const llama_grammar_element *>> llama_grammar_accept(
+std::vector<std::vector<const llama_grammar_element *>> llama_grammar_accept(
const std::vector<std::vector<llama_grammar_element>> & rules,
const std::vector<std::vector<const llama_grammar_element *>> & stacks,
const uint32_t chr) {