99namespace grammar_parser {
1010 // NOTE: assumes valid utf8 (but checks for overrun)
1111 // copied from llama.cpp
12- std::pair<uint32_t , const char *> decode_utf8 (const char * src) {
12+ static std::pair<uint32_t , const char *> decode_utf8 (const char * src) {
1313 static const int lookup[] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 3 , 4 };
1414 uint8_t first_byte = static_cast <uint8_t >(*src);
1515 uint8_t highbits = first_byte >> 4 ;
@@ -24,19 +24,19 @@ namespace grammar_parser {
2424 return std::make_pair (value, pos);
2525 }
2626
27- uint32_t get_symbol_id (parse_state & state, const char * src, size_t len) {
27+ static uint32_t get_symbol_id (parse_state & state, const char * src, size_t len) {
2828 uint32_t next_id = static_cast <uint32_t >(state.symbol_ids .size ());
2929 auto result = state.symbol_ids .insert (std::make_pair (std::string (src, len), next_id));
3030 return result.first ->second ;
3131 }
3232
33- uint32_t generate_symbol_id (parse_state & state, const std::string & base_name) {
33+ static uint32_t generate_symbol_id (parse_state & state, const std::string & base_name) {
3434 uint32_t next_id = static_cast <uint32_t >(state.symbol_ids .size ());
3535 state.symbol_ids [base_name + ' _' + std::to_string (next_id)] = next_id;
3636 return next_id;
3737 }
3838
39- void add_rule (
39+ static void add_rule (
4040 parse_state & state,
4141 uint32_t rule_id,
4242 const std::vector<llama_grammar_element> & rule) {
@@ -46,11 +46,11 @@ namespace grammar_parser {
4646 state.rules [rule_id] = rule;
4747 }
4848
49- bool is_word_char (char c) {
49+ static bool is_word_char (char c) {
5050 return (' a' <= c && c <= ' z' ) || (' A' <= c && c <= ' Z' ) || c == ' -' || (' 0' <= c && c <= ' 9' );
5151 }
5252
53- std::pair<uint32_t , const char *> parse_hex (const char * src, int size) {
53+ static std::pair<uint32_t , const char *> parse_hex (const char * src, int size) {
5454 const char * pos = src;
5555 const char * end = src + size;
5656 uint32_t value = 0 ;
@@ -73,7 +73,7 @@ namespace grammar_parser {
7373 return std::make_pair (value, pos);
7474 }
7575
76- const char * parse_space (const char * src, bool newline_ok) {
76+ static const char * parse_space (const char * src, bool newline_ok) {
7777 const char * pos = src;
7878 while (*pos == ' ' || *pos == ' \t ' || *pos == ' #' ||
7979 (newline_ok && (*pos == ' \r ' || *pos == ' \n ' ))) {
@@ -88,7 +88,7 @@ namespace grammar_parser {
8888 return pos;
8989 }
9090
91- const char * parse_name (const char * src) {
91+ static const char * parse_name (const char * src) {
9292 const char * pos = src;
9393 while (is_word_char (*pos)) {
9494 pos++;
@@ -99,7 +99,7 @@ namespace grammar_parser {
9999 return pos;
100100 }
101101
102- std::pair<uint32_t , const char *> parse_char (const char * src) {
102+ static std::pair<uint32_t , const char *> parse_char (const char * src) {
103103 if (*src == ' \\ ' ) {
104104 switch (src[1 ]) {
105105 case ' x' : return parse_hex (src + 2 , 2 );
@@ -129,7 +129,7 @@ namespace grammar_parser {
129129 uint32_t rule_id,
130130 bool is_nested);
131131
132- const char * parse_sequence (
132+ static const char * parse_sequence (
133133 parse_state & state,
134134 const char * src,
135135 const std::string & rule_name,
@@ -247,7 +247,7 @@ namespace grammar_parser {
247247 return pos;
248248 }
249249
250- const char * parse_rule (parse_state & state, const char * src) {
250+ static const char * parse_rule (parse_state & state, const char * src) {
251251 const char * name_end = parse_name (src);
252252 const char * pos = parse_space (name_end, false );
253253 size_t name_len = name_end - src;
@@ -285,7 +285,7 @@ namespace grammar_parser {
285285 }
286286 }
287287
288- void print_grammar_char (FILE * file, uint32_t c) {
288+ static void print_grammar_char (FILE * file, uint32_t c) {
289289 if (0x20 <= c && c <= 0x7f ) {
290290 fprintf (file, " %c" , static_cast <char >(c));
291291 } else {
@@ -294,7 +294,7 @@ namespace grammar_parser {
294294 }
295295 }
296296
297- bool is_char_element (llama_grammar_element elem) {
297+ static bool is_char_element (llama_grammar_element elem) {
298298 switch (elem.type ) {
299299 case LLAMA_GRETYPE_CHAR: return true ;
300300 case LLAMA_GRETYPE_CHAR_NOT: return true ;
@@ -304,7 +304,7 @@ namespace grammar_parser {
304304 }
305305 }
306306
307- void print_rule_binary (FILE * file, const std::vector<llama_grammar_element> & rule) {
307+ static void print_rule_binary (FILE * file, const std::vector<llama_grammar_element> & rule) {
308308 for (auto elem : rule) {
309309 switch (elem.type ) {
310310 case LLAMA_GRETYPE_END: fprintf (file, " END" ); break ;
@@ -334,7 +334,7 @@ namespace grammar_parser {
334334 fprintf (file, " \n " );
335335 }
336336
337- void print_rule (
337+ static void print_rule (
338338 FILE * file,
339339 uint32_t rule_id,
340340 const std::vector<llama_grammar_element> & rule,
0 commit comments