17#define LXB_CSS_SYNTAX_TOKEN_RES_NAME_SHS_MAP
20#define LEXBOR_STR_RES_MAP_HEX
21#define LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER
101 length = token->
length + 1;
103 if (length > str->
length) {
294 switch (token->
type) {
299 return cb(
buf, 1, ctx);
405 if (*
begin == 0x5C) {
428 else if (*
begin == 0x22) {
499 return cb(
dim->str.data,
dim->str.length, ctx);
578 if (out_length !=
NULL) {
586 if (out_length !=
NULL) {
596 const char *module_name)
601 static const char unexpected[] =
"%s. Unexpected token: %s";
copy(string $from, string $to, $context=null)
count(Countable|array $value, int $mode=COUNT_NORMAL)
size_t lexbor_conv_float_to_data(double num, lxb_char_t *buf, size_t len)
@ LXB_STATUS_ERROR_MEMORY_ALLOCATION
struct lxb_css_syntax_token lxb_css_syntax_token_t
struct lxb_css_syntax_tokenizer lxb_css_syntax_tokenizer_t
struct lxb_css_parser lxb_css_parser_t
lxb_css_syntax_token_t * lxb_css_syntax_token_create_noi(lexbor_dobject_t *dobj)
lxb_status_t lxb_css_syntax_token_string_make(lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token)
const lxb_char_t * lxb_css_syntax_token_type_name_by_id(lxb_css_syntax_token_type_t type)
lxb_css_log_message_t * lxb_css_syntax_token_error(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, const char *module_name)
lxb_char_t * lxb_css_syntax_token_serialize_char(const lxb_css_syntax_token_t *token, size_t *out_length)
lxb_css_syntax_token_type_t lxb_css_syntax_token_type_id_by_name(const lxb_char_t *type_name, size_t len)
lxb_status_t lxb_css_syntax_tokenizer_cache_push(lxb_css_syntax_tokenizer_cache_t *cache, lxb_css_syntax_token_t *value)
void lxb_css_syntax_token_string_free(lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token)
lxb_css_syntax_token_t * lxb_css_syntax_token_cached_create(lxb_css_syntax_tokenizer_t *tkz)
const lxb_char_t * lxb_css_syntax_token_type_name_noi(lxb_css_syntax_token_t *token)
lxb_css_syntax_token_t * lxb_css_syntax_tokenizer_token(lxb_css_syntax_tokenizer_t *tkz)
lxb_css_syntax_token_t * lxb_css_syntax_token(lxb_css_syntax_tokenizer_t *tkz)
lxb_status_t lxb_css_syntax_token_serialize_str(const lxb_css_syntax_token_t *token, lexbor_str_t *str, lexbor_mraw_t *mraw)
lxb_css_syntax_token_t * lxb_css_syntax_token_next(lxb_css_syntax_tokenizer_t *tkz)
lxb_css_syntax_token_t * lxb_css_syntax_token_destroy_noi(lxb_css_syntax_token_t *token, lexbor_dobject_t *dobj)
void lxb_css_syntax_token_consume_n(lxb_css_syntax_tokenizer_t *tkz, unsigned count)
lxb_css_syntax_token_type_t lxb_css_syntax_token_type_noi(lxb_css_syntax_token_t *token)
lxb_status_t lxb_css_syntax_token_serialize(const lxb_css_syntax_token_t *token, lxb_css_syntax_token_cb_f cb, void *ctx)
lxb_status_t lxb_css_syntax_token_string_dup(lxb_css_syntax_token_string_t *token, lexbor_str_t *str, lexbor_mraw_t *mraw)
void lxb_css_syntax_token_consume(lxb_css_syntax_tokenizer_t *tkz)
void lxb_css_syntax_token_clean_noi(lxb_css_syntax_token_t *token)
lxb_inline lxb_css_syntax_token_type_t lxb_css_syntax_token_type(const lxb_css_syntax_token_t *token)
struct lxb_css_syntax_token_dimension lxb_css_syntax_token_dimension_t
lxb_inline lxb_css_syntax_token_t * lxb_css_syntax_token_create(lexbor_dobject_t *dobj)
lxb_inline lxb_css_syntax_token_t * lxb_css_syntax_token_destroy(lxb_css_syntax_token_t *token, lexbor_dobject_t *dobj)
#define lxb_css_syntax_token_string(token)
lxb_status_t(* lxb_css_syntax_token_cb_f)(const lxb_char_t *data, size_t len, void *ctx)
lxb_inline const lxb_char_t * lxb_css_syntax_token_type_name(const lxb_css_syntax_token_t *token)
lxb_css_syntax_token_type_t
@ LXB_CSS_SYNTAX_TOKEN_FUNCTION
@ LXB_CSS_SYNTAX_TOKEN_LS_BRACKET
@ LXB_CSS_SYNTAX_TOKEN_BAD_URL
@ LXB_CSS_SYNTAX_TOKEN_RC_BRACKET
@ LXB_CSS_SYNTAX_TOKEN__EOF
@ LXB_CSS_SYNTAX_TOKEN_NUMBER
@ LXB_CSS_SYNTAX_TOKEN_BAD_STRING
@ LXB_CSS_SYNTAX_TOKEN_CDO
@ LXB_CSS_SYNTAX_TOKEN_COMMA
@ LXB_CSS_SYNTAX_TOKEN_CDC
@ LXB_CSS_SYNTAX_TOKEN_DELIM
@ LXB_CSS_SYNTAX_TOKEN_COLON
@ LXB_CSS_SYNTAX_TOKEN_UNDEF
@ LXB_CSS_SYNTAX_TOKEN_DIMENSION
@ LXB_CSS_SYNTAX_TOKEN_RS_BRACKET
@ LXB_CSS_SYNTAX_TOKEN_AT_KEYWORD
@ LXB_CSS_SYNTAX_TOKEN_STRING
@ LXB_CSS_SYNTAX_TOKEN_URL
@ LXB_CSS_SYNTAX_TOKEN_IDENT
@ LXB_CSS_SYNTAX_TOKEN_WHITESPACE
@ LXB_CSS_SYNTAX_TOKEN_LC_BRACKET
@ LXB_CSS_SYNTAX_TOKEN_L_PARENTHESIS
@ LXB_CSS_SYNTAX_TOKEN_HASH
@ LXB_CSS_SYNTAX_TOKEN_PERCENTAGE
@ LXB_CSS_SYNTAX_TOKEN_COMMENT
@ LXB_CSS_SYNTAX_TOKEN_R_PARENTHESIS
@ LXB_CSS_SYNTAX_TOKEN_SEMICOLON
@ LXB_CSS_SYNTAX_TOKEN__END
lxb_inline void lxb_css_syntax_token_clean(lxb_css_syntax_token_t *token)
struct lxb_css_syntax_token_string lxb_css_syntax_token_string_t
#define lxb_css_syntax_token_dimension_string(token)
void * lexbor_dobject_free(lexbor_dobject_t *dobject, void *data)
void * lexbor_dobject_alloc(lexbor_dobject_t *dobject)
zend_ffi_ctype_name_buf buf
LXB_API void * lexbor_free(void *dst)
LXB_API void * lexbor_malloc(size_t size)
lxb_css_log_message_t * lxb_css_log_format(lxb_css_log_t *log, lxb_css_log_type_t type, const char *format,...)
@ LXB_CSS_LOG_SYNTAX_ERROR
void * lexbor_mraw_free(lexbor_mraw_t *mraw, void *data)
void * lexbor_mraw_alloc(lexbor_mraw_t *mraw, size_t size)
unsigned const char * end
lxb_status_t lexbor_serialize_length_cb(const lxb_char_t *data, size_t length, void *ctx)
lxb_status_t lexbor_serialize_copy_cb(const lxb_char_t *data, size_t length, void *ctx)
const lexbor_shs_entry_t * lexbor_shs_entry_get_lower_static(const lexbor_shs_entry_t *root, const lxb_char_t *key, size_t key_len)
lxb_char_t * lexbor_str_realloc(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t new_size)
lxb_char_t * lexbor_str_append(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *buff, size_t length)
lxb_char_t * lexbor_str_init(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t size)
lxb_css_syntax_token_type_t type
union lxb_css_syntax_token::lxb_css_syntax_token_u types
lxb_css_syntax_token_t ** list
lexbor_dobject_t * tokens
lxb_css_syntax_tokenizer_cache_t * cache
unsigned int lxb_status_t
lxb_css_syntax_token_delim_t delim
lxb_css_syntax_token_number_t number
lxb_css_syntax_token_dimension_t dimension
lxb_css_syntax_token_string_t string