Orcus
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
orcus::css::parser_base Class Reference
Inheritance diagram for orcus::css::parser_base:
orcus::parser_base orcus::css_parser< _Handler >

Public Member Functions

 parser_base (const char *p, size_t n)
 

Protected Member Functions

void identifier (const char *&p, size_t &len, std::string_view extra=std::string_view{})
 
uint8_t parse_uint8 ()
 
std::string_view parse_value ()
 
double parse_percent ()
 
double parse_double_or_throw ()
 
void literal (const char *&p, size_t &len, char quote)
 
void skip_to (const char *&p, size_t &len, char c)
 
void skip_to_or_blank (const char *&p, size_t &len, const char *chars, size_t n_chars)
 
void skip_blanks ()
 
void skip_blanks_reverse ()
 
void shrink_stream ()
 
bool skip_comment ()
 
void comment ()
 
void skip_comments_and_blanks ()
 
void set_combinator (char c, css::combinator_t combinator)
 
void reset_before_block ()
 
- Protected Member Functions inherited from orcus::parser_base
 parser_base (const char *p, size_t n, bool transient_stream)
 
void set_numeric_parser (const numeric_parser_type &func)
 
bool transient_stream () const
 
bool has_char () const
 
bool has_next () const
 
void next (size_t inc=1)
 
void prev (size_t dec=1)
 
char cur_char () const
 
char next_char () const
 
void skip (const char *chars_to_skip, size_t n_chars_to_skip)
 
void skip_space_and_control ()
 
bool parse_expected (const char *expected, size_t n_expected)
 
double parse_double ()
 
size_t remaining_size () const
 
size_t available_size () const
 
std::ptrdiff_t offset () const
 

Protected Attributes

size_t m_simple_selector_count
 
combinator_t m_combinator
 
- Protected Attributes inherited from orcus::parser_base
const char *const mp_begin
 
const char * mp_char
 
const char * mp_end
 
const bool m_transient_stream
 

Additional Inherited Members

- Protected Types inherited from orcus::parser_base
using numeric_parser_type = std::function< double(const char *&, size_t)>
 

Member Function Documentation

◆ parse_value()

std::string_view orcus::css::parser_base::parse_value ( )
protected

Parse an unquoted property value until one of non-value characters is reached.

Returns
parsed value segment.

◆ skip_to_or_blank()

void orcus::css::parser_base::skip_to_or_blank ( const char *&  p,
size_t &  len,
const char *  chars,
size_t  n_chars 
)
protected

Skip until one of specified characters or a blank character is reached.

Parameters
ppointer to the first character of the skipped character array.
lenlength of the skipped character array.
charsone or more characters that can end the skipping.
n_charsnumber of characters that can end the skipping.