CSS parser
-
template<typename HandlerT>
class css_parser : public orcus::css::parser_base Parser for CSS documents.
- Template Parameters:
HandlerT – Hanlder type with member functions for event callbacks. Refer to css_handler.
Parser handler
-
class css_handler
Empty handler for CSS parser. Sub-class from it and implement necessary methods.
Public Functions
-
inline void at_rule_name(std::string_view name)
Called upon encountering an at-rule.
- Parameters:
name – name of the at-rule.
-
inline void simple_selector_type(std::string_view type)
Called upon encountering a simple selector type. A simple selector may consist of
<type>.<class>#<id>
and this function only passes the type part of the simple selector expression.
- Parameters:
type – simple selector type.
-
inline void simple_selector_class(std::string_view cls)
Called upon encountering a simple selector class. A simple selector may consist of
<type>.<class>#<id>
and this function only passes the class part of the simple selector expression.
- Parameters:
cls – simple selector class.
-
inline void simple_selector_pseudo_element(orcus::css::pseudo_element_t pe)
Called upon encountering a pseudo element of a simple selector. For instance, given the following CSS block:
p::first-line { color: blue; text-transform: uppercase; }
the
first-line
part is the pseudo element of the selector namedp
.- Parameters:
pe – pseudo element of a simple selector.
-
inline void simple_selector_pseudo_class(orcus::css::pseudo_class_t pc)
Called upon encountering a pseudo class of a simple selector. For instance, given the following CSS block:
button:hover { color: blue; }
the
hover
part is the pseudo class of the selector namedbutton
.- Parameters:
pc – pseudo class of a simple selector.
-
inline void simple_selector_id(std::string_view id)
Called upon encountering a simple selector id. A simple selector may consist of
<type>.<class>#<id>
and this function only passes the id part of the simle selector expression.
- Parameters:
id – simple selector id.
-
inline void end_simple_selector()
Called at the end of a simple selector expression.
- Todo:
find out the difference between a simple selector and a selector, and document it.
-
inline void end_selector()
Called at the end of a selector expression.
- Todo:
find out the difference between a simple selector and a selector, and document it.
-
inline void combinator(orcus::css::combinator_t combinator)
Calling upon encountering a combinator. A combinator is an operator that combines other selectors. Given the following CSS block:
div > p { background-color: yellow; }
the
>
is the combinator that combines thediv
andp
selectors.- Parameters:
combinator – type of combinator encountered.
-
inline void property_name(std::string_view name)
Called at each property name.
- Parameters:
name – property name string.
-
inline void value(std::string_view value)
Called at each ordinary property value string.
- Parameters:
value – value string.
-
inline void rgb(uint8_t red, uint8_t green, uint8_t blue)
Called at each RGB color value of a property.
- Parameters:
red – value of red (0-255)
green – value of green (0-255)
blue – value of blue (0-255)
-
inline void rgba(uint8_t red, uint8_t green, uint8_t blue, double alpha)
Called at each RGB color value of a property with alpha transparency value.
- Parameters:
red – value of red (0-255)
green – value of green (0-255)
blue – value of blue (0-255)
alpha – alpha transparency value
-
inline void hsl(uint8_t hue, uint8_t sat, uint8_t light)
Called at each HSL color value of a property.
- Parameters:
hue – hue
sat – saturation
light – lightness
-
inline void hsla(uint8_t hue, uint8_t sat, uint8_t light, double alpha)
Called at each HSL color value of a property with alpha transparency value.
- Parameters:
hue – hue
sat – saturation
light – lightness
alpha – alpha value
-
inline void url(std::string_view url)
Called at each URL value of a property.
- Parameters:
url – URL value string.
-
inline void begin_parse()
Called when the parsing begins.
-
inline void end_parse()
Called when the parsing ends.
-
inline void begin_block()
Called at the beginning of each block. An opening brace ‘{’ marks the beginning of a block.
-
inline void end_block()
Called at the end of each block. A closing brace ‘}’ marks the end of a block.
-
inline void begin_property()
Called at the beginning of a single property expression. Each property expression may consist of
<name> : <value>, ..., <value>
terminated by either a
;
or}
.
-
inline void end_property()
Called at the end of a single property expression.
-
inline void at_rule_name(std::string_view name)
CSS types
-
enum class orcus::css::combinator_t
Values:
-
enumerator descendant
E F
whereF
is a descendant ofE
.
-
enumerator direct_child
E > F
whereF
is a direct child ofE
.
-
enumerator next_sibling
E + F
whereF
is a direct sibling ofE
whereE
precedesF
.
-
enumerator descendant
-
enum class orcus::css::property_function_t
List of functions used as property values.
Values:
-
enumerator unknown
-
enumerator hsl
-
enumerator hsla
-
enumerator rgb
-
enumerator rgba
-
enumerator url
-
enumerator unknown
-
enum class orcus::css::property_value_t
Values:
-
enumerator none
-
enumerator string
-
enumerator hsl
-
enumerator hsla
-
enumerator rgb
-
enumerator rgba
-
enumerator url
-
enumerator none
-
struct rgba_color_t
-
struct hsla_color_t
Constants
Pseudo elements
-
const pseudo_element_t orcus::css::pseudo_element_after
-
const pseudo_element_t orcus::css::pseudo_element_before
-
const pseudo_element_t orcus::css::pseudo_element_first_letter
-
const pseudo_element_t orcus::css::pseudo_element_first_line
-
const pseudo_element_t orcus::css::pseudo_element_selection
-
const pseudo_element_t orcus::css::pseudo_element_backdrop
Pseudo classes
-
const pseudo_class_t orcus::css::pseudo_class_active
-
const pseudo_class_t orcus::css::pseudo_class_checked
-
const pseudo_class_t orcus::css::pseudo_class_default
-
const pseudo_class_t orcus::css::pseudo_class_dir
-
const pseudo_class_t orcus::css::pseudo_class_disabled
-
const pseudo_class_t orcus::css::pseudo_class_empty
-
const pseudo_class_t orcus::css::pseudo_class_enabled
-
const pseudo_class_t orcus::css::pseudo_class_first
-
const pseudo_class_t orcus::css::pseudo_class_first_child
-
const pseudo_class_t orcus::css::pseudo_class_first_of_type
-
const pseudo_class_t orcus::css::pseudo_class_fullscreen
-
const pseudo_class_t orcus::css::pseudo_class_focus
-
const pseudo_class_t orcus::css::pseudo_class_hover
-
const pseudo_class_t orcus::css::pseudo_class_indeterminate
-
const pseudo_class_t orcus::css::pseudo_class_in_range
-
const pseudo_class_t orcus::css::pseudo_class_invalid
-
const pseudo_class_t orcus::css::pseudo_class_lang
-
const pseudo_class_t orcus::css::pseudo_class_last_child
-
const pseudo_class_t orcus::css::pseudo_class_last_of_type
-
const pseudo_class_t orcus::css::pseudo_class_left
-
const pseudo_class_t orcus::css::pseudo_class_link
-
const pseudo_class_t orcus::css::pseudo_class_not
-
const pseudo_class_t orcus::css::pseudo_class_nth_child
-
const pseudo_class_t orcus::css::pseudo_class_nth_last_child
-
const pseudo_class_t orcus::css::pseudo_class_nth_last_of_type
-
const pseudo_class_t orcus::css::pseudo_class_nth_of_type
-
const pseudo_class_t orcus::css::pseudo_class_only_child
-
const pseudo_class_t orcus::css::pseudo_class_only_of_type
-
const pseudo_class_t orcus::css::pseudo_class_optional
-
const pseudo_class_t orcus::css::pseudo_class_out_of_range
-
const pseudo_class_t orcus::css::pseudo_class_read_only
-
const pseudo_class_t orcus::css::pseudo_class_read_write
-
const pseudo_class_t orcus::css::pseudo_class_required
-
const pseudo_class_t orcus::css::pseudo_class_right
-
const pseudo_class_t orcus::css::pseudo_class_root
-
const pseudo_class_t orcus::css::pseudo_class_scope
-
const pseudo_class_t orcus::css::pseudo_class_target
-
const pseudo_class_t orcus::css::pseudo_class_valid
-
const pseudo_class_t orcus::css::pseudo_class_visited