ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
jimple_file.h
Go to the documentation of this file.
1#ifndef ESBMC_JIMPLE_FILE_H
2#define ESBMC_JIMPLE_FILE_H
3
7#include <util/irep/expr.h>
8
26class jimple_file : public jimple_ast
27{
28public:
29 // overrides
30 virtual void from_json(const json &j) override;
31 virtual std::string to_string() const override;
32
38 void load_file(const std::string &path);
39
40 // A file can be a class or interface
41 enum class file_type
42 {
45 };
46
47 // Get the file_type using a string
48 file_type from_string(const std::string &name) const;
49
50 // Convert file_type into a string
51 std::string to_string(const file_type &ft) const;
52
56 virtual exprt to_exprt(contextt &ctx) const;
57
58 bool is_interface() const
59 {
60 return mode == file_type::Interface;
61 }
63 std::string class_name;
64 std::string extends;
65 std::string implements;
67 std::vector<std::shared_ptr<jimple_class_member>> body;
68
69private:
70 std::map<std::string, file_type> from_map = {
71 {"Class", file_type::Class},
72 {"Interface", file_type::Interface}};
73
74 std::map<file_type, std::string> to_map = {
75 {file_type::Class, "Class"},
76 {file_type::Interface, "Interface"}};
77};
78#endif // ESBMC_JIMPLE_FILE_H
Definition context.h:57
Definition expr.h:34
Base interface for Jimple AST.
Definition jimple_ast.h:19
Main AST for Class/Interface.
Definition jimple_file.h:27
std::string class_name
Definition jimple_file.h:63
file_type from_string(const std::string &name) const
Definition jimple_file.cpp:89
virtual exprt to_exprt(contextt &ctx) const
convert the object into a exprt
Definition jimple_file.cpp:108
jimple_modifiers modifiers
Definition jimple_file.h:66
void load_file(const std::string &path)
initializes the object with a file
Definition jimple_file.cpp:99
file_type mode
Definition jimple_file.h:62
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_file.cpp:19
std::string implements
Definition jimple_file.h:65
std::vector< std::shared_ptr< jimple_class_member > > body
Definition jimple_file.h:67
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_file.cpp:40
std::string extends
Definition jimple_file.h:64
file_type
Definition jimple_file.h:42
@ Interface
Definition jimple_file.h:44
@ Class
Definition jimple_file.h:43
bool is_interface() const
Definition jimple_file.h:58
AST parsing for modifiers.
Definition jimple_modifiers.h:15
nlohmann::json json
Definition json.cpp:12
Definition path.py:1