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