9 #ifndef CPROVER_GOTO_HARNESS_GOTO_HARNESS_GENERATOR_FACTORY_H
10 #define CPROVER_GOTO_HARNESS_GOTO_HARNESS_GENERATOR_FACTORY_H
21 #define GOTO_HARNESS_GENERATOR_TYPE_OPT "harness-type"
22 #define GOTO_HARNESS_GENERATOR_HARNESS_FUNCTION_NAME_OPT "harness-function-name"
25 #define GOTO_HARNESS_FACTORY_OPTIONS \
26 "(" GOTO_HARNESS_GENERATOR_TYPE_OPT "):" \
27 "(" GOTO_HARNESS_GENERATOR_HARNESS_FUNCTION_NAME_OPT "):" \
38 std::function<std::unique_ptr<goto_harness_generatort>()>;
46 std::string generator_name,
51 std::unique_ptr<goto_harness_generatort>
factory(
52 const std::string &generator_name,
helper to select harness type by name.
std::map< std::string, build_generatort > generators
std::map< std::string, std::list< std::string > > generator_optionst
std::function< std::unique_ptr< goto_harness_generatort >()> build_generatort
the type of a function that produces a goto-harness generator.
std::unique_ptr< goto_harness_generatort > factory(const std::string &generator_name, const generator_optionst &generator_options, const goto_modelt &goto_model)
return a generator matching the generator name.
void register_generator(std::string generator_name, build_generatort build_generator)
register a new goto-harness generator with the given name.