to_c.hpp 895 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #define SASS_TO_C
  2. #ifndef SASS_OPERATION
  3. #include "operation.hpp"
  4. #endif
  5. #include "sass_values.h"
  6. namespace Sass {
  7. using namespace std;
  8. class AST_Node;
  9. class Boolean;
  10. class Number;
  11. class String_Constant;
  12. class List;
  13. class Map;
  14. class Null;
  15. class To_C : public Operation_CRTP<Sass_Value*, To_C> {
  16. Sass_Value* fallback_impl(AST_Node* n);
  17. public:
  18. To_C() { }
  19. virtual ~To_C() { }
  20. using Operation<Sass_Value*>::operator();
  21. Sass_Value* operator()(Boolean*);
  22. Sass_Value* operator()(Number*);
  23. Sass_Value* operator()(Color*);
  24. Sass_Value* operator()(String_Constant*);
  25. Sass_Value* operator()(List*);
  26. Sass_Value* operator()(Map*);
  27. Sass_Value* operator()(Null*);
  28. Sass_Value* operator()(Arguments*);
  29. Sass_Value* operator()(Argument*);
  30. template <typename U>
  31. Sass_Value* fallback(U x) { return fallback_impl(x); }
  32. };
  33. }