16 .types.terminated = {.begin =
NULL, .length = 0, .user_id = 0},
136 while (parser->
loop);
152 return rule->
phase(parser, token, rule);
192 length = (size_t) (*
end - parser->
pos);
202 if (new_data ==
NULL) {
224 void *ctx,
bool top_level,
240 rule = ++parser->
rules;
244 rule->
phase = lxb_css_syntax_parser_list_rules;
247 rule->
back = lxb_css_syntax_parser_list_rules;
283 rule = ++parser->
rules;
287 rule->
phase = lxb_css_syntax_parser_at_rule;
290 rule->
back = lxb_css_syntax_parser_at_rule;
327 rule = ++parser->
rules;
331 rule->
phase = lxb_css_syntax_parser_qualified_rule;
334 rule->
back = lxb_css_syntax_parser_qualified_rule;
368 rule = ++parser->
rules;
372 rule->
phase = lxb_css_syntax_parser_declarations;
375 rule->
back = lxb_css_syntax_parser_declarations;
409 rule = ++parser->
rules;
413 rule->
phase = lxb_css_syntax_parser_components;
416 rule->
back = lxb_css_syntax_parser_components;
442 rule = parser->
rules;
462 rule = ++parser->
rules;
466 rule->
phase = lxb_css_syntax_parser_function;
469 rule->
back = lxb_css_syntax_parser_function;
494 switch (token->
type) {
514 rule = parser->
rules;
532 rule = ++parser->
rules;
536 rule->
phase = lxb_css_syntax_parser_block;
537 rule->
state = block->state;
539 rule->
back = lxb_css_syntax_parser_block;
566 rule = ++parser->
rules;
570 rule->
phase = lxb_css_syntax_parser_pipe;
573 rule->
back = lxb_css_syntax_parser_pipe;
586 return parser->
rules--;
602 switch (token->
type) {
615 rule->
phase = lxb_css_syntax_parser_list_rules_at;
642 rule->
phase = lxb_css_syntax_parser_list_rules_qualified;
655 return &lxb_css_syntax_token_terminated;
668 lxb_css_syntax_parser_list_rules_back,
690 lxb_css_syntax_parser_list_rules_back,
712 rule = parser->
rules;
736 switch (token->
type) {
749 if (rule->
deep == 0) {
768 token = &lxb_css_syntax_token_terminated;
777 if (rule->
deep == 1) {
797 if (rule->
deep == 0) {
823 if (rule->
u.
at_rule.prelude_end != 0) {
830 return &lxb_css_syntax_token_terminated;
853 switch (token->
type) {
866 if (rule->
deep == 0) {
885 token = &lxb_css_syntax_token_terminated;
894 if (rule->
deep == 1) {
940 return &lxb_css_syntax_token_terminated;
961 switch (token->
type) {
978 rule->
phase = lxb_css_syntax_parser_declarations_name;
985 rule->
phase = lxb_css_syntax_parser_declarations_drop;
994 lxb_css_syntax_parser_declarations_back,
1008 rule->
phase = lxb_css_syntax_parser_declarations_drop;
1041 return rules->
state(parser, token, ctx);
1056 return &lxb_css_syntax_token_terminated;
1067 if (token ==
NULL) {
1098 if (token ==
NULL) {
1108 if (token ==
NULL) {
1117 rule->
phase = lxb_css_syntax_parser_declarations_value;
1120 return lxb_css_syntax_parser_declarations_value(parser, token, rule);
1129 uintptr_t before_important;
1145 switch (token->
type) {
1147 if (rule->
deep != 0) {
1159 before_important = token->
offset;
1164 if (token ==
NULL) {
1179 if (token ==
NULL) {
1185 if (token ==
NULL) {
1193 if (token ==
NULL) {
1203 if (rule->
deep == 0) {
1204 rule->
phase = lxb_css_syntax_parser_declarations_next;
1211 if (token ==
NULL) {
1216 return &lxb_css_syntax_token_terminated;
1240 if (token ==
NULL) {
1247 if (token ==
NULL) {
1255 if (token ==
NULL) {
1306 rule->
phase = lxb_css_syntax_parser_declarations_end;
1312 return &lxb_css_syntax_token_terminated;
1326 return &lxb_css_syntax_token_terminated;
1336 rule->
phase = lxb_css_syntax_parser_declarations;
1351 return lxb_css_syntax_parser_declarations(parser, token, rule);
1374 switch (token->
type) {
1376 if (rule->
deep == 0) {
1377 rule->
phase = lxb_css_syntax_parser_declarations_next;
1384 if (token ==
NULL) {
1391 return &lxb_css_syntax_token_terminated;
1439 rule->
phase = lxb_css_syntax_parser_declarations_end;
1445 return &lxb_css_syntax_token_terminated;
1459 return &lxb_css_syntax_token_terminated;
1480 if (token ==
NULL) {
1488 rules = parser->
rules;
1497 return rules->
phase(parser, token, rules);
1518 switch (token->
type) {
1565 return &lxb_css_syntax_token_terminated;
1581 switch (token->
type) {
1599 if (rule->
deep != 0) {
1640 return &lxb_css_syntax_token_terminated;
1660 switch (token->
type) {
1707 return &lxb_css_syntax_token_terminated;
1721 return &lxb_css_syntax_token_terminated;
1735 return &lxb_css_syntax_token_terminated;
1745 return rule->
back(parser, token, rule);
1760 return &lxb_css_syntax_token_terminated;
1776 if (token ==
NULL) {
1784 rules = parser->
rules;
1794 return rules->
phase(parser, token, rules);
@ LXB_STATUS_ERROR_MEMORY_ALLOCATION
@ LXB_STATUS_ERROR_WRONG_ARGS
@ LXB_STATUS_ERROR_OVERFLOW
struct lxb_css_syntax_token lxb_css_syntax_token_t
bool(* lxb_css_parser_state_f)(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
struct lxb_css_syntax_tokenizer lxb_css_syntax_tokenizer_t
struct lxb_css_parser lxb_css_parser_t
lxb_status_t lxb_css_parser_types_push(lxb_css_parser_t *parser, lxb_css_syntax_token_type_t type)
bool lxb_css_parser_success(lxb_css_parser_t *parser)
lxb_inline void lxb_css_parser_offset_set(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token)
bool lxb_css_state_success(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
bool lxb_css_state_stop(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, void *ctx)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_block_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_block_t *block, void *ctx)
const lxb_css_syntax_token_t * lxb_css_syntax_parser_end(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, lxb_css_syntax_rule_t *rule)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_declarations_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_declarations_t *declarations, void *ctx, lxb_css_syntax_token_type_t stop)
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_css_syntax_rule_t * lxb_css_syntax_parser_qualified_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_qualified_rule_t *qualified, void *ctx, lxb_css_syntax_token_type_t stop)
const lxb_css_syntax_token_t * lxb_css_syntax_parser_token_wo_ws(lxb_css_parser_t *parser)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_pipe_push(lxb_css_parser_t *parser, lxb_css_parser_state_f state_back, const lxb_css_syntax_cb_pipe_t *pipe, void *ctx, lxb_css_syntax_token_type_t stop)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_at_rule_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_at_rule_t *at_rule, void *ctx, lxb_css_syntax_token_type_t stop)
const lxb_css_syntax_token_t * lxb_css_syntax_parser_start_block(lxb_css_parser_t *parser, const lxb_css_syntax_token_t *token, lxb_css_syntax_rule_t *rule)
lxb_status_t lxb_css_syntax_parser_tkz_cb(lxb_css_syntax_tokenizer_t *tkz, const lxb_char_t **data, const lxb_char_t **end, void *ctx)
lxb_inline const lxb_css_syntax_token_t * lxb_css_syntax_parser_failed(lxb_css_parser_t *parser, lxb_status_t status)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_function_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_function_t *func, void *ctx)
lxb_status_t lxb_css_syntax_parser_run(lxb_css_parser_t *parser)
const lxb_css_syntax_token_t * lxb_css_syntax_parser_token(lxb_css_parser_t *parser)
void lxb_css_syntax_parser_consume(lxb_css_parser_t *parser)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_stack_pop(lxb_css_parser_t *parser)
lxb_css_syntax_rule_t * lxb_css_syntax_parser_list_rules_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_list_rules_t *cb_rules, void *ctx, bool top_level, lxb_css_syntax_token_type_t stop)
lxb_css_syntax_token_t * lxb_css_syntax_token(lxb_css_syntax_tokenizer_t *tkz)
void lxb_css_syntax_token_consume(lxb_css_syntax_tokenizer_t *tkz)
#define lxb_css_syntax_token_base(token)
lxb_css_syntax_token_type_t
@ LXB_CSS_SYNTAX_TOKEN_FUNCTION
@ LXB_CSS_SYNTAX_TOKEN_LS_BRACKET
@ LXB_CSS_SYNTAX_TOKEN_RC_BRACKET
@ LXB_CSS_SYNTAX_TOKEN__EOF
@ LXB_CSS_SYNTAX_TOKEN_CDO
@ LXB_CSS_SYNTAX_TOKEN_CDC
@ LXB_CSS_SYNTAX_TOKEN_DELIM
@ LXB_CSS_SYNTAX_TOKEN_COLON
@ LXB_CSS_SYNTAX_TOKEN_RS_BRACKET
@ LXB_CSS_SYNTAX_TOKEN_AT_KEYWORD
@ 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_R_PARENTHESIS
@ LXB_CSS_SYNTAX_TOKEN_SEMICOLON
@ LXB_CSS_SYNTAX_TOKEN__END
#define lxb_css_syntax_token_delim(token)
bool lxb_css_syntax_tokenizer_lookup_important(lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_type_t stop, const lxb_char_t stop_ch)
bool lxb_css_syntax_tokenizer_lookup_colon(lxb_css_syntax_tokenizer_t *tkz)
bool lxb_css_syntax_tokenizer_lookup_declaration_ws_end(lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_type_t stop, const lxb_char_t stop_ch)
memset(ptr, 0, type->size)
LXB_API void * lexbor_realloc(void *dst, size_t size)
unsigned const char * end
lxb_css_parser_state_f block
lxb_css_syntax_token_type_t * types_pos
lxb_css_syntax_rule_t * rules
lxb_css_syntax_tokenizer_chunk_f chunk_cb
lxb_css_syntax_tokenizer_t * tkz
lxb_css_syntax_rule_t * rules_begin
lxb_css_parser_state_f failed
lxb_css_syntax_cb_done_f end
lxb_css_parser_state_f state
lxb_css_parser_state_f block
lxb_css_syntax_cb_base_t cb
lxb_css_syntax_declaration_end_f declaration_end
const lxb_css_syntax_cb_at_rule_t * at_rule
lxb_css_syntax_cb_base_t cb
const lxb_css_syntax_cb_at_rule_t * at_rule
lxb_css_parser_state_f next
const lxb_css_syntax_cb_qualified_rule_t * qualified_rule
uintptr_t before_important
const lxb_css_syntax_cb_list_rules_t * list_rules
lxb_css_parser_state_f state_back
const lxb_css_syntax_cb_pipe_t * pipe
const lxb_css_syntax_cb_at_rule_t * at_rule
const lxb_css_syntax_cb_qualified_rule_t * qualified_rule
union lxb_css_syntax_rule::@203345256314064163344113041244217160314313024330 u
lxb_css_syntax_token_type_t block_end
lxb_css_syntax_state_f phase
const lxb_css_syntax_cb_declarations_t * declarations
const lxb_css_syntax_cb_base_t * cb
lxb_css_parser_state_f state
const lxb_css_syntax_cb_components_t * components
lxb_css_syntax_state_f back
const lxb_css_syntax_cb_function_t * func
union lxb_css_syntax_rule::@073363174301106057201275360263214332217111046371 cbx
lxb_css_syntax_qualified_offset_t qualified
const lxb_css_syntax_cb_block_t * block
lxb_css_syntax_token_type_t type
lxb_status_t lxb_css_syntax_stack_expand(lxb_css_parser_t *parser, size_t count)
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_components_t
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_block_t
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_at_rule_t
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_pipe_t
struct lxb_css_syntax_rule lxb_css_syntax_rule_t
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_qualified_rule_t
lxb_css_syntax_cb_base_t lxb_css_syntax_cb_function_t
unsigned int lxb_status_t
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)