1#ifndef PYTHON_FRONTEND_STRING_HANDLER_UTILS_H
2#define PYTHON_FRONTEND_STRING_HANDLER_UTILS_H
4#include <nlohmann/json.hpp>
6#include <initializer_list>
8#include <unordered_map>
17 const std::string &method_name,
18 const nlohmann::json &keywords,
19 bool reject_kwargs_unpacking =
true);
23 const std::string &name);
26 const std::string &method_name,
28 std::initializer_list<const char *> allowed);
31 const std::string &method_name,
32 const nlohmann::json &args,
34 const std::string &arg_name,
35 std::size_t positional_index,
39 const std::string &method_name,
40 const nlohmann::json &args,
42 const std::string &arg_name,
43 std::size_t positional_index,
44 const std::string &error_message);
47 const nlohmann::json *arg_node,
48 long long default_value,
52 const nlohmann::json &arg_node,
53 const std::string &error_message,
57 const nlohmann::json *arg_node,
58 const std::string &default_value,
60 const std::function<
bool(
const nlohmann::json &, std::string &)>
61 &extract_constant_string_cb,
62 const std::function<
bool(
const nlohmann::json &)> &is_none_literal);
Main converter for transforming Python AST into ESBMC's intermediate representation.
Definition python_converter.h:76
Definition string_handler_utils.cpp:8
const nlohmann::json * resolve_positional_or_keyword_arg(const std::string &method_name, const nlohmann::json &args, const keyword_valuest &keyword_values, const std::string &arg_name, std::size_t positional_index, bool required)
Definition string_handler_utils.cpp:105
void ensure_allowed_keywords(const std::string &method_name, const keyword_valuest &keyword_values, std::initializer_list< const char * > allowed)
Definition string_handler_utils.cpp:79
std::unordered_map< std::string, const nlohmann::json * > keyword_valuest
Definition string_handler_utils.h:14
long long optional_constant_int_arg_or_default(const nlohmann::json *arg_node, long long default_value, python_converter &converter)
Definition string_handler_utils.cpp:146
const nlohmann::json * find_keyword_value(const keyword_valuest &keyword_values, const std::string &name)
Definition string_handler_utils.cpp:71
keyword_valuest collect_keyword_values(const std::string &method_name, const nlohmann::json &keywords, bool reject_kwargs_unpacking)
Definition string_handler_utils.cpp:9
std::string optional_constant_string_arg_or_default(const nlohmann::json *arg_node, const std::string &default_value, python_converter &converter, const std::function< bool(const nlohmann::json &, std::string &)> &extract_constant_string_cb, const std::function< bool(const nlohmann::json &)> &is_none_literal)
const nlohmann::json * required_arg_node_or_throw(const std::string &method_name, const nlohmann::json &args, const keyword_valuest &keyword_values, const std::string &arg_name, std::size_t positional_index, const std::string &error_message)
Definition string_handler_utils.cpp:131
long long required_constant_int_arg(const nlohmann::json &arg_node, const std::string &error_message, python_converter &converter)
Definition string_handler_utils.cpp:166