json-schema-to-grammar.h 764 B

1234567891011121314151617181920212223
  1. #pragma once
  2. #include <nlohmann/json_fwd.hpp>
  3. #include <functional>
  4. #include <string>
  5. std::string json_schema_to_grammar(const nlohmann::ordered_json & schema,
  6. bool force_gbnf = false);
  7. struct common_grammar_builder {
  8. std::function<std::string(const std::string &, const std::string &)> add_rule;
  9. std::function<std::string(const std::string &, const nlohmann::ordered_json &)> add_schema;
  10. std::function<void(nlohmann::ordered_json &)> resolve_refs;
  11. };
  12. struct common_grammar_options {
  13. bool dotall = false;
  14. };
  15. std::string gbnf_format_literal(const std::string & literal);
  16. std::string build_grammar(const std::function<void(const common_grammar_builder &)> & cb, const common_grammar_options & options = {});