php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
state.c File Reference
#include <string.h>
#include <float.h>
#include "lexbor/core/utils.h"
#include "lexbor/core/strtod.h"
#include "lexbor/css/syntax/state.h"
#include "lexbor/css/syntax/syntax.h"
#include "lexbor/css/syntax/tokenizer/error.h"
#include "lexbor/css/syntax/res.h"
#include "lexbor/core/str_res.h"

Go to the source code of this file.

Macros

#define LXB_CSS_SYNTAX_RES_NAME_MAP
 
#define LEXBOR_STR_RES_MAP_HEX
 
#define LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER
 
#define LXB_CSS_SYNTAX_NEXT_CHUNK(_tkz, _status, _data, _end)
 
#define LXB_CSS_SYNTAX_STR_APPEND_LEN(_tkz, _status, _begin, _length)
 
#define LXB_CSS_SYNTAX_STR_APPEND(_tkz, _status, _begin, _end)
 
#define LXB_CSS_SYNTAX_DELIM_APPEND(_tkz, _begin, _length, _ch)
 

Functions

lxb_inline lxb_status_t lxb_css_syntax_string_realloc (lxb_css_syntax_tokenizer_t *tkz, size_t upto)
 
lxb_inline lxb_status_t lxb_css_syntax_string_append (lxb_css_syntax_tokenizer_t *tkz, const lxb_char_t *data, size_t length)
 
lxb_inline lxb_status_t lxb_css_syntax_state_string_term (lxb_css_syntax_tokenizer_t *tkz)
 
lxb_inline const lxb_char_tlxb_css_syntax_state_string_set (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data)
 
lxb_inline const lxb_char_tlxb_css_syntax_state_dimension_set (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data)
 
lxb_inline lxb_css_syntax_token_tlxb_css_syntax_state_token_create (lxb_css_syntax_tokenizer_t *tkz)
 
lxb_inline void lxb_css_syntax_state_delim_set (lxb_css_syntax_token_t *token, const lxb_char_t *data, lxb_char_t ch, size_t length)
 
lxb_inline lxb_css_syntax_token_tlxb_css_syntax_list_append_delim (lxb_css_syntax_tokenizer_t *tkz, const lxb_char_t *data, size_t length, lxb_char_t ch)
 
const lxb_char_tlxb_css_syntax_state_delim (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_comment (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_whitespace (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_string (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_hash (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_lparenthesis (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_rparenthesis (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_plus (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_plus_process (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_comma (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_minus (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_minus_process (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_full_stop (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_colon (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_semicolon (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_less_sign (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_at (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_ls_bracket (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_rsolidus (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_rs_bracket (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_lc_bracket (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_rc_bracket (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
lxb_inline void lxb_css_syntax_consume_numeric_set_int (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *start, const lxb_char_t *end)
 
lxb_inline void lxb_css_syntax_consume_numeric_set_float (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *start, const lxb_char_t *end, bool e_is_negative, int exponent, int e_digit)
 
const lxb_char_tlxb_css_syntax_state_consume_before_numeric (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_ident_like_begin (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
const lxb_char_tlxb_css_syntax_state_ident_like_not_url_begin (lxb_css_syntax_tokenizer_t *tkz, lxb_css_syntax_token_t *token, const lxb_char_t *data, const lxb_char_t *end)
 
lxb_inline lxb_status_t lxb_css_syntax_string_append_rep (lxb_css_syntax_tokenizer_t *tkz)
 

Macro Definition Documentation

◆ LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER

#define LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER

Definition at line 21 of file state.c.

◆ LEXBOR_STR_RES_MAP_HEX

#define LEXBOR_STR_RES_MAP_HEX

Definition at line 20 of file state.c.

◆ LXB_CSS_SYNTAX_DELIM_APPEND

#define LXB_CSS_SYNTAX_DELIM_APPEND ( _tkz,
_begin,
_length,
_ch )
Value:
do { \
if (lxb_css_syntax_list_append_delim(_tkz, _begin, _length, _ch) \
== NULL) \
{ \
return NULL; \
} \
} \
while (false)
lxb_inline lxb_css_syntax_token_t * lxb_css_syntax_list_append_delim(lxb_css_syntax_tokenizer_t *tkz, const lxb_char_t *data, size_t length, lxb_char_t ch)
Definition state.c:219
#define NULL
Definition gdcache.h:45

Definition at line 47 of file state.c.

◆ LXB_CSS_SYNTAX_NEXT_CHUNK

#define LXB_CSS_SYNTAX_NEXT_CHUNK ( _tkz,
_status,
_data,
_end )
Value:
do { \
_status = lxb_css_syntax_tokenizer_next_chunk(_tkz, &_data, &_end); \
if (_status != LXB_STATUS_OK) { \
return NULL; \
} \
} \
while (0)
@ LXB_STATUS_OK
Definition base.h:49
lxb_status_t lxb_css_syntax_tokenizer_next_chunk(lxb_css_syntax_tokenizer_t *tkz, const lxb_char_t **data, const lxb_char_t **end)
Definition tokenizer.c:392

Definition at line 25 of file state.c.

◆ LXB_CSS_SYNTAX_RES_NAME_MAP

#define LXB_CSS_SYNTAX_RES_NAME_MAP

Definition at line 17 of file state.c.

◆ LXB_CSS_SYNTAX_STR_APPEND

#define LXB_CSS_SYNTAX_STR_APPEND ( _tkz,
_status,
_begin,
_end )
Value:
LXB_CSS_SYNTAX_STR_APPEND_LEN(_tkz, _status, _begin, (_end - _begin))
#define LXB_CSS_SYNTAX_STR_APPEND_LEN(_tkz, _status, _begin, _length)
Definition state.c:35

Definition at line 44 of file state.c.

◆ LXB_CSS_SYNTAX_STR_APPEND_LEN

#define LXB_CSS_SYNTAX_STR_APPEND_LEN ( _tkz,
_status,
_begin,
_length )
Value:
do { \
_status = lxb_css_syntax_string_append(_tkz, _begin, _length); \
if (_status != LXB_STATUS_OK) { \
return NULL; \
} \
} \
while (0)
lxb_inline lxb_status_t lxb_css_syntax_string_append(lxb_css_syntax_tokenizer_t *tkz, const lxb_char_t *data, size_t length)
Definition state.c:129

Definition at line 35 of file state.c.

Function Documentation

◆ lxb_css_syntax_consume_numeric_set_float()

lxb_inline void lxb_css_syntax_consume_numeric_set_float ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * start,
const lxb_char_t * end,
bool e_is_negative,
int exponent,
int e_digit )

Definition at line 1582 of file state.c.

◆ lxb_css_syntax_consume_numeric_set_int()

lxb_inline void lxb_css_syntax_consume_numeric_set_int ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * start,
const lxb_char_t * end )

Definition at line 1569 of file state.c.

◆ lxb_css_syntax_list_append_delim()

lxb_inline lxb_css_syntax_token_t * lxb_css_syntax_list_append_delim ( lxb_css_syntax_tokenizer_t * tkz,
const lxb_char_t * data,
size_t length,
lxb_char_t ch )

Definition at line 219 of file state.c.

◆ lxb_css_syntax_state_at()

const lxb_char_t * lxb_css_syntax_state_at ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1338 of file state.c.

◆ lxb_css_syntax_state_colon()

const lxb_char_t * lxb_css_syntax_state_colon ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1129 of file state.c.

◆ lxb_css_syntax_state_comma()

const lxb_char_t * lxb_css_syntax_state_comma ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 863 of file state.c.

◆ lxb_css_syntax_state_comment()

const lxb_char_t * lxb_css_syntax_state_comment ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 248 of file state.c.

◆ lxb_css_syntax_state_consume_before_numeric()

const lxb_char_t * lxb_css_syntax_state_consume_before_numeric ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1603 of file state.c.

◆ lxb_css_syntax_state_delim()

const lxb_char_t * lxb_css_syntax_state_delim ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 236 of file state.c.

◆ lxb_css_syntax_state_delim_set()

lxb_inline void lxb_css_syntax_state_delim_set ( lxb_css_syntax_token_t * token,
const lxb_char_t * data,
lxb_char_t ch,
size_t length )

Definition at line 207 of file state.c.

◆ lxb_css_syntax_state_dimension_set()

lxb_inline const lxb_char_t * lxb_css_syntax_state_dimension_set ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data )

Definition at line 177 of file state.c.

◆ lxb_css_syntax_state_full_stop()

const lxb_char_t * lxb_css_syntax_state_full_stop ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1089 of file state.c.

◆ lxb_css_syntax_state_hash()

const lxb_char_t * lxb_css_syntax_state_hash ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 661 of file state.c.

◆ lxb_css_syntax_state_ident_like_begin()

const lxb_char_t * lxb_css_syntax_state_ident_like_begin ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 2128 of file state.c.

◆ lxb_css_syntax_state_ident_like_not_url_begin()

const lxb_char_t * lxb_css_syntax_state_ident_like_not_url_begin ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 2264 of file state.c.

◆ lxb_css_syntax_state_lc_bracket()

const lxb_char_t * lxb_css_syntax_state_lc_bracket ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1539 of file state.c.

◆ lxb_css_syntax_state_less_sign()

const lxb_char_t * lxb_css_syntax_state_less_sign ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1159 of file state.c.

◆ lxb_css_syntax_state_lparenthesis()

const lxb_char_t * lxb_css_syntax_state_lparenthesis ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 744 of file state.c.

◆ lxb_css_syntax_state_ls_bracket()

const lxb_char_t * lxb_css_syntax_state_ls_bracket ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1462 of file state.c.

◆ lxb_css_syntax_state_minus()

const lxb_char_t * lxb_css_syntax_state_minus ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 879 of file state.c.

◆ lxb_css_syntax_state_minus_process()

const lxb_char_t * lxb_css_syntax_state_minus_process ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 902 of file state.c.

◆ lxb_css_syntax_state_plus()

const lxb_char_t * lxb_css_syntax_state_plus ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 774 of file state.c.

◆ lxb_css_syntax_state_plus_process()

const lxb_char_t * lxb_css_syntax_state_plus_process ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 798 of file state.c.

◆ lxb_css_syntax_state_rc_bracket()

const lxb_char_t * lxb_css_syntax_state_rc_bracket ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1554 of file state.c.

◆ lxb_css_syntax_state_rparenthesis()

const lxb_char_t * lxb_css_syntax_state_rparenthesis ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 759 of file state.c.

◆ lxb_css_syntax_state_rs_bracket()

const lxb_char_t * lxb_css_syntax_state_rs_bracket ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1524 of file state.c.

◆ lxb_css_syntax_state_rsolidus()

const lxb_char_t * lxb_css_syntax_state_rsolidus ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1477 of file state.c.

◆ lxb_css_syntax_state_semicolon()

const lxb_char_t * lxb_css_syntax_state_semicolon ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 1144 of file state.c.

◆ lxb_css_syntax_state_string()

const lxb_char_t * lxb_css_syntax_state_string ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 525 of file state.c.

◆ lxb_css_syntax_state_string_set()

lxb_inline const lxb_char_t * lxb_css_syntax_state_string_set ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data )

Definition at line 160 of file state.c.

◆ lxb_css_syntax_state_string_term()

lxb_inline lxb_status_t lxb_css_syntax_state_string_term ( lxb_css_syntax_tokenizer_t * tkz)

Definition at line 146 of file state.c.

◆ lxb_css_syntax_state_token_create()

lxb_inline lxb_css_syntax_token_t * lxb_css_syntax_state_token_create ( lxb_css_syntax_tokenizer_t * tkz)

Definition at line 194 of file state.c.

◆ lxb_css_syntax_state_whitespace()

const lxb_char_t * lxb_css_syntax_state_whitespace ( lxb_css_syntax_tokenizer_t * tkz,
lxb_css_syntax_token_t * token,
const lxb_char_t * data,
const lxb_char_t * end )

Definition at line 424 of file state.c.

◆ lxb_css_syntax_string_append()

lxb_inline lxb_status_t lxb_css_syntax_string_append ( lxb_css_syntax_tokenizer_t * tkz,
const lxb_char_t * data,
size_t length )

Definition at line 129 of file state.c.

◆ lxb_css_syntax_string_append_rep()

lxb_inline lxb_status_t lxb_css_syntax_string_append_rep ( lxb_css_syntax_tokenizer_t * tkz)

Definition at line 2589 of file state.c.

◆ lxb_css_syntax_string_realloc()

lxb_inline lxb_status_t lxb_css_syntax_string_realloc ( lxb_css_syntax_tokenizer_t * tkz,
size_t upto )

Definition at line 110 of file state.c.