#include "sass.hpp"
#include "constants.hpp"
namespace Sass {
namespace Constants {
extern const unsigned long MaxCallStack = 1024;
// https://github.com/sass/libsass/issues/592
// https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
// https://github.com/sass/sass/issues/1495#issuecomment-61189114
extern const unsigned long Specificity_Star = 0;
extern const unsigned long Specificity_Universal = 0;
extern const unsigned long Specificity_Element = 1;
extern const unsigned long Specificity_Base = 1000;
extern const unsigned long Specificity_Class = 1000;
extern const unsigned long Specificity_Attr = 1000;
extern const unsigned long Specificity_Pseudo = 1000;
extern const unsigned long Specificity_ID = 1000000;
// sass keywords
extern const char at_root_kwd[] = "@at-root";
extern const char import_kwd[] = "@import";
extern const char mixin_kwd[] = "@mixin";
extern const char function_kwd[] = "@function";
extern const char return_kwd[] = "@return";
extern const char include_kwd[] = "@include";
extern const char content_kwd[] = "@content";
extern const char extend_kwd[] = "@extend";
extern const char if_kwd[] = "@if";
extern const char else_kwd[] = "@else";
extern const char if_after_else_kwd[] = "if";
extern const char for_kwd[] = "@for";
extern const char from_kwd[] = "from";
extern const char to_kwd[] = "to";
extern const char through_kwd[] = "through";
extern const char each_kwd[] = "@each";
extern const char in_kwd[] = "in";
extern const char while_kwd[] = "@while";
extern const char warn_kwd[] = "@warn";
extern const char error_kwd[] = "@error";
extern const char debug_kwd[] = "@debug";
extern const char default_kwd[] = "default";
extern const char global_kwd[] = "global";
extern const char null_kwd[] = "null";
extern const char optional_kwd[] = "optional";
extern const char with_kwd[] = "with";
extern const char without_kwd[] = "without";
extern const char all_kwd[] = "all";
extern const char rule_kwd[] = "rule";
// css standard units
extern const char em_kwd[] = "em";
extern const char ex_kwd[] = "ex";
extern const char px_kwd[] = "px";
extern const char cm_kwd[] = "cm";
extern const char mm_kwd[] = "mm";
extern const char pt_kwd[] = "pt";
extern const char pc_kwd[] = "pc";
extern const char deg_kwd[] = "deg";
extern const char rad_kwd[] = "rad";
extern const char grad_kwd[] = "grad";
extern const char turn_kwd[] = "turn";
extern const char ms_kwd[] = "ms";
extern const char s_kwd[] = "s";
extern const char Hz_kwd[] = "Hz";
extern const char kHz_kwd[] = "kHz";
// vendor prefixes
extern const char vendor_opera_kwd[] = "-o-";
extern const char vendor_webkit_kwd[] = "-webkit-";
extern const char vendor_mozilla_kwd[] = "-moz-";
extern const char vendor_ms_kwd[] = "-ms-";
extern const char vendor_khtml_kwd[] = "-khtml-";
// css functions and keywords
extern const char charset_kwd[] = "@charset";
extern const char media_kwd[] = "@media";
extern const char supports_kwd[] = "@supports";
extern const char keyframes_kwd[] = "keyframes";
extern const char only_kwd[] = "only";
extern const char rgb_kwd[] = "rgb(";
extern const char url_kwd[] = "url";
// extern const char url_prefix_kwd[] = "url-prefix(";
extern const char important_kwd[] = "important";
extern const char pseudo_not_kwd[] = ":not(";
extern const char even_kwd[] = "even";
extern const char odd_kwd[] = "odd";
extern const char progid_kwd[] = "progid";
extern const char expression_kwd[] = "expression";
extern const char calc_fn_kwd[] = "calc";
extern const char almost_any_value_class[] = "\"'#!;{}";
// css selector keywords
extern const char sel_deep_kwd[] = "/deep/";
// css attribute-matching operators
extern const char tilde_equal[] = "~=";
extern const char pipe_equal[] = "|=";
extern const char caret_equal[] = "^=";
extern const char dollar_equal[] = "$=";
extern const char star_equal[] = "*=";
// relational & logical operators and constants
extern const char and_kwd[] = "and";
extern const char or_kwd[] = "or";
extern const char not_kwd[] = "not";
extern const char gt[] = ">";
extern const char gte[] = ">=";
extern const char lt[] = "<";
extern const char lte[] = "<=";
extern const char eq[] = "==";
extern const char neq[] = "!=";
extern const char true_kwd[] = "true";
extern const char false_kwd[] = "false";
// miscellaneous punctuation and delimiters
extern const char percent_str[] = "%";
extern const char empty_str[] = "";
extern const char slash_slash[] = "//";
extern const char slash_star[] = "/*";
extern const char star_slash[] = "*/";
extern const char hash_lbrace[] = "#{";
extern const char rbrace[] = "}";
extern const char rparen[] = ")";
extern const char sign_chars[] = "-+";
extern const char op_chars[] = "-+";
extern const char hyphen[] = "-";
extern const char ellipsis[] = "...";
// extern const char url_space_chars[] = " \t\r\n\f";
// type names
extern const char numeric_name[] = "numeric value";
extern const char number_name[] = "number";
extern const char percentage_name[] = "percentage";
extern const char dimension_name[] = "numeric dimension";
extern const char string_name[] = "string";
extern const char bool_name[] = "bool";
extern const char color_name[] = "color";
extern const char list_name[] = "list";
extern const char map_name[] = "map";
extern const char arglist_name[] = "arglist";
// constants for uri parsing (RFC 3986 Appendix A.)
extern const char uri_chars[] = ":;/?!%&#@|[]{}'`^\"*+-.,_=~";
extern const char real_uri_chars[] = "#%&";
// some specific constant character classes
// they must be static to be useable by lexer
extern const char static_ops[] = "*/%";
// some character classes for the parser
extern const char selector_list_delims[] = "){};!";
extern const char complex_selector_delims[] = ",){};!";
extern const char selector_combinator_ops[] = "+~>";
// optional modifiers for alternative compare context
extern const char attribute_compare_modifiers[] = "~|^$*";
extern const char selector_lookahead_ops[] = "*&%,()[]";
// byte order marks
// (taken from http://en.wikipedia.org/wiki/Byte_order_mark)
extern const unsigned char utf_8_bom[] = { 0xEF, 0xBB, 0xBF };
extern const unsigned char utf_16_bom_be[] = { 0xFE, 0xFF };
extern const unsigned char utf_16_bom_le[] = { 0xFF, 0xFE };
extern const unsigned char utf_32_bom_be[] = { 0x00, 0x00, 0xFE, 0xFF };
extern const unsigned char utf_32_bom_le[] = { 0xFF, 0xFE, 0x00, 0x00 };
extern const unsigned char utf_7_bom_1[] = { 0x2B, 0x2F, 0x76, 0x38 };
extern const unsigned char utf_7_bom_2[] = { 0x2B, 0x2F, 0x76, 0x39 };
extern const unsigned char utf_7_bom_3[] = { 0x2B, 0x2F, 0x76, 0x2B };
extern const unsigned char utf_7_bom_4[] = { 0x2B, 0x2F, 0x76, 0x2F };
extern const unsigned char utf_7_bom_5[] = { 0x2B, 0x2F, 0x76, 0x38, 0x2D };
extern const unsigned char utf_1_bom[] = { 0xF7, 0x64, 0x4C };
extern const unsigned char utf_ebcdic_bom[] = { 0xDD, 0x73, 0x66, 0x73 };
extern const unsigned char scsu_bom[] = { 0x0E, 0xFE, 0xFF };
extern const unsigned char bocu_1_bom[] = { 0xFB, 0xEE, 0x28 };
extern const unsigned char gb_18030_bom[] = { 0x84, 0x31, 0x95, 0x33 };
}
}