remove_placeholders.hpp 809 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include <iostream>
  3. #ifndef SASS_AST
  4. #include "ast.hpp"
  5. #endif
  6. #ifndef SASS_OPERATION
  7. #include "operation.hpp"
  8. #endif
  9. namespace Sass {
  10. using namespace std;
  11. struct Context;
  12. class Remove_Placeholders : public Operation_CRTP<void, Remove_Placeholders> {
  13. Context& ctx;
  14. void fallback_impl(AST_Node* n) {};
  15. public:
  16. Remove_Placeholders(Context&);
  17. virtual ~Remove_Placeholders() { }
  18. using Operation<void>::operator();
  19. void operator()(Block*);
  20. void operator()(Ruleset*);
  21. void operator()(Media_Block*);
  22. void operator()(At_Rule*);
  23. template <typename T>
  24. void clean_selector_list(T r);
  25. template <typename U>
  26. void fallback(U x) { return fallback_impl(x); }
  27. };
  28. }