ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
jimple_class_member.h
Go to the documentation of this file.
1#ifndef ESBMC_JIMPLE_CLASS_MEMBER_H
2#define ESBMC_JIMPLE_CLASS_MEMBER_H
3
8
9#include <string>
10
17{
18public:
19 virtual exprt to_exprt(
20 contextt &ctx,
21 const std::string &class_name,
22 const std::string &file_name) const = 0;
23};
24
37{
38public:
39 virtual void from_json(const json &j) override;
40 virtual std::string to_string() const override;
41 virtual exprt to_exprt(
42 contextt &ctx,
43 const std::string &class_name,
44 const std::string &file_name) const override;
45
46 std::string name;
49};
50
51// TODO: class_definition
52
66{
67public:
68 virtual void from_json(const json &j) override;
69 virtual std::string to_string() const override;
70 virtual exprt to_exprt(
71 contextt &ctx,
72 const std::string &class_name,
73 const std::string &file_name) const override;
74
75 std::string name;
77 std::string throws;
79 std::shared_ptr<jimple_method_body> body;
80 std::vector<std::shared_ptr<jimple_type>> parameters;
81
82protected:
83 // We need an unique name for each function
84 std::string get_hash_name() const
85 {
86 // TODO: use some hashing to also use the types
87 int add = modifiers.is_static() ? 0 : 1;
88 return std::to_string(parameters.size() + add);
89 }
90};
91#endif // ESBMC_JIMPLE_CLASS_MEMBER_H
Definition context.h:57
Definition expr.h:34
Base interface for Jimple AST.
Definition jimple_ast.h:19
A class (or interface) field of a Jimple file.
Definition jimple_class_member.h:37
virtual exprt to_exprt(contextt &ctx, const std::string &class_name, const std::string &file_name) const override
Definition jimple_class_field.cpp:5
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_class_field.cpp:17
std::string name
Definition jimple_class_member.h:46
jimple_type type
Definition jimple_class_member.h:48
jimple_modifiers modifiers
Definition jimple_class_member.h:47
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_class_field.cpp:23
This class will hold any member of a Jimple File.
Definition jimple_class_member.h:17
virtual exprt to_exprt(contextt &ctx, const std::string &class_name, const std::string &file_name) const =0
A class (or interface) method of a Jimple file.
Definition jimple_class_member.h:66
std::shared_ptr< jimple_method_body > body
Definition jimple_class_member.h:79
std::string name
Definition jimple_class_member.h:75
jimple_modifiers modifiers
Definition jimple_class_member.h:76
virtual exprt to_exprt(contextt &ctx, const std::string &class_name, const std::string &file_name) const override
Definition jimple_method.cpp:5
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_method.cpp:98
std::vector< std::shared_ptr< jimple_type > > parameters
Definition jimple_class_member.h:80
jimple_type type
Definition jimple_class_member.h:78
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_method.cpp:131
std::string get_hash_name() const
Definition jimple_class_member.h:84
AST parsing for modifiers.
Definition jimple_modifiers.h:15
Definition jimple_type.h:14
nlohmann::json json
Definition json.cpp:12
void add(int64_t *A, int64_t *B, int64_t *C, int64_t a_rows, int64_t a_cols, int64_t b_rows, int64_t b_cols)
Definition umath.c:23