genns.hpp 507 B

12345678910111213141516171819202122232425
  1. #ifndef GENNS_HPP
  2. #define GENNS_HPP
  3. struct GeneratorContext;
  4. #include <memory>
  5. #include <vector>
  6. class NamespaceGenerator
  7. {
  8. public:
  9. static std::shared_ptr<NamespaceGenerator> new_(
  10. GeneratorContext &ctx, const std::string &filename);
  11. virtual ~NamespaceGenerator() {}
  12. virtual std::string get_ns() const = 0;
  13. virtual std::vector<std::string> get_dependencies() const = 0;
  14. virtual std::string process_tree(
  15. const std::vector<std::string> &dep_headers) = 0;
  16. };
  17. #endif // GENNS_HPP