1#ifndef ESBMC_JIMPLE_STATEMENT_H
2#define ESBMC_JIMPLE_STATEMENT_H
23 const std::string &class_name,
24 const std::string &function_name)
const override;
25 virtual std::string
to_string()
const override;
40 virtual std::string
to_string()
const override;
45 const std::string &class_name,
46 const std::string &function_name,
54 auto increment =
variable !=
"" ? 1 : 0;
55 return std::to_string(
parameters.size() + increment);
73 const std::string &class_name,
74 const std::string &function_name,
77 virtual std::string
to_string()
const override;
78 virtual void from_json(
const json &j)
override;
79 std::shared_ptr<jimple_expr> expr;
91 virtual std::string
to_string()
const override;
96 const std::string &class_name,
97 const std::string &function_name,
101 std::shared_ptr<jimple_full_method_body>
members;
112 virtual std::string
to_string()
const override;
117 const std::string &class_name,
118 const std::string &function_name,
134 const std::string &class_name,
135 const std::string &function_name,
138 virtual std::string
to_string()
const override;
141 std::shared_ptr<jimple_expr>
lhs;
142 std::shared_ptr<jimple_expr>
rhs;
154 virtual std::string
to_string()
const override;
171 const std::string &class_name,
172 const std::string &function_name,
174 virtual std::string
to_string()
const override;
177 std::shared_ptr<jimple_expr>
cond;
191 const std::string &class_name,
192 const std::string &function_name,
194 virtual std::string
to_string()
const override;
195 virtual void from_json(
const json &j)
override;
197 std::shared_ptr<jimple_expr> expr;
Definition jimple_statement.h:148
virtual std::string to_string() const override
Parse-only: no statement enumerator maps to this class, so the body dispatcher can never build one an...
Definition jimple_statement.cpp:220
std::string variable
Definition jimple_statement.h:157
std::string value
Definition jimple_statement.h:158
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:227
An assignment statement.
Definition jimple_statement.h:130
bool is_skip
Definition jimple_statement.h:143
virtual expr2tc to_code2t(contextt &ctx, const std::string &class_name, const std::string &function_name, const locationt &loc) const override
The IREP2 form of this statement, located at loc.
Definition jimple_statement.cpp:150
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:144
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_statement.cpp:137
std::shared_ptr< jimple_expr > rhs
Definition jimple_statement.h:142
std::shared_ptr< jimple_expr > lhs
Definition jimple_statement.h:141
virtual std::string to_string() const =0
Converts the object into a string.
Goto statement.
Definition jimple_statement.h:110
virtual expr2tc to_code2t(contextt &ctx, const std::string &class_name, const std::string &function_name, const locationt &loc) const override
The IREP2 form of this statement, located at loc.
Definition jimple_statement.cpp:120
std::string label
Definition jimple_statement.h:121
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:104
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_statement.cpp:109
Definition jimple_statement.h:17
std::string at_identifier
Definition jimple_statement.h:28
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:35
std::string local_name
Definition jimple_statement.h:27
virtual exprt to_exprt(contextt &ctx, const std::string &class_name, const std::string &function_name) const override
Definition jimple_statement.cpp:14
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_statement.cpp:42
jimple_type type
Definition jimple_statement.h:29
An IF statement.
Definition jimple_statement.h:167
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:199
std::string label
Definition jimple_statement.h:178
std::shared_ptr< jimple_expr > cond
Definition jimple_statement.h:177
virtual expr2tc to_code2t(contextt &ctx, const std::string &class_name, const std::string &function_name, const locationt &loc) const override
The IREP2 form of this statement, located at loc.
Definition jimple_statement.cpp:208
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_statement.cpp:192
A function call.
Definition jimple_statement.h:38
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:240
std::string method
Definition jimple_statement.h:58
std::vector< std::shared_ptr< jimple_expr > > parameters
Definition jimple_statement.h:61
std::string base_class
Definition jimple_statement.h:57
virtual expr2tc to_code2t(contextt &ctx, const std::string &class_name, const std::string &function_name, const locationt &loc) const override
The IREP2 form of this statement, located at loc.
Definition jimple_statement.cpp:253
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_statement.cpp:233
std::string get_hash_name() const
Definition jimple_statement.h:50
std::string variable
Definition jimple_statement.h:59
A GOTO label.
Definition jimple_statement.h:89
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_statement.cpp:74
std::shared_ptr< jimple_full_method_body > members
Definition jimple_statement.h:101
virtual expr2tc to_code2t(contextt &ctx, const std::string &class_name, const std::string &function_name, const locationt &loc) const override
The IREP2 form of this statement, located at loc.
Definition jimple_statement.cpp:88
std::string label
Definition jimple_statement.h:100
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_statement.cpp:129
The contents of a Jimple method.
Definition jimple_method_body.h:48
Return statement.
Definition jimple_statement.h:70
Base class for Jimple Statements.
Definition jimple_statement.h:12
A throw statement.
Definition jimple_statement.h:188
Definition jimple_type.h:14
irep_container< expr2t > expr2tc
Definition irep2.h:431
nlohmann::json json
Definition json.cpp:12