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