1 | #ifndef SASS_SASS_VALUES_H |
2 | #define SASS_SASS_VALUES_H |
3 | |
4 | #include "sass.h" |
5 | |
6 | struct Sass_Unknown { |
7 | enum Sass_Tag tag; |
8 | }; |
9 | |
10 | struct Sass_Boolean { |
11 | enum Sass_Tag tag; |
12 | bool value; |
13 | }; |
14 | |
15 | struct Sass_Number { |
16 | enum Sass_Tag tag; |
17 | double value; |
18 | char* unit; |
19 | }; |
20 | |
21 | struct Sass_Color { |
22 | enum Sass_Tag tag; |
23 | double r; |
24 | double g; |
25 | double b; |
26 | double a; |
27 | }; |
28 | |
29 | struct Sass_String { |
30 | enum Sass_Tag tag; |
31 | bool quoted; |
32 | char* value; |
33 | }; |
34 | |
35 | struct Sass_List { |
36 | enum Sass_Tag tag; |
37 | enum Sass_Separator separator; |
38 | bool is_bracketed; |
39 | size_t length; |
40 | // null terminated "array" |
41 | union Sass_Value** values; |
42 | }; |
43 | |
44 | struct Sass_Map { |
45 | enum Sass_Tag tag; |
46 | size_t length; |
47 | struct Sass_MapPair* pairs; |
48 | }; |
49 | |
50 | struct Sass_Null { |
51 | enum Sass_Tag tag; |
52 | }; |
53 | |
54 | struct Sass_Error { |
55 | enum Sass_Tag tag; |
56 | char* message; |
57 | }; |
58 | |
59 | struct Sass_Warning { |
60 | enum Sass_Tag tag; |
61 | char* message; |
62 | }; |
63 | |
64 | union Sass_Value { |
65 | struct Sass_Unknown unknown; |
66 | struct Sass_Boolean boolean; |
67 | struct Sass_Number number; |
68 | struct Sass_Color color; |
69 | struct Sass_String string; |
70 | struct Sass_List list; |
71 | struct Sass_Map map; |
72 | struct Sass_Null null; |
73 | struct Sass_Error error; |
74 | struct Sass_Warning warning; |
75 | }; |
76 | |
77 | struct Sass_MapPair { |
78 | union Sass_Value* key; |
79 | union Sass_Value* value; |
80 | }; |
81 | |
82 | #endif |
83 | |