#pragma once #include "json-schema.h" #include "json.h" #include #include std::string json_schema_to_grammar(const common_json & schema, bool force_gbnf = false); std::string json_schema_to_grammar(const common_chat_schema_document & schema); struct common_grammar_builder { std::function add_rule; std::function add_schema; }; struct common_grammar_options { bool dotall = false; }; std::string gbnf_format_literal(const std::string & literal); std::string build_grammar(const std::function & cb, const common_grammar_options & options = {});