retdec
num_var_name_gen.h
Go to the documentation of this file.
1 
8 #ifndef RETDEC_LLVMIR2HLL_VAR_NAME_GEN_VAR_NAME_GENS_NUM_VAR_NAME_GEN_H
9 #define RETDEC_LLVMIR2HLL_VAR_NAME_GEN_VAR_NAME_GENS_NUM_VAR_NAME_GEN_H
10 
11 #include <string>
12 
15 
16 namespace retdec {
17 namespace llvmir2hll {
18 
25 class NumVarNameGen: public VarNameGen {
26 public:
27  // TODO Refactor "var" into a named constant.
28  static UPtr<VarNameGen> create(std::string prefix = "var");
29 
30  virtual std::string getId() const override;
31  virtual void restart() override;
32  virtual std::string getNextVarName() override;
33 
34 private:
35  NumVarNameGen(std::string prefix);
36 
37 private:
39  unsigned nextVarNum;
40 };
41 
42 } // namespace llvmir2hll
43 } // namespace retdec
44 
45 #endif
A generator of variable names of the form prefixN, where N is a number.
Definition: num_var_name_gen.h:25
NumVarNameGen(std::string prefix)
Constructs a new NumVarNameGen object.
Definition: num_var_name_gen.cpp:29
virtual std::string getId() const override
Returns the ID of the generator.
Definition: num_var_name_gen.cpp:44
virtual void restart() override
Restarts the generator to start returning variable names from the beginning.
Definition: num_var_name_gen.cpp:48
static UPtr< VarNameGen > create(std::string prefix="var")
Creates a new NumVarNameGen object.
Definition: num_var_name_gen.cpp:40
virtual std::string getNextVarName() override
Returns a next variable name.
Definition: num_var_name_gen.cpp:52
unsigned nextVarNum
Next variable number to be used.
Definition: num_var_name_gen.h:39
A base class for all generators of variable names.
Definition: var_name_gen.h:26
const std::string prefix
The prefix of all returned variable names.
Definition: var_name_gen.h:59
A library providing API for working with back-end IR.
std::unique_ptr< T > UPtr
An alias for a unique pointer.
Definition: smart_ptr.h:26
Definition: archive_wrapper.h:19
Declarations, aliases, macros, etc. for the use of smart pointers.
A base class for all generators of variable names.