1// sass.hpp must go before all system headers to get the
2// __EXTENSIONS__ fix on Solaris.
3#include "sass.hpp"
4
5#include "constants.hpp"
6
7namespace Sass {
8 namespace Constants {
9
10 extern const unsigned long MaxCallStack = 1024;
11
12 // https://github.com/sass/libsass/issues/592
13 // https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
14 // https://github.com/sass/sass/issues/1495#issuecomment-61189114
15 extern const unsigned long Specificity_Star = 0;
16 extern const unsigned long Specificity_Universal = 0;
17 extern const unsigned long Specificity_Element = 1;
18 extern const unsigned long Specificity_Base = 1000;
19 extern const unsigned long Specificity_Class = 1000;
20 extern const unsigned long Specificity_Attr = 1000;
21 extern const unsigned long Specificity_Pseudo = 1000;
22 extern const unsigned long Specificity_ID = 1000000;
23
24 extern const int UnificationOrder_Element = 1;
25 extern const int UnificationOrder_Id = 2;
26 extern const int UnificationOrder_Class = 2;
27 extern const int UnificationOrder_Attribute = 3;
28 extern const int UnificationOrder_PseudoClass = 4;
29 extern const int UnificationOrder_Wrapped = 5;
30 extern const int UnificationOrder_PseudoElement = 6;
31 extern const int UnificationOrder_Placeholder = 7;
32
33 // sass keywords
34 extern const char at_root_kwd[] = "@at-root";
35 extern const char import_kwd[] = "@import";
36 extern const char mixin_kwd[] = "@mixin";
37 extern const char function_kwd[] = "@function";
38 extern const char return_kwd[] = "@return";
39 extern const char include_kwd[] = "@include";
40 extern const char content_kwd[] = "@content";
41 extern const char extend_kwd[] = "@extend";
42 extern const char if_kwd[] = "@if";
43 extern const char else_kwd[] = "@else";
44 extern const char if_after_else_kwd[] = "if";
45 extern const char for_kwd[] = "@for";
46 extern const char from_kwd[] = "from";
47 extern const char to_kwd[] = "to";
48 extern const char of_kwd[] = "of";
49 extern const char through_kwd[] = "through";
50 extern const char each_kwd[] = "@each";
51 extern const char in_kwd[] = "in";
52 extern const char while_kwd[] = "@while";
53 extern const char warn_kwd[] = "@warn";
54 extern const char error_kwd[] = "@error";
55 extern const char debug_kwd[] = "@debug";
56 extern const char default_kwd[] = "default";
57 extern const char global_kwd[] = "global";
58 extern const char null_kwd[] = "null";
59 extern const char optional_kwd[] = "optional";
60 extern const char with_kwd[] = "with";
61 extern const char without_kwd[] = "without";
62 extern const char all_kwd[] = "all";
63 extern const char rule_kwd[] = "rule";
64
65 // css standard units
66 extern const char em_kwd[] = "em";
67 extern const char ex_kwd[] = "ex";
68 extern const char px_kwd[] = "px";
69 extern const char cm_kwd[] = "cm";
70 extern const char mm_kwd[] = "mm";
71 extern const char pt_kwd[] = "pt";
72 extern const char pc_kwd[] = "pc";
73 extern const char deg_kwd[] = "deg";
74 extern const char rad_kwd[] = "rad";
75 extern const char grad_kwd[] = "grad";
76 extern const char turn_kwd[] = "turn";
77 extern const char ms_kwd[] = "ms";
78 extern const char s_kwd[] = "s";
79 extern const char Hz_kwd[] = "Hz";
80 extern const char kHz_kwd[] = "kHz";
81
82 // vendor prefixes
83 extern const char vendor_opera_kwd[] = "-o-";
84 extern const char vendor_webkit_kwd[] = "-webkit-";
85 extern const char vendor_mozilla_kwd[] = "-moz-";
86 extern const char vendor_ms_kwd[] = "-ms-";
87 extern const char vendor_khtml_kwd[] = "-khtml-";
88
89 // css functions and keywords
90 extern const char charset_kwd[] = "@charset";
91 extern const char media_kwd[] = "@media";
92 extern const char supports_kwd[] = "@supports";
93 extern const char keyframes_kwd[] = "keyframes";
94 extern const char only_kwd[] = "only";
95 extern const char rgb_fn_kwd[] = "rgb(";
96 extern const char url_fn_kwd[] = "url(";
97 extern const char url_kwd[] = "url";
98 // extern const char url_prefix_fn_kwd[] = "url-prefix(";
99 extern const char important_kwd[] = "important";
100 extern const char pseudo_not_fn_kwd[] = ":not(";
101 extern const char even_kwd[] = "even";
102 extern const char odd_kwd[] = "odd";
103 extern const char progid_kwd[] = "progid";
104 extern const char expression_kwd[] = "expression";
105 extern const char calc_fn_kwd[] = "calc";
106
107 extern const char almost_any_value_class[] = "\"'#!;{}";
108
109 // css selector keywords
110 extern const char sel_deep_kwd[] = "/deep/";
111
112 // css attribute-matching operators
113 extern const char tilde_equal[] = "~=";
114 extern const char pipe_equal[] = "|=";
115 extern const char caret_equal[] = "^=";
116 extern const char dollar_equal[] = "$=";
117 extern const char star_equal[] = "*=";
118
119 // relational & logical operators and constants
120 extern const char and_kwd[] = "and";
121 extern const char or_kwd[] = "or";
122 extern const char not_kwd[] = "not";
123 extern const char gt[] = ">";
124 extern const char gte[] = ">=";
125 extern const char lt[] = "<";
126 extern const char lte[] = "<=";
127 extern const char eq[] = "==";
128 extern const char neq[] = "!=";
129 extern const char true_kwd[] = "true";
130 extern const char false_kwd[] = "false";
131
132 // definition keywords
133 extern const char using_kwd[] = "using";
134
135 // miscellaneous punctuation and delimiters
136 extern const char percent_str[] = "%";
137 extern const char empty_str[] = "";
138 extern const char slash_slash[] = "//";
139 extern const char slash_star[] = "/*";
140 extern const char star_slash[] = "*/";
141 extern const char hash_lbrace[] = "#{";
142 extern const char rbrace[] = "}";
143 extern const char rparen[] = ")";
144 extern const char sign_chars[] = "-+";
145 extern const char op_chars[] = "-+";
146 extern const char hyphen[] = "-";
147 extern const char ellipsis[] = "...";
148 // extern const char url_space_chars[] = " \t\r\n\f";
149 // type names
150 extern const char numeric_name[] = "numeric value";
151 extern const char number_name[] = "number";
152 extern const char percentage_name[] = "percentage";
153 extern const char dimension_name[] = "numeric dimension";
154 extern const char string_name[] = "string";
155 extern const char bool_name[] = "bool";
156 extern const char color_name[] = "color";
157 extern const char list_name[] = "list";
158 extern const char map_name[] = "map";
159 extern const char arglist_name[] = "arglist";
160
161 // constants for uri parsing (RFC 3986 Appendix A.)
162 extern const char uri_chars[] = ":;/?!%&#@|[]{}'`^\"*+-.,_=~";
163 extern const char real_uri_chars[] = "#%&";
164
165 extern const char selector_combinator_child[] = ">";
166 extern const char selector_combinator_general[] = "~";
167 extern const char selector_combinator_adjacent[] = "+";
168
169 // some specific constant character classes
170 // they must be static to be useable by lexer
171 extern const char static_ops[] = "*/%";
172 // some character classes for the parser
173 extern const char selector_list_delims[] = "){};!";
174 extern const char complex_selector_delims[] = ",){};!";
175 extern const char selector_combinator_ops[] = "+~>";
176 // optional modifiers for alternative compare context
177 extern const char attribute_compare_modifiers[] = "~|^$*";
178 extern const char selector_lookahead_ops[] = "*&%,()[]";
179
180 // byte order marks
181 // (taken from http://en.wikipedia.org/wiki/Byte_order_mark)
182 extern const unsigned char utf_8_bom[] = { 0xEF, 0xBB, 0xBF };
183 extern const unsigned char utf_16_bom_be[] = { 0xFE, 0xFF };
184 extern const unsigned char utf_16_bom_le[] = { 0xFF, 0xFE };
185 extern const unsigned char utf_32_bom_be[] = { 0x00, 0x00, 0xFE, 0xFF };
186 extern const unsigned char utf_32_bom_le[] = { 0xFF, 0xFE, 0x00, 0x00 };
187 extern const unsigned char utf_7_bom_1[] = { 0x2B, 0x2F, 0x76, 0x38 };
188 extern const unsigned char utf_7_bom_2[] = { 0x2B, 0x2F, 0x76, 0x39 };
189 extern const unsigned char utf_7_bom_3[] = { 0x2B, 0x2F, 0x76, 0x2B };
190 extern const unsigned char utf_7_bom_4[] = { 0x2B, 0x2F, 0x76, 0x2F };
191 extern const unsigned char utf_7_bom_5[] = { 0x2B, 0x2F, 0x76, 0x38, 0x2D };
192 extern const unsigned char utf_1_bom[] = { 0xF7, 0x64, 0x4C };
193 extern const unsigned char utf_ebcdic_bom[] = { 0xDD, 0x73, 0x66, 0x73 };
194 extern const unsigned char scsu_bom[] = { 0x0E, 0xFE, 0xFF };
195 extern const unsigned char bocu_1_bom[] = { 0xFB, 0xEE, 0x28 };
196 extern const unsigned char gb_18030_bom[] = { 0x84, 0x31, 0x95, 0x33 };
197
198 }
199}
200

source code of gtk/subprojects/libsass/src/constants.cpp