ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
replace_symbol.h
Go to the documentation of this file.
1#ifndef CPROVER_REPLACE_SYMBOL_H
2#define CPROVER_REPLACE_SYMBOL_H
3
4//
5// true: did nothing
6// false: replaced something
7//
8
9#include <util/irep/expr.h>
10
12{
13public:
14 typedef std::unordered_map<irep_idt, exprt, irep_id_hash> expr_mapt;
15 typedef std::unordered_map<irep_idt, typet, irep_id_hash> type_mapt;
16
17 void insert(const irep_idt &identifier, const exprt &expr)
18 {
19 expr_map.insert(std::pair<irep_idt, exprt>(identifier, expr));
20 }
21
22 void insert(const irep_idt &identifier, const typet &type)
23 {
24 type_map.insert(std::pair<irep_idt, typet>(identifier, type));
25 }
26
27 virtual bool replace(exprt &dest);
28 virtual bool replace(typet &dest);
29
30 replace_symbolt() = default;
31 virtual ~replace_symbolt() = default;
32
33protected:
36};
37
38#endif
Definition expr.h:34
Definition irep_idt.h:12
std::unordered_map< irep_idt, exprt, irep_id_hash > expr_mapt
Definition replace_symbol.h:14
std::unordered_map< irep_idt, typet, irep_id_hash > type_mapt
Definition replace_symbol.h:15
replace_symbolt()=default
void insert(const irep_idt &identifier, const exprt &expr)
Definition replace_symbol.h:17
void insert(const irep_idt &identifier, const typet &type)
Definition replace_symbol.h:22
virtual ~replace_symbolt()=default
type_mapt type_map
Definition replace_symbol.h:35
expr_mapt expr_map
Definition replace_symbol.h:34
virtual bool replace(exprt &dest)
Definition replace_symbol.cpp:4
Definition type.h:9
@ identifier
Definition nested_func_transform.cpp:62