85 typedef std::variant<std::monostate, std::string, std::pair<pseudo_class_e, pseudo_class_argument>>
argument;
105 typedef std::vector<std::pair<selector_list::const_iterator, declaration_block_list::const_iterator>>
rule_list;
111 virtual std::string
const&
id() = 0;
120 css(std::string
const& aStyle);
121 css(std::istream& aStyleSheet);
129 std::shared_ptr<std::istream> iStyleSheet;
virtual void apply(const declaration_block &aDeclarations)=0
virtual bool has_parent()=0
virtual i_visitor & parent()=0
virtual std::string const & id()=0
virtual std::string const & element_name()=0
@ ArbitrarySubstringAttributeValue
@ EndingSubstringAttributeValue
@ BeginniingSubstringAttributeValue
std::pair< type_e, arguments_type > value_type
selector(type_e aType, const arguments_type &aArguments=arguments_type())
std::optional< element > optional_element
neolib::vecarray< argument, 4, -1 > arguments_type
const arguments_type & arguments() const
std::variant< std::monostate, std::string > pseudo_class_argument
std::variant< std::monostate, std::string, std::pair< pseudo_class_e, pseudo_class_argument > > argument
std::vector< std::pair< selector_list::const_iterator, declaration_block_list::const_iterator > > rule_list
css(std::string const &aStyle)
std::list< selector > selector_list
void accept(i_visitor &aVisitor) const
std::string to_string() const
std::vector< declaration > declaration_block
css(std::istream &aStyleSheet)
std::list< declaration_block > declaration_block_list
const rule_list & rules() const
failed_to_open_style_sheet()