|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
#include <python-frontend/json_utils.h>#include <python-frontend/python-dict/python_dict_handler.h>#include <python-frontend/python_converter.h>#include <python-frontend/python_expr_builder.h>#include <python-frontend/python-list/python_list.h>#include <python-frontend/string/string_builder.h>#include <python-frontend/tuple/tuple_handler.h>#include <python-frontend/type/type_handler.h>#include <irep2/irep2_utils.h>#include <util/arith/arith_tools.h>#include <util/lang/c_types.h>#include <util/config/config.h>#include <util/symtab/context.h>#include <util/irep/migrate.h>#include <util/lang/python_types.h>#include <util/irep/std_code.h>#include <algorithm>#include <functional>#include <sstream>Go to the source code of this file.
Functions | |
| const nlohmann::json * | constant_bound_to (const nlohmann::json &node, const std::string &name) |
The Constant that statement node binds to name alone, as in name = c or name: T = c, else null. | |
| void | count_name_bindings (const nlohmann::json &node, const std::string &name, unsigned &count, const nlohmann::json *&value) |
Counts every binding of name in node (a Name it stores or deletes, a parameter, def, import, handler or global declaration of that name), and sets value to the Constant of a lone name = c or name: T = c. | |
| std::string | dict_key_id (const nlohmann::json &key, const nlohmann::json &ast) |
| The source literal of a constant dict key, e.g. | |
|
inline |
The Constant that statement node binds to name alone, as in name = c or name: T = c, else null.
|
inline |
Counts every binding of name in node (a Name it stores or deletes, a parameter, def, import, handler or global declaration of that name), and sets value to the Constant of a lone name = c or name: T = c.
Any other occurrence of the name as a string, e.g. an attribute, also counts: a false binding only loses the resolution.
|
inline |
The source literal of a constant dict key, e.g.
1 or "a", or of the constant a key name is bound to when ast binds that name nowhere else, in any scope; empty for any other key. A value's recorded type is filed under it, so a read at a constant key consults only the values written there.