Initial commit
[yaffs-website] / node_modules / node-sass / src / libsass / src / sass_values.hpp
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