handOver2/dist/HandoverSystem/_internal/selectolax/lexbor.pxd

607 lines
22 KiB
Cython

from libc.stdint cimport uint8_t, uint32_t, uintptr_t
cdef extern from "lexbor/core/core.h" nogil:
ctypedef uint32_t lxb_codepoint_t
ctypedef unsigned char lxb_char_t
ctypedef unsigned int lxb_status_t
ctypedef enum lexbor_status_t:
LXB_STATUS_OK = 0x0000
LXB_STATUS_ERROR = 0x0001
LXB_STATUS_ERROR_MEMORY_ALLOCATION
LXB_STATUS_ERROR_OBJECT_IS_NULL
LXB_STATUS_ERROR_SMALL_BUFFER
LXB_STATUS_ERROR_INCOMPLETE_OBJECT
LXB_STATUS_ERROR_NO_FREE_SLOT
LXB_STATUS_ERROR_TOO_SMALL_SIZE
LXB_STATUS_ERROR_NOT_EXISTS
LXB_STATUS_ERROR_WRONG_ARGS
LXB_STATUS_ERROR_WRONG_STAGE
LXB_STATUS_ERROR_UNEXPECTED_RESULT
LXB_STATUS_ERROR_UNEXPECTED_DATA
LXB_STATUS_ERROR_OVERFLOW
LXB_STATUS_CONTINUE
LXB_STATUS_SMALL_BUFFER
LXB_STATUS_ABORTED
LXB_STATUS_STOPPED
LXB_STATUS_NEXT
LXB_STATUS_STOP
lexbor_str_t* lexbor_str_destroy(lexbor_str_t *str, lexbor_mraw_t *mraw, bint destroy_obj)
lexbor_str_t* lexbor_str_create()
lxb_char_t * lexbor_str_data_noi(lexbor_str_t *str)
cdef extern from "lexbor/html/html.h" nogil:
ctypedef unsigned int lxb_html_document_opt_t
ctypedef struct lxb_html_tokenizer_t
ctypedef struct lxb_html_form_element_t
ctypedef struct lxb_html_head_element_t
ctypedef struct lxb_html_body_element_t
ctypedef struct lxb_dom_element_t
ctypedef struct lexbor_mraw_t
ctypedef struct lexbor_hash_t
ctypedef struct lxb_dom_document_type_t
ctypedef void lxb_dom_interface_t
ctypedef uintptr_t lxb_tag_id_t
ctypedef uintptr_t lxb_ns_id_t
ctypedef lxb_dom_interface_t *(*lxb_dom_interface_destroy_f)(lxb_dom_interface_t *intrfc)
ctypedef lxb_dom_interface_t *(*lxb_dom_interface_create_f)(lxb_dom_document_t *document, lxb_tag_id_t tag_id,
lxb_ns_id_t ns)
ctypedef struct lxb_dom_event_target_t:
void *events
ctypedef struct lexbor_str_t:
lxb_char_t *data
size_t length
ctypedef struct lxb_dom_node_t:
lxb_dom_event_target_t event_target
uintptr_t local_name
uintptr_t prefix
uintptr_t ns
lxb_dom_document_t *owner_document
lxb_dom_node_t *next
lxb_dom_node_t *prev
lxb_dom_node_t *parent
lxb_dom_node_t *first_child
lxb_dom_node_t *last_child
void *user
lxb_dom_node_type_t type
ctypedef struct lxb_dom_document_t:
lxb_dom_node_t node
lxb_dom_document_cmode_t compat_mode
lxb_dom_document_dtype_t type
lxb_dom_document_type_t *doctype
lxb_dom_element_t *element
lxb_dom_interface_create_f create_interface
lxb_dom_interface_destroy_f destroy_interface
lexbor_mraw_t *mraw
lexbor_mraw_t *text
lexbor_hash_t *tags
lexbor_hash_t *attrs
lexbor_hash_t *prefix
lexbor_hash_t *ns
void *parser
void *user
bint tags_inherited
bint ns_inherited
bint scripting
ctypedef struct lxb_html_document_t:
lxb_dom_document_t dom_document
void *iframe_srcdoc
lxb_html_head_element_t *head
lxb_html_body_element_t *body
lxb_html_document_ready_state_t ready_state
lxb_html_document_opt_t opt
ctypedef enum lxb_html_document_ready_state_t:
LXB_HTML_DOCUMENT_READY_STATE_UNDEF = 0x00
LXB_HTML_DOCUMENT_READY_STATE_LOADING = 0x01
LXB_HTML_DOCUMENT_READY_STATE_INTERACTIVE = 0x02
LXB_HTML_DOCUMENT_READY_STATE_COMPLETE = 0x03
ctypedef enum lxb_html_parser_state_t:
LXB_HTML_PARSER_STATE_BEGIN = 0x00
LXB_HTML_PARSER_STATE_PROCESS = 0x01
LXB_HTML_PARSER_STATE_END = 0x02
LXB_HTML_PARSER_STATE_FRAGMENT_PROCESS = 0x03
LXB_HTML_PARSER_STATE_ERROR = 0x04
ctypedef enum lxb_dom_node_type_t:
LXB_DOM_NODE_TYPE_ELEMENT = 0x01
LXB_DOM_NODE_TYPE_ATTRIBUTE = 0x02
LXB_DOM_NODE_TYPE_TEXT = 0x03
LXB_DOM_NODE_TYPE_CDATA_SECTION = 0x04
LXB_DOM_NODE_TYPE_ENTITY_REFERENCE = 0x05
LXB_DOM_NODE_TYPE_ENTITY = 0x06
LXB_DOM_NODE_TYPE_PROCESSING_INSTRUCTION = 0x07
LXB_DOM_NODE_TYPE_COMMENT = 0x08
LXB_DOM_NODE_TYPE_DOCUMENT = 0x09
LXB_DOM_NODE_TYPE_DOCUMENT_TYPE = 0x0A
LXB_DOM_NODE_TYPE_DOCUMENT_FRAGMENT = 0x0B
LXB_DOM_NODE_TYPE_NOTATION = 0x0C
LXB_DOM_NODE_TYPE_LAST_ENTRY = 0x0D
ctypedef enum lxb_dom_document_cmode_t:
LXB_DOM_DOCUMENT_CMODE_NO_QUIRKS = 0x00
LXB_DOM_DOCUMENT_CMODE_QUIRKS = 0x01
LXB_DOM_DOCUMENT_CMODE_LIMITED_QUIRKS = 0x02
ctypedef enum lxb_dom_document_dtype_t:
LXB_DOM_DOCUMENT_DTYPE_UNDEF = 0x00,
LXB_DOM_DOCUMENT_DTYPE_HTML = 0x01,
LXB_DOM_DOCUMENT_DTYPE_XML = 0x02
ctypedef enum lxb_html_serialize_opt_t:
LXB_HTML_SERIALIZE_OPT_UNDEF = 0x00
LXB_HTML_SERIALIZE_OPT_SKIP_WS_NODES = 0x01
LXB_HTML_SERIALIZE_OPT_SKIP_COMMENT = 0x02
LXB_HTML_SERIALIZE_OPT_RAW = 0x04
LXB_HTML_SERIALIZE_OPT_WITHOUT_CLOSING = 0x08
LXB_HTML_SERIALIZE_OPT_TAG_WITH_NS = 0x10
LXB_HTML_SERIALIZE_OPT_WITHOUT_TEXT_INDENT = 0x20
LXB_HTML_SERIALIZE_OPT_FULL_DOCTYPE = 0x40
ctypedef struct lexbor_array_t:
void **list
size_t size
size_t length
ctypedef struct lexbor_array_obj_t:
uint8_t *list
size_t size
size_t length
size_t struct_size
ctypedef struct lxb_html_tree_pending_table_t
ctypedef bint lxb_html_tree_insertion_mode_f
ctypedef lxb_status_t lxb_html_tree_append_attr_f
ctypedef struct lxb_html_tree_t:
lxb_html_tokenizer_t *tkz_ref
lxb_html_document_t *document
lxb_dom_node_t *fragment
lxb_html_form_element_t *form
lexbor_array_t *open_elements
lexbor_array_t *active_formatting
lexbor_array_obj_t *template_insertion_modes
lxb_html_tree_pending_table_t *pending_table
lexbor_array_obj_t *parse_errors
bint foster_parenting
bint frameset_ok
bint scripting
lxb_html_tree_insertion_mode_f mode
lxb_html_tree_insertion_mode_f original_mode
lxb_html_tree_append_attr_f before_append_attr
lxb_status_t status
size_t ref_count
ctypedef struct lxb_html_parser_t:
lxb_html_tokenizer_t *tkz
lxb_html_tree_t *tree
lxb_html_tree_t *original_tree
lxb_dom_node_t *root
lxb_dom_node_t *form
lxb_html_parser_state_t state
lxb_status_t status
size_t ref_count
ctypedef struct lxb_html_element_t
# Functions
lxb_html_document_t * lxb_html_document_create()
lxb_html_element_t * lxb_html_document_create_element(lxb_html_document_t *document,
const lxb_char_t *local_name, size_t lname_len,
void *reserved_for_opt)
lxb_status_t lxb_html_document_parse(lxb_html_document_t *document, const lxb_char_t *html, size_t size)
lxb_dom_node_t * lxb_html_document_parse_fragment(lxb_html_document_t *document,
lxb_dom_element_t *element,
const lxb_char_t *html,
size_t size)
lxb_html_body_element_t * lxb_html_document_body_element_noi(lxb_html_document_t *document)
lxb_html_head_element_t * lxb_html_document_head_element_noi(lxb_html_document_t *document)
lxb_dom_element_t * lxb_dom_document_element(lxb_dom_document_t *document)
lxb_status_t lxb_html_serialize_tree_str(lxb_dom_node_t *node, lexbor_str_t *str)
lxb_status_t lxb_html_serialize_deep_str(lxb_dom_node_t *node, lexbor_str_t *str)
lxb_html_element_t* lxb_html_element_inner_html_set(lxb_html_element_t *element,
const lxb_char_t *html, size_t size)
cdef class LexborNode:
cdef:
lxb_dom_node_t *node
public LexborHTMLParser parser
cdef bint _is_fragment_root
@staticmethod
cdef LexborNode new(lxb_dom_node_t *node, LexborHTMLParser parser)
cdef void set_as_fragment_root(self)
cdef inline LexborNode _get_node(self)
cdef bint is_empty_text_node(lxb_dom_node_t *node)
cdef inline bint _is_whitespace_only(const lxb_char_t *buffer, size_t buffer_length) nogil
cdef class LexborCSSSelector:
cdef lxb_css_parser_t* parser
cdef lxb_selectors_t * selectors
cdef lxb_css_selectors_t * css_selectors
cdef public list results
cdef public LexborNode current_node
cdef int _create_css_parser(self) except -1
cpdef list find(self, str query, LexborNode node)
cpdef list find_first(self, str query, LexborNode node)
cpdef list _find(self, str query, LexborNode node, bint only_first)
cpdef int any_matches(self, str query, LexborNode node) except -1
cdef class LexborHTMLParser:
cdef lxb_html_document_t *document
cdef lxb_html_document_t *_fragment_document
cdef bint _is_fragment
cdef public bytes raw_html
cdef LexborCSSSelector _selector
cdef inline void _new_html_document(self)
cdef inline lxb_status_t _parse_html_document(self, char *html, size_t html_len) nogil
cdef inline lxb_status_t _parse_html_fragment(self, char *html, size_t html_len) nogil
cdef int _parse_html(self, char *html, size_t html_len) except -1
cdef object cached_script_texts
cdef object cached_script_srcs
@staticmethod
cdef LexborHTMLParser from_document(lxb_html_document_t * document, bytes raw_html)
cdef inline lxb_html_document_t* main_document(self) nogil
cdef extern from "lexbor/dom/dom.h" nogil:
ctypedef enum lexbor_action_t:
LEXBOR_ACTION_OK = 0x00
LEXBOR_ACTION_STOP = 0x01
LEXBOR_ACTION_NEXT = 0x02
ctypedef lexbor_action_t (*lxb_dom_node_simple_walker_f)(lxb_dom_node_t *node, void *ctx)
ctypedef struct lxb_dom_character_data_t:
lxb_dom_node_t node
lexbor_str_t data
ctypedef struct lxb_dom_text_t:
lxb_dom_character_data_t char_data
ctypedef uintptr_t lxb_dom_attr_id_t
ctypedef struct lxb_dom_collection_t:
lexbor_array_t array
lxb_dom_document_t *document
ctypedef struct lxb_dom_attr_t:
lxb_dom_node_t node
lxb_dom_attr_id_t upper_name
lxb_dom_attr_id_t qualified_name
lexbor_str_t *value
lxb_dom_element_t *owner
lxb_dom_attr_t *next
lxb_dom_attr_t *prev
lxb_dom_collection_t * lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
lxb_char_t * lxb_dom_node_text_content(lxb_dom_node_t *node, size_t *len)
lxb_status_t lxb_dom_node_text_content_set(lxb_dom_node_t *node, const lxb_char_t *content, size_t len)
bint lxb_dom_node_is_empty(lxb_dom_node_t *node)
void lxb_dom_node_remove(lxb_dom_node_t *node)
void * lxb_dom_document_destroy_text_noi(lxb_dom_document_t *document, lxb_char_t *text)
lxb_dom_node_t * lxb_dom_document_root(lxb_dom_document_t *document)
lxb_dom_element_t * lxb_dom_interface_element(lxb_dom_node_t *node)
lxb_char_t * lxb_dom_element_qualified_name(lxb_dom_element_t *element, size_t *len)
lxb_dom_node_t * lxb_dom_node_destroy(lxb_dom_node_t *node)
lxb_dom_node_t * lxb_dom_node_destroy_deep(lxb_dom_node_t *root)
lxb_dom_attr_t * lxb_dom_element_first_attribute_noi(lxb_dom_element_t *element)
const lxb_char_t * lxb_dom_attr_local_name_noi(lxb_dom_attr_t *attr, size_t *len)
const lxb_char_t * lxb_dom_attr_value_noi(lxb_dom_attr_t *attr, size_t *len)
lxb_dom_attr_t * lxb_dom_element_set_attribute(lxb_dom_element_t *element,
const lxb_char_t *qualified_name, size_t qn_len,
const lxb_char_t *value, size_t value_len)
lxb_status_t lxb_dom_element_remove_attribute(lxb_dom_element_t *element,
const lxb_char_t *qualified_name, size_t qn_len)
lxb_dom_attr_t * lxb_dom_element_attr_by_name(lxb_dom_element_t *element,
const lxb_char_t *qualified_name, size_t length)
lxb_tag_id_t lxb_dom_node_tag_id_noi(lxb_dom_node_t *node)
lxb_dom_node_t * lxb_dom_document_import_node(lxb_dom_document_t *doc, lxb_dom_node_t *node, bint deep)
void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
lxb_status_t lxb_dom_node_replace_all(lxb_dom_node_t *parent, lxb_dom_node_t *node)
void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
void lxb_dom_node_insert_before(lxb_dom_node_t *to, lxb_dom_node_t *node)
void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
lxb_dom_text_t * lxb_dom_document_create_text_node(lxb_dom_document_t *document, const lxb_char_t *data, size_t len)
void lxb_dom_node_simple_walk(lxb_dom_node_t *root, lxb_dom_node_simple_walker_f walker_cb, void *ctx)
lxb_dom_node_t* lxb_dom_node_clone(lxb_dom_node_t *node, bint deep)
cdef extern from "lexbor/dom/interfaces/element.h" nogil:
lxb_status_t lxb_dom_elements_by_tag_name(lxb_dom_element_t *root, lxb_dom_collection_t *collection,
const lxb_char_t *qualified_name, size_t len)
cdef extern from "lexbor/dom/interfaces/document.h" nogil:
lxb_html_document_t * lxb_html_document_destroy(lxb_html_document_t *document)
cdef extern from "lexbor/dom/collection.h" nogil:
size_t lxb_dom_collection_length_noi(lxb_dom_collection_t *col)
lxb_dom_element_t * lxb_dom_collection_element_noi(lxb_dom_collection_t *col, size_t idx)
lxb_dom_collection_t * lxb_dom_collection_destroy(lxb_dom_collection_t *col, bint self_destroy)
cdef extern from "lexbor/css/css.h" nogil:
ctypedef struct lxb_css_parser_t:
lxb_css_memory_t* memory
ctypedef struct lxb_css_syntax_tokenizer_t
ctypedef struct lxb_css_memory_t
lxb_css_parser_t * lxb_css_parser_create()
lxb_status_t lxb_css_parser_init(lxb_css_parser_t *parser, lxb_css_syntax_tokenizer_t *tkz)
lxb_css_parser_t * lxb_css_parser_destroy(lxb_css_parser_t *parser, bint self_destroy)
lxb_css_memory_t * lxb_css_memory_destroy(lxb_css_memory_t *memory, bint self_destroy)
void lxb_css_selector_list_destroy_memory(lxb_css_selector_list_t *list)
cdef extern from "lexbor/tag/tag.h" nogil:
ctypedef enum lxb_tag_id_enum_t:
LXB_TAG__UNDEF = 0x0000
LXB_TAG__END_OF_FILE = 0x0001
LXB_TAG__TEXT = 0x0002
LXB_TAG__DOCUMENT = 0x0003
LXB_TAG__EM_COMMENT = 0x0004
LXB_TAG__EM_DOCTYPE = 0x0005
LXB_TAG_A = 0x0006
LXB_TAG_ABBR = 0x0007
LXB_TAG_ACRONYM = 0x0008
LXB_TAG_ADDRESS = 0x0009
LXB_TAG_ALTGLYPH = 0x000a
LXB_TAG_ALTGLYPHDEF = 0x000b
LXB_TAG_ALTGLYPHITEM = 0x000c
LXB_TAG_ANIMATECOLOR = 0x000d
LXB_TAG_ANIMATEMOTION = 0x000e
LXB_TAG_ANIMATETRANSFORM = 0x000f
LXB_TAG_ANNOTATION_XML = 0x0010
LXB_TAG_APPLET = 0x0011
LXB_TAG_AREA = 0x0012
LXB_TAG_ARTICLE = 0x0013
LXB_TAG_ASIDE = 0x0014
LXB_TAG_AUDIO = 0x0015
LXB_TAG_B = 0x0016
LXB_TAG_BASE = 0x0017
LXB_TAG_BASEFONT = 0x0018
LXB_TAG_BDI = 0x0019
LXB_TAG_BDO = 0x001a
LXB_TAG_BGSOUND = 0x001b
LXB_TAG_BIG = 0x001c
LXB_TAG_BLINK = 0x001d
LXB_TAG_BLOCKQUOTE = 0x001e
LXB_TAG_BODY = 0x001f
LXB_TAG_BR = 0x0020
LXB_TAG_BUTTON = 0x0021
LXB_TAG_CANVAS = 0x0022
LXB_TAG_CAPTION = 0x0023
LXB_TAG_CENTER = 0x0024
LXB_TAG_CITE = 0x0025
LXB_TAG_CLIPPATH = 0x0026
LXB_TAG_CODE = 0x0027
LXB_TAG_COL = 0x0028
LXB_TAG_COLGROUP = 0x0029
LXB_TAG_DATA = 0x002a
LXB_TAG_DATALIST = 0x002b
LXB_TAG_DD = 0x002c
LXB_TAG_DEL = 0x002d
LXB_TAG_DESC = 0x002e
LXB_TAG_DETAILS = 0x002f
LXB_TAG_DFN = 0x0030
LXB_TAG_DIALOG = 0x0031
LXB_TAG_DIR = 0x0032
LXB_TAG_DIV = 0x0033
LXB_TAG_DL = 0x0034
LXB_TAG_DT = 0x0035
LXB_TAG_EM = 0x0036
LXB_TAG_EMBED = 0x0037
LXB_TAG_FEBLEND = 0x0038
LXB_TAG_FECOLORMATRIX = 0x0039
LXB_TAG_FECOMPONENTTRANSFER = 0x003a
LXB_TAG_FECOMPOSITE = 0x003b
LXB_TAG_FECONVOLVEMATRIX = 0x003c
LXB_TAG_FEDIFFUSELIGHTING = 0x003d
LXB_TAG_FEDISPLACEMENTMAP = 0x003e
LXB_TAG_FEDISTANTLIGHT = 0x003f
LXB_TAG_FEDROPSHADOW = 0x0040
LXB_TAG_FEFLOOD = 0x0041
LXB_TAG_FEFUNCA = 0x0042
LXB_TAG_FEFUNCB = 0x0043
LXB_TAG_FEFUNCG = 0x0044
LXB_TAG_FEFUNCR = 0x0045
LXB_TAG_FEGAUSSIANBLUR = 0x0046
LXB_TAG_FEIMAGE = 0x0047
LXB_TAG_FEMERGE = 0x0048
LXB_TAG_FEMERGENODE = 0x0049
LXB_TAG_FEMORPHOLOGY = 0x004a
LXB_TAG_FEOFFSET = 0x004b
LXB_TAG_FEPOINTLIGHT = 0x004c
LXB_TAG_FESPECULARLIGHTING = 0x004d
LXB_TAG_FESPOTLIGHT = 0x004e
LXB_TAG_FETILE = 0x004f
LXB_TAG_FETURBULENCE = 0x0050
LXB_TAG_FIELDSET = 0x0051
LXB_TAG_FIGCAPTION = 0x0052
LXB_TAG_FIGURE = 0x0053
LXB_TAG_FONT = 0x0054
LXB_TAG_FOOTER = 0x0055
LXB_TAG_FOREIGNOBJECT = 0x0056
LXB_TAG_FORM = 0x0057
LXB_TAG_FRAME = 0x0058
LXB_TAG_FRAMESET = 0x0059
LXB_TAG_GLYPHREF = 0x005a
LXB_TAG_H1 = 0x005b
LXB_TAG_H2 = 0x005c
LXB_TAG_H3 = 0x005d
LXB_TAG_H4 = 0x005e
LXB_TAG_H5 = 0x005f
LXB_TAG_H6 = 0x0060
LXB_TAG_HEAD = 0x0061
LXB_TAG_HEADER = 0x0062
LXB_TAG_HGROUP = 0x0063
LXB_TAG_HR = 0x0064
LXB_TAG_HTML = 0x0065
LXB_TAG_I = 0x0066
LXB_TAG_IFRAME = 0x0067
LXB_TAG_IMAGE = 0x0068
LXB_TAG_IMG = 0x0069
LXB_TAG_INPUT = 0x006a
LXB_TAG_INS = 0x006b
LXB_TAG_ISINDEX = 0x006c
LXB_TAG_KBD = 0x006d
LXB_TAG_KEYGEN = 0x006e
LXB_TAG_LABEL = 0x006f
LXB_TAG_LEGEND = 0x0070
LXB_TAG_LI = 0x0071
LXB_TAG_LINEARGRADIENT = 0x0072
LXB_TAG_LINK = 0x0073
LXB_TAG_LISTING = 0x0074
LXB_TAG_MAIN = 0x0075
LXB_TAG_MALIGNMARK = 0x0076
LXB_TAG_MAP = 0x0077
LXB_TAG_MARK = 0x0078
LXB_TAG_MARQUEE = 0x0079
LXB_TAG_MATH = 0x007a
LXB_TAG_MENU = 0x007b
LXB_TAG_META = 0x007c
LXB_TAG_METER = 0x007d
LXB_TAG_MFENCED = 0x007e
LXB_TAG_MGLYPH = 0x007f
LXB_TAG_MI = 0x0080
LXB_TAG_MN = 0x0081
LXB_TAG_MO = 0x0082
LXB_TAG_MS = 0x0083
LXB_TAG_MTEXT = 0x0084
LXB_TAG_MULTICOL = 0x0085
LXB_TAG_NAV = 0x0086
LXB_TAG_NEXTID = 0x0087
LXB_TAG_NOBR = 0x0088
LXB_TAG_NOEMBED = 0x0089
LXB_TAG_NOFRAMES = 0x008a
LXB_TAG_NOSCRIPT = 0x008b
LXB_TAG_OBJECT = 0x008c
LXB_TAG_OL = 0x008d
LXB_TAG_OPTGROUP = 0x008e
LXB_TAG_OPTION = 0x008f
LXB_TAG_OUTPUT = 0x0090
LXB_TAG_P = 0x0091
LXB_TAG_PARAM = 0x0092
LXB_TAG_PATH = 0x0093
LXB_TAG_PICTURE = 0x0094
LXB_TAG_PLAINTEXT = 0x0095
LXB_TAG_PRE = 0x0096
LXB_TAG_PROGRESS = 0x0097
LXB_TAG_Q = 0x0098
LXB_TAG_RADIALGRADIENT = 0x0099
LXB_TAG_RB = 0x009a
LXB_TAG_RP = 0x009b
LXB_TAG_RT = 0x009c
LXB_TAG_RTC = 0x009d
LXB_TAG_RUBY = 0x009e
LXB_TAG_S = 0x009f
LXB_TAG_SAMP = 0x00a0
LXB_TAG_SCRIPT = 0x00a1
LXB_TAG_SECTION = 0x00a2
LXB_TAG_SELECT = 0x00a3
LXB_TAG_SLOT = 0x00a4
LXB_TAG_SMALL = 0x00a5
LXB_TAG_SOURCE = 0x00a6
LXB_TAG_SPACER = 0x00a7
LXB_TAG_SPAN = 0x00a8
LXB_TAG_STRIKE = 0x00a9
LXB_TAG_STRONG = 0x00aa
LXB_TAG_STYLE = 0x00ab
LXB_TAG_SUB = 0x00ac
LXB_TAG_SUMMARY = 0x00ad
LXB_TAG_SUP = 0x00ae
LXB_TAG_SVG = 0x00af
LXB_TAG_TABLE = 0x00b0
LXB_TAG_TBODY = 0x00b1
LXB_TAG_TD = 0x00b2
LXB_TAG_TEMPLATE = 0x00b3
LXB_TAG_TEXTAREA = 0x00b4
LXB_TAG_TEXTPATH = 0x00b5
LXB_TAG_TFOOT = 0x00b6
LXB_TAG_TH = 0x00b7
LXB_TAG_THEAD = 0x00b8
LXB_TAG_TIME = 0x00b9
LXB_TAG_TITLE = 0x00ba
LXB_TAG_TR = 0x00bb
LXB_TAG_TRACK = 0x00bc
LXB_TAG_TT = 0x00bd
LXB_TAG_U = 0x00be
LXB_TAG_UL = 0x00bf
LXB_TAG_VAR = 0x00c0
LXB_TAG_VIDEO = 0x00c1
LXB_TAG_WBR = 0x00c2
LXB_TAG_XMP = 0x00c3
LXB_TAG__LAST_ENTRY = 0x00c4
cdef extern from "lexbor/selectors/selectors.h" nogil:
ctypedef struct lxb_css_selectors_t
ctypedef struct lxb_selectors_t
ctypedef struct lxb_css_selector_list_t
ctypedef struct lxb_css_selector_specificity_t
ctypedef lxb_status_t (*lxb_selectors_cb_f)(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx)
ctypedef enum lxb_selectors_opt_t:
LXB_SELECTORS_OPT_DEFAULT = 0x00
LXB_SELECTORS_OPT_MATCH_ROOT = 1 << 1
LXB_SELECTORS_OPT_MATCH_FIRST = 1 << 2
void lxb_selectors_opt_set(lxb_selectors_t *selectors, lxb_selectors_opt_t opt)
lxb_css_selectors_t * lxb_css_selectors_create()
lxb_status_t lxb_css_selectors_init(lxb_css_selectors_t *selectors)
void lxb_css_parser_selectors_set(lxb_css_parser_t *parser, 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_selectors_t * lxb_css_selectors_destroy(lxb_css_selectors_t *selectors, bint self_destroy)
lxb_selectors_t * lxb_selectors_create()
lxb_status_t lxb_selectors_init(lxb_selectors_t *selectors)
lxb_selectors_t * lxb_selectors_destroy(lxb_selectors_t *selectors, bint self_destroy)
lxb_status_t lxb_selectors_find(lxb_selectors_t *selectors, lxb_dom_node_t *root,
lxb_css_selector_list_t *list, lxb_selectors_cb_f cb, void *ctx)