1#ifndef SASS_SASS_VALUES_H
2#define SASS_SASS_VALUES_H
3
4#include "sass.h"
5
6struct Sass_Unknown {
7 enum Sass_Tag tag;
8};
9
10struct Sass_Boolean {
11 enum Sass_Tag tag;
12 bool value;
13};
14
15struct Sass_Number {
16 enum Sass_Tag tag;
17 double value;
18 char* unit;
19};
20
21struct Sass_Color {
22 enum Sass_Tag tag;
23 double r;
24 double g;
25 double b;
26 double a;
27};
28
29struct Sass_String {
30 enum Sass_Tag tag;
31 bool quoted;
32 char* value;
33};
34
35struct 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
44struct Sass_Map {
45 enum Sass_Tag tag;
46 size_t length;
47 struct Sass_MapPair* pairs;
48};
49
50struct Sass_Null {
51 enum Sass_Tag tag;
52};
53
54struct Sass_Error {
55 enum Sass_Tag tag;
56 char* message;
57};
58
59struct Sass_Warning {
60 enum Sass_Tag tag;
61 char* message;
62};
63
64union 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
77struct Sass_MapPair {
78 union Sass_Value* key;
79 union Sass_Value* value;
80};
81
82#endif
83

source code of gtk/subprojects/libsass/src/sass_values.hpp