1 | #ifndef SASS_TO_VALUE_H |
---|---|
2 | #define SASS_TO_VALUE_H |
3 | |
4 | #include "operation.hpp" |
5 | #include "sass/values.h" |
6 | #include "ast_fwd_decl.hpp" |
7 | |
8 | namespace Sass { |
9 | |
10 | class To_Value : public Operation_CRTP<Value*, To_Value> { |
11 | |
12 | private: |
13 | |
14 | Context& ctx; |
15 | |
16 | public: |
17 | |
18 | To_Value(Context& ctx) |
19 | : ctx(ctx) |
20 | { } |
21 | ~To_Value() { } |
22 | using Operation<Value*>::operator(); |
23 | |
24 | Value* operator()(Argument*); |
25 | Value* operator()(Boolean*); |
26 | Value* operator()(Number*); |
27 | Value* operator()(Color_RGBA*); |
28 | Value* operator()(Color_HSLA*); |
29 | Value* operator()(String_Constant*); |
30 | Value* operator()(String_Quoted*); |
31 | Value* operator()(Custom_Warning*); |
32 | Value* operator()(Custom_Error*); |
33 | Value* operator()(List*); |
34 | Value* operator()(Map*); |
35 | Value* operator()(Null*); |
36 | Value* operator()(Function*); |
37 | |
38 | // convert to string via `To_String` |
39 | Value* operator()(SelectorList*); |
40 | Value* operator()(Binary_Expression*); |
41 | |
42 | }; |
43 | |
44 | } |
45 | |
46 | #endif |
47 |