CSS-Sass
view release on metacpan or search on metacpan
libsass/prelexer.hpp view on Meta::CPAN
const char* hyphens_and_identifier(const char* src);
const char* hyphens_and_name(const char* src);
const char* universal(const char* src);
// Match CSS id names.
const char* id_name(const char* src);
// Match CSS class names.
const char* class_name(const char* src);
// Attribute name in an attribute selector
const char* attribute_name(const char* src);
// Match placeholder selectors.
const char* placeholder(const char* src);
// Match CSS numeric constants.
const char* sign(const char* src);
const char* unsigned_number(const char* src);
const char* number(const char* src);
const char* coefficient(const char* src);
const char* binomial(const char* src);
const char* percentage(const char* src);
const char* ampersand(const char* src);
const char* dimension(const char* src);
const char* hex(const char* src);
const char* hexa(const char* src);
const char* hex0(const char* src);
// const char* rgb_prefix(const char* src);
// Match CSS uri specifiers.
const char* uri_prefix(const char* src);
const char* uri_value(const char* src);
// Match CSS "!important" keyword.
const char* important(const char* src);
// Match CSS "!optional" keyword.
const char* optional(const char* src);
// Match Sass "!default" keyword.
const char* default_flag(const char* src);
const char* global_flag(const char* src);
// Match CSS pseudo-class/element prefixes
const char* pseudo_prefix(const char* src);
// Match CSS function call openers.
const char* functional(const char* src);
const char* functional_schema(const char* src);
const char* pseudo_not(const char* src);
// Match CSS 'odd' and 'even' keywords for functional pseudo-classes.
const char* even(const char* src);
const char* odd(const char* src);
// Match CSS attribute-matching operators.
const char* exact_match(const char* src);
const char* class_match(const char* src);
const char* dash_match(const char* src);
const char* prefix_match(const char* src);
const char* suffix_match(const char* src);
const char* substring_match(const char* src);
// Match CSS combinators.
// const char* adjacent_to(const char* src);
// const char* precedes(const char* src);
// const char* parent_of(const char* src);
// const char* ancestor_of(const char* src);
// Match SCSS variable names.
const char* variable(const char* src);
// IE stuff
const char* ie_progid(const char* src);
const char* ie_expression(const char* src);
const char* ie_property(const char* src);
const char* ie_keyword_arg(const char* src);
// match urls
const char* url(const char* src);
// Path matching functions.
// const char* folder(const char* src);
// const char* folders(const char* src);
const char* static_string(const char* src);
const char* static_component(const char* src);
const char* static_value(const char* src);
// Utility functions for finding and counting characters in a string.
template<char c>
const char* find_first(const char* src) {
while (*src && *src != c) ++src;
return *src ? src : 0;
}
template<prelexer mx>
const char* find_first(const char* src) {
while (*src && !mx(src)) ++src;
return *src ? src : 0;
}
template<prelexer mx>
const char* find_first_in_interval(const char* beg, const char* end) {
bool esc = false;
while ((beg < end) && *beg) {
if (esc) esc = false;
else if (*beg == '\\') esc = true;
else if (mx(beg)) return beg;
++beg;
}
return 0;
}
template <prelexer mx>
unsigned int count_interval(const char* beg, const char* end) {
unsigned int counter = 0;
bool esc = false;
while (beg < end && *beg) {
const char* p;
if (esc) {
esc = false;
++beg;
} else if (*beg == '\\') {
esc = true;
++beg;
} else if ((p = mx(beg))) {
++counter;
beg = p;
}
else {
++beg;
}
}
return counter;
}
( run in 0.848 second using v1.01-cache-2.11-cpan-5735350b133 )