retdec
fruit_var_name_gen.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_LLVMIR2HLL_VAR_NAME_GEN_VAR_NAME_GENS_FRUIT_VAR_NAME_GEN_H
8 #define RETDEC_LLVMIR2HLL_VAR_NAME_GEN_VAR_NAME_GENS_FRUIT_VAR_NAME_GEN_H
9 
10 #include <cstddef>
11 #include <string>
12 
15 
16 namespace retdec {
17 namespace llvmir2hll {
18 
29 class FruitVarNameGen: public VarNameGen {
30 public:
31  static UPtr<VarNameGen> create(std::string prefix = "");
32 
33  virtual std::string getId() const override;
34  virtual void restart() override;
35  virtual std::string getNextVarName() override;
36 
37 private:
38  FruitVarNameGen(std::string prefix);
39 
40 private:
42  std::size_t nextFruitIndex;
43 };
44 
45 } // namespace llvmir2hll
46 } // namespace retdec
47 
48 #endif
A generator of fruit names as variable names.
Definition: fruit_var_name_gen.h:29
FruitVarNameGen(std::string prefix)
Constructs a new generator.
Definition: fruit_var_name_gen.cpp:85
virtual void restart() override
Restarts the generator to start returning variable names from the beginning.
Definition: fruit_var_name_gen.cpp:101
std::size_t nextFruitIndex
Index to the next fruit name.
Definition: fruit_var_name_gen.h:42
virtual std::string getNextVarName() override
Returns a next variable name.
Definition: fruit_var_name_gen.cpp:105
static UPtr< VarNameGen > create(std::string prefix="")
Creates a generator.
Definition: fruit_var_name_gen.cpp:93
virtual std::string getId() const override
Returns the ID of the generator.
Definition: fruit_var_name_gen.cpp:97
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.