19 void *ctx,
bool failed);
26 .end = lxb_css_selectors_components_end
33 .end = lxb_css_selectors_components_end
40 .end = lxb_css_selectors_components_end
47 .end = lxb_css_selectors_components_end
54 .end = lxb_css_selectors_components_end
61 .end = lxb_css_selectors_components_end
68 .end = lxb_css_selectors_components_end
75 .end = lxb_css_selectors_components_end
88 if (selectors ==
NULL) {
107 if (selectors !=
NULL) {
113 selectors->
error = 0;
115 selectors->
failed =
false;
122 if (selectors ==
NULL) {
144 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_complex_list_cb,
152 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_compound_list_cb,
160 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_simple_list_cb,
168 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_relative_list_cb,
242 if (selectors ==
NULL) {
255 if (memory ==
NULL) {
269 parser->
status = lxb_css_selectors_parse_prepare(parser, memory, selectors);
275 list = lxb_css_selectors_parse_process(parser, components,
data, length);
277 lxb_css_selectors_parse_finish(parser);
281 if (list ==
NULL && memory != parser->
memory) {
295 void *ctx,
bool failed)
316 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_complex_cb,
324 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_compound_cb,
332 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_simple_cb,
340 return lxb_css_selectors_parse_list(parser, &lxb_css_selectors_relative_cb,
@ LXB_STATUS_ERROR_OBJECT_IS_NULL
@ LXB_STATUS_ERROR_WRONG_ARGS
struct lxb_css_syntax_token lxb_css_syntax_token_t
LXB_API lxb_status_t lxb_css_memory_init(lxb_css_memory_t *memory, size_t prepare_count)
struct lxb_css_memory lxb_css_memory_t
LXB_API lxb_css_memory_t * lxb_css_memory_destroy(lxb_css_memory_t *memory, bool self_destroy)
LXB_API lxb_css_memory_t * lxb_css_memory_create(void)
struct lxb_css_parser lxb_css_parser_t
void lxb_css_parser_clean(lxb_css_parser_t *parser)
lxb_inline void lxb_css_parser_buffer_set(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
struct lxb_css_selector_list lxb_css_selector_list_t
struct lxb_css_selectors lxb_css_selectors_t
lxb_css_selector_list_t * lxb_css_selectors_parse_simple_list(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_status_t lxb_css_selectors_init(lxb_css_selectors_t *selectors)
lxb_css_selectors_t * lxb_css_selectors_destroy(lxb_css_selectors_t *selectors, bool self_destroy)
lxb_css_selector_list_t * lxb_css_selectors_parse_compound(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selector_list_t * lxb_css_selectors_parse_simple(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selector_list_t * lxb_css_selectors_parse_complex(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selector_list_t * lxb_css_selectors_parse_relative(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selectors_t * lxb_css_selectors_create(void)
void lxb_css_selectors_clean(lxb_css_selectors_t *selectors)
lxb_css_selector_list_t * lxb_css_selectors_parse(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selector_list_t * lxb_css_selectors_parse_relative_list(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selector_list_t * lxb_css_selectors_parse_complex_list(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
lxb_css_selector_list_t * lxb_css_selectors_parse_compound_list(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
bool lxb_css_selectors_state_compound(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_compound_list(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_simple(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_relative_list(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_complex(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_relative(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_complex_list(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_selectors_state_simple_list(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_state_failed(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_components_push(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, lxb_css_parser_state_f state_back, const lxb_css_syntax_cb_components_t *comp, void *ctx, lxb_css_syntax_token_type_t stop)
lxb_status_t lxb_css_syntax_parser_run(lxb_css_parser_t *parser)
@ LXB_CSS_SYNTAX_TOKEN_UNDEF
LXB_API void * lexbor_free(void *dst)
LXB_API void * lexbor_calloc(size_t num, size_t size)
unsigned const char * end
void lxb_css_selector_list_destroy(lxb_css_selector_list_t *list)
void lxb_css_selector_list_selectors_remove(lxb_css_selectors_t *selectors, lxb_css_selector_list_t *list)
@ LXB_CSS_SELECTOR_COMBINATOR_DESCENDANT
lxb_css_memory_t * old_memory
lxb_css_memory_t * memory
lxb_css_selectors_t * old_selectors
lxb_css_parser_stage_t stage
lxb_css_syntax_tokenizer_t * tkz
lxb_css_selectors_t * selectors
lxb_css_selector_list_t * list_last
lxb_css_selector_combinator_t combinator
lxb_css_selector_list_t * list
lxb_css_selector_t * parent
lxb_css_selector_combinator_t comb_default
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_components_t
struct lxb_css_syntax_rule lxb_css_syntax_rule_t
unsigned int lxb_status_t
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)