ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
jimple_modifiers.h
Go to the documentation of this file.
1#ifndef ESBMC_JIMPLE_MODIFIERS_H
2#define ESBMC_JIMPLE_MODIFIERS_H
3
5
15{
16public:
17 // overrides
18 virtual void from_json(const json &j) override;
19 virtual std::string to_string() const override;
20
37 virtual modifier from_string(const std::string &name) const;
38 virtual std::string to_string(const modifier &ft) const;
39
41 {
42 return std::find(modifiers.begin(), modifiers.end(), other) !=
43 modifiers.end();
44 }
45
46 bool is_static() const
47 {
49 }
50
51 bool is_public() const
52 {
54 }
55
56 bool is_private() const
57 {
59 }
60
61 modifier at(const int i) const
62 {
63 return modifiers[i];
64 }
65
66protected:
67 std::vector<modifier> modifiers;
68
69private:
70 std::map<std::string, modifier> from_map = {
71 {"abstract", modifier::Abstract},
72 {"final", modifier::Final},
73 {"native", modifier::Native},
74 {"public", modifier::Public},
75 {"protected", modifier::Protected},
76 {"private", modifier::Private},
77 {"static", modifier::Static},
78 {"synchronized", modifier::Synchronized},
79 {"transient", modifier::Transient},
80 {"volatile", modifier::Volatile},
81 {"strictFp", modifier::StrictFp},
82 {"enum", modifier::Enum},
83 {"annotation", modifier::Annotation}};
84
85 std::map<modifier, std::string> to_map = {
86 {modifier::Abstract, "Abstract"},
87 {modifier::Final, "Final"},
88 {modifier::Native, "Native"},
89 {modifier::Public, "Public"},
90 {modifier::Protected, "Protected"},
91 {modifier::Private, "Private"},
92 {modifier::Static, "Static"},
93 {modifier::Synchronized, "Synchronized"},
94 {modifier::Transient, "Transient"},
95 {modifier::Volatile, "Volatile"},
96 {modifier::StrictFp, "StrictFp"},
97 {modifier::Enum, "Enum"},
98 {modifier::Annotation, "Annotation"}};
99};
100
101#endif // ESBMC_JIMPLE_MODIFIERS_H
Base interface for Jimple AST.
Definition jimple_ast.h:19
AST parsing for modifiers.
Definition jimple_modifiers.h:15
bool is_private() const
Definition jimple_modifiers.h:56
virtual modifier from_string(const std::string &name) const
Definition jimple_modifiers.cpp:12
virtual void from_json(const json &j) override
Initializes the current instance by parsing a JSON.
Definition jimple_modifiers.cpp:2
modifier
Definition jimple_modifiers.h:22
@ Public
Definition jimple_modifiers.h:26
@ Volatile
Definition jimple_modifiers.h:32
@ Private
Definition jimple_modifiers.h:28
@ Annotation
Definition jimple_modifiers.h:35
@ Protected
Definition jimple_modifiers.h:27
@ Static
Definition jimple_modifiers.h:29
@ Native
Definition jimple_modifiers.h:25
@ StrictFp
Definition jimple_modifiers.h:33
@ Transient
Definition jimple_modifiers.h:31
@ Final
Definition jimple_modifiers.h:24
@ Enum
Definition jimple_modifiers.h:34
@ Abstract
Definition jimple_modifiers.h:23
@ Synchronized
Definition jimple_modifiers.h:30
bool contains(modifier other) const
Definition jimple_modifiers.h:40
modifier at(const int i) const
Definition jimple_modifiers.h:61
std::vector< modifier > modifiers
Definition jimple_modifiers.h:67
virtual std::string to_string() const override
Converts the object into a string.
Definition jimple_modifiers.cpp:21
bool is_public() const
Definition jimple_modifiers.h:51
bool is_static() const
Definition jimple_modifiers.h:46
@ other
Definition converter_compare.cpp:887
nlohmann::json json
Definition json.cpp:12