selectolax 0.3.34__cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of selectolax might be problematic. Click here for more details.

selectolax/lexbor.pxd ADDED
@@ -0,0 +1,576 @@
1
+ from libc.stdint cimport uint8_t, uint32_t, uintptr_t
2
+
3
+
4
+ cdef extern from "lexbor/core/core.h" nogil:
5
+ ctypedef uint32_t lxb_codepoint_t
6
+ ctypedef unsigned char lxb_char_t
7
+ ctypedef unsigned int lxb_status_t
8
+ ctypedef enum lexbor_status_t:
9
+ LXB_STATUS_OK = 0x0000
10
+ LXB_STATUS_ERROR = 0x0001
11
+ LXB_STATUS_ERROR_MEMORY_ALLOCATION
12
+ LXB_STATUS_ERROR_OBJECT_IS_NULL
13
+ LXB_STATUS_ERROR_SMALL_BUFFER
14
+ LXB_STATUS_ERROR_INCOMPLETE_OBJECT
15
+ LXB_STATUS_ERROR_NO_FREE_SLOT
16
+ LXB_STATUS_ERROR_TOO_SMALL_SIZE
17
+ LXB_STATUS_ERROR_NOT_EXISTS
18
+ LXB_STATUS_ERROR_WRONG_ARGS
19
+ LXB_STATUS_ERROR_WRONG_STAGE
20
+ LXB_STATUS_ERROR_UNEXPECTED_RESULT
21
+ LXB_STATUS_ERROR_UNEXPECTED_DATA
22
+ LXB_STATUS_ERROR_OVERFLOW
23
+ LXB_STATUS_CONTINUE
24
+ LXB_STATUS_SMALL_BUFFER
25
+ LXB_STATUS_ABORTED
26
+ LXB_STATUS_STOPPED
27
+ LXB_STATUS_NEXT
28
+ LXB_STATUS_STOP
29
+
30
+ lexbor_str_t* lexbor_str_destroy(lexbor_str_t *str, lexbor_mraw_t *mraw, bint destroy_obj)
31
+ lexbor_str_t* lexbor_str_create()
32
+ lxb_char_t * lexbor_str_data_noi(lexbor_str_t *str)
33
+
34
+ cdef extern from "lexbor/html/html.h" nogil:
35
+ ctypedef unsigned int lxb_html_document_opt_t
36
+
37
+ ctypedef struct lxb_html_tokenizer_t
38
+ ctypedef struct lxb_html_form_element_t
39
+ ctypedef struct lxb_html_head_element_t
40
+ ctypedef struct lxb_html_body_element_t
41
+ ctypedef struct lxb_dom_element_t
42
+ ctypedef struct lexbor_mraw_t
43
+ ctypedef struct lexbor_hash_t
44
+ ctypedef struct lxb_dom_document_type_t
45
+ ctypedef void lxb_dom_interface_t
46
+ ctypedef uintptr_t lxb_tag_id_t
47
+ ctypedef uintptr_t lxb_ns_id_t
48
+ ctypedef lxb_dom_interface_t *(*lxb_dom_interface_destroy_f)(lxb_dom_interface_t *intrfc)
49
+ ctypedef lxb_dom_interface_t *(*lxb_dom_interface_create_f)(lxb_dom_document_t *document, lxb_tag_id_t tag_id,
50
+ lxb_ns_id_t ns)
51
+
52
+ ctypedef struct lxb_dom_event_target_t:
53
+ void *events
54
+
55
+ ctypedef struct lexbor_str_t:
56
+ lxb_char_t *data
57
+ size_t length
58
+
59
+ ctypedef struct lxb_dom_node_t:
60
+ lxb_dom_event_target_t event_target
61
+
62
+ uintptr_t local_name
63
+ uintptr_t prefix
64
+ uintptr_t ns
65
+
66
+ lxb_dom_document_t *owner_document
67
+
68
+ lxb_dom_node_t *next
69
+ lxb_dom_node_t *prev
70
+ lxb_dom_node_t *parent
71
+ lxb_dom_node_t *first_child
72
+ lxb_dom_node_t *last_child
73
+ void *user
74
+
75
+ lxb_dom_node_type_t type
76
+
77
+ ctypedef struct lxb_dom_document_t:
78
+ lxb_dom_node_t node
79
+
80
+ lxb_dom_document_cmode_t compat_mode
81
+ lxb_dom_document_dtype_t type
82
+
83
+ lxb_dom_document_type_t *doctype
84
+ lxb_dom_element_t *element
85
+
86
+ lxb_dom_interface_create_f create_interface
87
+ lxb_dom_interface_destroy_f destroy_interface
88
+
89
+ lexbor_mraw_t *mraw
90
+ lexbor_mraw_t *text
91
+ lexbor_hash_t *tags
92
+ lexbor_hash_t *attrs
93
+ lexbor_hash_t *prefix
94
+ lexbor_hash_t *ns
95
+ void *parser
96
+ void *user
97
+
98
+ bint tags_inherited
99
+ bint ns_inherited
100
+
101
+ bint scripting
102
+
103
+ ctypedef struct lxb_html_document_t:
104
+ lxb_dom_document_t dom_document
105
+
106
+ void *iframe_srcdoc
107
+
108
+ lxb_html_head_element_t *head
109
+ lxb_html_body_element_t *body
110
+ lxb_html_document_ready_state_t ready_state
111
+ lxb_html_document_opt_t opt
112
+
113
+ ctypedef enum lxb_html_document_ready_state_t:
114
+ LXB_HTML_DOCUMENT_READY_STATE_UNDEF = 0x00
115
+ LXB_HTML_DOCUMENT_READY_STATE_LOADING = 0x01
116
+ LXB_HTML_DOCUMENT_READY_STATE_INTERACTIVE = 0x02
117
+ LXB_HTML_DOCUMENT_READY_STATE_COMPLETE = 0x03
118
+
119
+ ctypedef enum lxb_html_parser_state_t:
120
+ LXB_HTML_PARSER_STATE_BEGIN = 0x00
121
+ LXB_HTML_PARSER_STATE_PROCESS = 0x01
122
+ LXB_HTML_PARSER_STATE_END = 0x02
123
+ LXB_HTML_PARSER_STATE_FRAGMENT_PROCESS = 0x03
124
+ LXB_HTML_PARSER_STATE_ERROR = 0x04
125
+
126
+ ctypedef enum lxb_dom_node_type_t:
127
+ LXB_DOM_NODE_TYPE_ELEMENT = 0x01
128
+ LXB_DOM_NODE_TYPE_ATTRIBUTE = 0x02
129
+ LXB_DOM_NODE_TYPE_TEXT = 0x03
130
+ LXB_DOM_NODE_TYPE_CDATA_SECTION = 0x04
131
+ LXB_DOM_NODE_TYPE_ENTITY_REFERENCE = 0x05
132
+ LXB_DOM_NODE_TYPE_ENTITY = 0x06
133
+ LXB_DOM_NODE_TYPE_PROCESSING_INSTRUCTION = 0x07
134
+ LXB_DOM_NODE_TYPE_COMMENT = 0x08
135
+ LXB_DOM_NODE_TYPE_DOCUMENT = 0x09
136
+ LXB_DOM_NODE_TYPE_DOCUMENT_TYPE = 0x0A
137
+ LXB_DOM_NODE_TYPE_DOCUMENT_FRAGMENT = 0x0B
138
+ LXB_DOM_NODE_TYPE_NOTATION = 0x0C
139
+ LXB_DOM_NODE_TYPE_LAST_ENTRY = 0x0D
140
+
141
+ ctypedef enum lxb_dom_document_cmode_t:
142
+ LXB_DOM_DOCUMENT_CMODE_NO_QUIRKS = 0x00
143
+ LXB_DOM_DOCUMENT_CMODE_QUIRKS = 0x01
144
+ LXB_DOM_DOCUMENT_CMODE_LIMITED_QUIRKS = 0x02
145
+
146
+ ctypedef enum lxb_dom_document_dtype_t:
147
+ LXB_DOM_DOCUMENT_DTYPE_UNDEF = 0x00,
148
+ LXB_DOM_DOCUMENT_DTYPE_HTML = 0x01,
149
+ LXB_DOM_DOCUMENT_DTYPE_XML = 0x02
150
+
151
+ ctypedef enum lxb_html_serialize_opt_t:
152
+ LXB_HTML_SERIALIZE_OPT_UNDEF = 0x00
153
+ LXB_HTML_SERIALIZE_OPT_SKIP_WS_NODES = 0x01
154
+ LXB_HTML_SERIALIZE_OPT_SKIP_COMMENT = 0x02
155
+ LXB_HTML_SERIALIZE_OPT_RAW = 0x04
156
+ LXB_HTML_SERIALIZE_OPT_WITHOUT_CLOSING = 0x08
157
+ LXB_HTML_SERIALIZE_OPT_TAG_WITH_NS = 0x10
158
+ LXB_HTML_SERIALIZE_OPT_WITHOUT_TEXT_INDENT = 0x20
159
+ LXB_HTML_SERIALIZE_OPT_FULL_DOCTYPE = 0x40
160
+
161
+ ctypedef struct lexbor_array_t:
162
+ void **list
163
+ size_t size
164
+ size_t length
165
+
166
+ ctypedef struct lexbor_array_obj_t:
167
+ uint8_t *list
168
+ size_t size
169
+ size_t length
170
+ size_t struct_size
171
+
172
+ ctypedef struct lxb_html_tree_pending_table_t
173
+ ctypedef bint lxb_html_tree_insertion_mode_f
174
+ ctypedef lxb_status_t lxb_html_tree_append_attr_f
175
+
176
+ ctypedef struct lxb_html_tree_t:
177
+
178
+ lxb_html_tokenizer_t *tkz_ref
179
+
180
+ lxb_html_document_t *document
181
+ lxb_dom_node_t *fragment
182
+
183
+ lxb_html_form_element_t *form
184
+
185
+ lexbor_array_t *open_elements
186
+ lexbor_array_t *active_formatting
187
+ lexbor_array_obj_t *template_insertion_modes
188
+
189
+ lxb_html_tree_pending_table_t *pending_table
190
+
191
+ lexbor_array_obj_t *parse_errors
192
+
193
+ bint foster_parenting
194
+ bint frameset_ok
195
+ bint scripting
196
+
197
+ lxb_html_tree_insertion_mode_f mode
198
+ lxb_html_tree_insertion_mode_f original_mode
199
+ lxb_html_tree_append_attr_f before_append_attr
200
+
201
+ lxb_status_t status
202
+
203
+ size_t ref_count
204
+
205
+ ctypedef struct lxb_html_parser_t:
206
+ lxb_html_tokenizer_t *tkz
207
+ lxb_html_tree_t *tree
208
+ lxb_html_tree_t *original_tree
209
+
210
+ lxb_dom_node_t *root
211
+ lxb_dom_node_t *form
212
+
213
+ lxb_html_parser_state_t state
214
+ lxb_status_t status
215
+
216
+ size_t ref_count
217
+
218
+ # Functions
219
+ lxb_html_document_t * lxb_html_document_create()
220
+ lxb_status_t lxb_html_document_parse(lxb_html_document_t *document, const lxb_char_t *html, size_t size)
221
+ lxb_html_body_element_t * lxb_html_document_body_element_noi(lxb_html_document_t *document)
222
+ lxb_html_head_element_t * lxb_html_document_head_element_noi(lxb_html_document_t *document)
223
+ lxb_dom_element_t * lxb_dom_document_element(lxb_dom_document_t *document)
224
+
225
+ lxb_status_t lxb_html_serialize_tree_str(lxb_dom_node_t *node, lexbor_str_t *str)
226
+
227
+ cdef class LexborNode:
228
+ cdef:
229
+ lxb_dom_node_t *node
230
+ public LexborHTMLParser parser
231
+
232
+ @staticmethod
233
+ cdef LexborNode new(lxb_dom_node_t *node, LexborHTMLParser parser)
234
+
235
+
236
+ cdef class LexborCSSSelector:
237
+ cdef lxb_css_parser_t* parser
238
+ cdef lxb_selectors_t * selectors
239
+ cdef lxb_css_selectors_t * css_selectors
240
+ cdef public list results
241
+ cdef public LexborNode current_node
242
+ cdef int _create_css_parser(self) except -1
243
+ cpdef list find(self, str query, LexborNode node)
244
+ cpdef int any_matches(self, str query, LexborNode node) except -1
245
+
246
+ cdef class LexborHTMLParser:
247
+ cdef lxb_html_document_t *document
248
+ cdef public bytes raw_html
249
+ cdef LexborCSSSelector _selector
250
+ cdef int _parse_html(self, char* html, size_t html_len) except -1
251
+ cdef object cached_script_texts
252
+ cdef object cached_script_srcs
253
+
254
+ @staticmethod
255
+ cdef LexborHTMLParser from_document(lxb_html_document_t * document, bytes raw_html)
256
+
257
+
258
+ cdef extern from "lexbor/dom/dom.h" nogil:
259
+ ctypedef enum lexbor_action_t:
260
+ LEXBOR_ACTION_OK = 0x00
261
+ LEXBOR_ACTION_STOP = 0x01
262
+ LEXBOR_ACTION_NEXT = 0x02
263
+
264
+ ctypedef lexbor_action_t (*lxb_dom_node_simple_walker_f)(lxb_dom_node_t *node, void *ctx)
265
+
266
+ ctypedef struct lxb_dom_character_data_t:
267
+ lxb_dom_node_t node
268
+ lexbor_str_t data
269
+
270
+ ctypedef struct lxb_dom_text_t:
271
+ lxb_dom_character_data_t char_data
272
+
273
+ ctypedef uintptr_t lxb_dom_attr_id_t
274
+ ctypedef struct lxb_dom_collection_t:
275
+ lexbor_array_t array
276
+ lxb_dom_document_t *document
277
+
278
+ ctypedef struct lxb_dom_attr_t:
279
+ lxb_dom_node_t node
280
+
281
+ lxb_dom_attr_id_t upper_name
282
+ lxb_dom_attr_id_t qualified_name
283
+
284
+ lexbor_str_t *value
285
+
286
+ lxb_dom_element_t *owner
287
+
288
+ lxb_dom_attr_t *next
289
+ lxb_dom_attr_t *prev
290
+
291
+ lxb_dom_collection_t * lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
292
+ lxb_char_t * lxb_dom_node_text_content(lxb_dom_node_t *node, size_t *len)
293
+ lxb_status_t lxb_dom_node_text_content_set(lxb_dom_node_t *node, const lxb_char_t *content, size_t len)
294
+ void lxb_dom_node_remove(lxb_dom_node_t *node)
295
+ void * lxb_dom_document_destroy_text_noi(lxb_dom_document_t *document, lxb_char_t *text)
296
+ lxb_dom_node_t * lxb_dom_document_root(lxb_dom_document_t *document)
297
+ lxb_char_t * lxb_dom_element_qualified_name(lxb_dom_element_t *element, size_t *len)
298
+ lxb_dom_node_t * lxb_dom_node_destroy(lxb_dom_node_t *node)
299
+ lxb_dom_node_t * lxb_dom_node_destroy_deep(lxb_dom_node_t *root)
300
+ lxb_dom_attr_t * lxb_dom_element_first_attribute_noi(lxb_dom_element_t *element)
301
+
302
+ const lxb_char_t * lxb_dom_attr_local_name_noi(lxb_dom_attr_t *attr, size_t *len)
303
+ const lxb_char_t * lxb_dom_attr_value_noi(lxb_dom_attr_t *attr, size_t *len)
304
+
305
+ lxb_dom_attr_t * lxb_dom_element_set_attribute(lxb_dom_element_t *element,
306
+ const lxb_char_t *qualified_name, size_t qn_len,
307
+ const lxb_char_t *value, size_t value_len)
308
+ lxb_status_t lxb_dom_element_remove_attribute(lxb_dom_element_t *element,
309
+ const lxb_char_t *qualified_name, size_t qn_len)
310
+ lxb_dom_attr_t * lxb_dom_element_attr_by_name(lxb_dom_element_t *element,
311
+ const lxb_char_t *qualified_name, size_t length)
312
+ lxb_tag_id_t lxb_dom_node_tag_id_noi(lxb_dom_node_t *node)
313
+ lxb_dom_node_t * lxb_dom_document_import_node(lxb_dom_document_t *doc, lxb_dom_node_t *node, bint deep)
314
+ void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
315
+ lxb_status_t lxb_dom_node_replace_all(lxb_dom_node_t *parent, lxb_dom_node_t *node)
316
+ void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
317
+ void lxb_dom_node_insert_before(lxb_dom_node_t *to, lxb_dom_node_t *node)
318
+ void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
319
+ lxb_dom_text_t * lxb_dom_document_create_text_node(lxb_dom_document_t *document, const lxb_char_t *data, size_t len)
320
+ void lxb_dom_node_simple_walk(lxb_dom_node_t *root, lxb_dom_node_simple_walker_f walker_cb, void *ctx)
321
+
322
+
323
+ cdef extern from "lexbor/dom/interfaces/element.h" nogil:
324
+ lxb_status_t lxb_dom_elements_by_tag_name(lxb_dom_element_t *root, lxb_dom_collection_t *collection,
325
+ const lxb_char_t *qualified_name, size_t len)
326
+
327
+
328
+ cdef extern from "lexbor/dom/interfaces/document.h" nogil:
329
+ lxb_html_document_t * lxb_html_document_destroy(lxb_html_document_t *document)
330
+
331
+
332
+ cdef extern from "lexbor/dom/collection.h" nogil:
333
+ size_t lxb_dom_collection_length_noi(lxb_dom_collection_t *col)
334
+
335
+ lxb_dom_element_t * lxb_dom_collection_element_noi(lxb_dom_collection_t *col, size_t idx)
336
+ lxb_dom_collection_t * lxb_dom_collection_destroy(lxb_dom_collection_t *col, bint self_destroy)
337
+
338
+
339
+ cdef extern from "lexbor/css/css.h" nogil:
340
+ ctypedef struct lxb_css_parser_t:
341
+ lxb_css_memory_t* memory
342
+ ctypedef struct lxb_css_syntax_tokenizer_t
343
+ ctypedef struct lxb_css_memory_t
344
+
345
+ lxb_css_parser_t * lxb_css_parser_create()
346
+ lxb_status_t lxb_css_parser_init(lxb_css_parser_t *parser, lxb_css_syntax_tokenizer_t *tkz)
347
+ lxb_css_parser_t * lxb_css_parser_destroy(lxb_css_parser_t *parser, bint self_destroy)
348
+ lxb_css_memory_t * lxb_css_memory_destroy(lxb_css_memory_t *memory, bint self_destroy)
349
+ void lxb_css_selector_list_destroy_memory(lxb_css_selector_list_t *list)
350
+
351
+
352
+ cdef extern from "lexbor/tag/tag.h" nogil:
353
+ ctypedef enum lxb_tag_id_enum_t:
354
+ LXB_TAG__UNDEF = 0x0000
355
+ LXB_TAG__END_OF_FILE = 0x0001
356
+ LXB_TAG__TEXT = 0x0002
357
+ LXB_TAG__DOCUMENT = 0x0003
358
+ LXB_TAG__EM_COMMENT = 0x0004
359
+ LXB_TAG__EM_DOCTYPE = 0x0005
360
+ LXB_TAG_A = 0x0006
361
+ LXB_TAG_ABBR = 0x0007
362
+ LXB_TAG_ACRONYM = 0x0008
363
+ LXB_TAG_ADDRESS = 0x0009
364
+ LXB_TAG_ALTGLYPH = 0x000a
365
+ LXB_TAG_ALTGLYPHDEF = 0x000b
366
+ LXB_TAG_ALTGLYPHITEM = 0x000c
367
+ LXB_TAG_ANIMATECOLOR = 0x000d
368
+ LXB_TAG_ANIMATEMOTION = 0x000e
369
+ LXB_TAG_ANIMATETRANSFORM = 0x000f
370
+ LXB_TAG_ANNOTATION_XML = 0x0010
371
+ LXB_TAG_APPLET = 0x0011
372
+ LXB_TAG_AREA = 0x0012
373
+ LXB_TAG_ARTICLE = 0x0013
374
+ LXB_TAG_ASIDE = 0x0014
375
+ LXB_TAG_AUDIO = 0x0015
376
+ LXB_TAG_B = 0x0016
377
+ LXB_TAG_BASE = 0x0017
378
+ LXB_TAG_BASEFONT = 0x0018
379
+ LXB_TAG_BDI = 0x0019
380
+ LXB_TAG_BDO = 0x001a
381
+ LXB_TAG_BGSOUND = 0x001b
382
+ LXB_TAG_BIG = 0x001c
383
+ LXB_TAG_BLINK = 0x001d
384
+ LXB_TAG_BLOCKQUOTE = 0x001e
385
+ LXB_TAG_BODY = 0x001f
386
+ LXB_TAG_BR = 0x0020
387
+ LXB_TAG_BUTTON = 0x0021
388
+ LXB_TAG_CANVAS = 0x0022
389
+ LXB_TAG_CAPTION = 0x0023
390
+ LXB_TAG_CENTER = 0x0024
391
+ LXB_TAG_CITE = 0x0025
392
+ LXB_TAG_CLIPPATH = 0x0026
393
+ LXB_TAG_CODE = 0x0027
394
+ LXB_TAG_COL = 0x0028
395
+ LXB_TAG_COLGROUP = 0x0029
396
+ LXB_TAG_DATA = 0x002a
397
+ LXB_TAG_DATALIST = 0x002b
398
+ LXB_TAG_DD = 0x002c
399
+ LXB_TAG_DEL = 0x002d
400
+ LXB_TAG_DESC = 0x002e
401
+ LXB_TAG_DETAILS = 0x002f
402
+ LXB_TAG_DFN = 0x0030
403
+ LXB_TAG_DIALOG = 0x0031
404
+ LXB_TAG_DIR = 0x0032
405
+ LXB_TAG_DIV = 0x0033
406
+ LXB_TAG_DL = 0x0034
407
+ LXB_TAG_DT = 0x0035
408
+ LXB_TAG_EM = 0x0036
409
+ LXB_TAG_EMBED = 0x0037
410
+ LXB_TAG_FEBLEND = 0x0038
411
+ LXB_TAG_FECOLORMATRIX = 0x0039
412
+ LXB_TAG_FECOMPONENTTRANSFER = 0x003a
413
+ LXB_TAG_FECOMPOSITE = 0x003b
414
+ LXB_TAG_FECONVOLVEMATRIX = 0x003c
415
+ LXB_TAG_FEDIFFUSELIGHTING = 0x003d
416
+ LXB_TAG_FEDISPLACEMENTMAP = 0x003e
417
+ LXB_TAG_FEDISTANTLIGHT = 0x003f
418
+ LXB_TAG_FEDROPSHADOW = 0x0040
419
+ LXB_TAG_FEFLOOD = 0x0041
420
+ LXB_TAG_FEFUNCA = 0x0042
421
+ LXB_TAG_FEFUNCB = 0x0043
422
+ LXB_TAG_FEFUNCG = 0x0044
423
+ LXB_TAG_FEFUNCR = 0x0045
424
+ LXB_TAG_FEGAUSSIANBLUR = 0x0046
425
+ LXB_TAG_FEIMAGE = 0x0047
426
+ LXB_TAG_FEMERGE = 0x0048
427
+ LXB_TAG_FEMERGENODE = 0x0049
428
+ LXB_TAG_FEMORPHOLOGY = 0x004a
429
+ LXB_TAG_FEOFFSET = 0x004b
430
+ LXB_TAG_FEPOINTLIGHT = 0x004c
431
+ LXB_TAG_FESPECULARLIGHTING = 0x004d
432
+ LXB_TAG_FESPOTLIGHT = 0x004e
433
+ LXB_TAG_FETILE = 0x004f
434
+ LXB_TAG_FETURBULENCE = 0x0050
435
+ LXB_TAG_FIELDSET = 0x0051
436
+ LXB_TAG_FIGCAPTION = 0x0052
437
+ LXB_TAG_FIGURE = 0x0053
438
+ LXB_TAG_FONT = 0x0054
439
+ LXB_TAG_FOOTER = 0x0055
440
+ LXB_TAG_FOREIGNOBJECT = 0x0056
441
+ LXB_TAG_FORM = 0x0057
442
+ LXB_TAG_FRAME = 0x0058
443
+ LXB_TAG_FRAMESET = 0x0059
444
+ LXB_TAG_GLYPHREF = 0x005a
445
+ LXB_TAG_H1 = 0x005b
446
+ LXB_TAG_H2 = 0x005c
447
+ LXB_TAG_H3 = 0x005d
448
+ LXB_TAG_H4 = 0x005e
449
+ LXB_TAG_H5 = 0x005f
450
+ LXB_TAG_H6 = 0x0060
451
+ LXB_TAG_HEAD = 0x0061
452
+ LXB_TAG_HEADER = 0x0062
453
+ LXB_TAG_HGROUP = 0x0063
454
+ LXB_TAG_HR = 0x0064
455
+ LXB_TAG_HTML = 0x0065
456
+ LXB_TAG_I = 0x0066
457
+ LXB_TAG_IFRAME = 0x0067
458
+ LXB_TAG_IMAGE = 0x0068
459
+ LXB_TAG_IMG = 0x0069
460
+ LXB_TAG_INPUT = 0x006a
461
+ LXB_TAG_INS = 0x006b
462
+ LXB_TAG_ISINDEX = 0x006c
463
+ LXB_TAG_KBD = 0x006d
464
+ LXB_TAG_KEYGEN = 0x006e
465
+ LXB_TAG_LABEL = 0x006f
466
+ LXB_TAG_LEGEND = 0x0070
467
+ LXB_TAG_LI = 0x0071
468
+ LXB_TAG_LINEARGRADIENT = 0x0072
469
+ LXB_TAG_LINK = 0x0073
470
+ LXB_TAG_LISTING = 0x0074
471
+ LXB_TAG_MAIN = 0x0075
472
+ LXB_TAG_MALIGNMARK = 0x0076
473
+ LXB_TAG_MAP = 0x0077
474
+ LXB_TAG_MARK = 0x0078
475
+ LXB_TAG_MARQUEE = 0x0079
476
+ LXB_TAG_MATH = 0x007a
477
+ LXB_TAG_MENU = 0x007b
478
+ LXB_TAG_META = 0x007c
479
+ LXB_TAG_METER = 0x007d
480
+ LXB_TAG_MFENCED = 0x007e
481
+ LXB_TAG_MGLYPH = 0x007f
482
+ LXB_TAG_MI = 0x0080
483
+ LXB_TAG_MN = 0x0081
484
+ LXB_TAG_MO = 0x0082
485
+ LXB_TAG_MS = 0x0083
486
+ LXB_TAG_MTEXT = 0x0084
487
+ LXB_TAG_MULTICOL = 0x0085
488
+ LXB_TAG_NAV = 0x0086
489
+ LXB_TAG_NEXTID = 0x0087
490
+ LXB_TAG_NOBR = 0x0088
491
+ LXB_TAG_NOEMBED = 0x0089
492
+ LXB_TAG_NOFRAMES = 0x008a
493
+ LXB_TAG_NOSCRIPT = 0x008b
494
+ LXB_TAG_OBJECT = 0x008c
495
+ LXB_TAG_OL = 0x008d
496
+ LXB_TAG_OPTGROUP = 0x008e
497
+ LXB_TAG_OPTION = 0x008f
498
+ LXB_TAG_OUTPUT = 0x0090
499
+ LXB_TAG_P = 0x0091
500
+ LXB_TAG_PARAM = 0x0092
501
+ LXB_TAG_PATH = 0x0093
502
+ LXB_TAG_PICTURE = 0x0094
503
+ LXB_TAG_PLAINTEXT = 0x0095
504
+ LXB_TAG_PRE = 0x0096
505
+ LXB_TAG_PROGRESS = 0x0097
506
+ LXB_TAG_Q = 0x0098
507
+ LXB_TAG_RADIALGRADIENT = 0x0099
508
+ LXB_TAG_RB = 0x009a
509
+ LXB_TAG_RP = 0x009b
510
+ LXB_TAG_RT = 0x009c
511
+ LXB_TAG_RTC = 0x009d
512
+ LXB_TAG_RUBY = 0x009e
513
+ LXB_TAG_S = 0x009f
514
+ LXB_TAG_SAMP = 0x00a0
515
+ LXB_TAG_SCRIPT = 0x00a1
516
+ LXB_TAG_SECTION = 0x00a2
517
+ LXB_TAG_SELECT = 0x00a3
518
+ LXB_TAG_SLOT = 0x00a4
519
+ LXB_TAG_SMALL = 0x00a5
520
+ LXB_TAG_SOURCE = 0x00a6
521
+ LXB_TAG_SPACER = 0x00a7
522
+ LXB_TAG_SPAN = 0x00a8
523
+ LXB_TAG_STRIKE = 0x00a9
524
+ LXB_TAG_STRONG = 0x00aa
525
+ LXB_TAG_STYLE = 0x00ab
526
+ LXB_TAG_SUB = 0x00ac
527
+ LXB_TAG_SUMMARY = 0x00ad
528
+ LXB_TAG_SUP = 0x00ae
529
+ LXB_TAG_SVG = 0x00af
530
+ LXB_TAG_TABLE = 0x00b0
531
+ LXB_TAG_TBODY = 0x00b1
532
+ LXB_TAG_TD = 0x00b2
533
+ LXB_TAG_TEMPLATE = 0x00b3
534
+ LXB_TAG_TEXTAREA = 0x00b4
535
+ LXB_TAG_TEXTPATH = 0x00b5
536
+ LXB_TAG_TFOOT = 0x00b6
537
+ LXB_TAG_TH = 0x00b7
538
+ LXB_TAG_THEAD = 0x00b8
539
+ LXB_TAG_TIME = 0x00b9
540
+ LXB_TAG_TITLE = 0x00ba
541
+ LXB_TAG_TR = 0x00bb
542
+ LXB_TAG_TRACK = 0x00bc
543
+ LXB_TAG_TT = 0x00bd
544
+ LXB_TAG_U = 0x00be
545
+ LXB_TAG_UL = 0x00bf
546
+ LXB_TAG_VAR = 0x00c0
547
+ LXB_TAG_VIDEO = 0x00c1
548
+ LXB_TAG_WBR = 0x00c2
549
+ LXB_TAG_XMP = 0x00c3
550
+ LXB_TAG__LAST_ENTRY = 0x00c4
551
+
552
+
553
+ cdef extern from "lexbor/selectors/selectors.h" nogil:
554
+ ctypedef struct lxb_css_selectors_t
555
+
556
+ ctypedef struct lxb_selectors_t
557
+ ctypedef struct lxb_css_selector_list_t
558
+ ctypedef struct lxb_css_selector_specificity_t
559
+ ctypedef lxb_status_t (*lxb_selectors_cb_f)(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx)
560
+ ctypedef enum lxb_selectors_opt_t:
561
+ LXB_SELECTORS_OPT_DEFAULT = 0x00
562
+ LXB_SELECTORS_OPT_MATCH_ROOT = 1 << 1
563
+ LXB_SELECTORS_OPT_MATCH_FIRST = 1 << 2
564
+
565
+ void lxb_selectors_opt_set(lxb_selectors_t *selectors, lxb_selectors_opt_t opt)
566
+ lxb_css_selectors_t * lxb_css_selectors_create()
567
+ lxb_status_t lxb_css_selectors_init(lxb_css_selectors_t *selectors)
568
+ void lxb_css_parser_selectors_set(lxb_css_parser_t *parser, lxb_css_selectors_t *selectors)
569
+ lxb_css_selector_list_t * lxb_css_selectors_parse(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
570
+ lxb_css_selectors_t * lxb_css_selectors_destroy(lxb_css_selectors_t *selectors, bint self_destroy)
571
+
572
+ lxb_selectors_t * lxb_selectors_create()
573
+ lxb_status_t lxb_selectors_init(lxb_selectors_t *selectors)
574
+ lxb_selectors_t * lxb_selectors_destroy(lxb_selectors_t *selectors, bint self_destroy)
575
+ lxb_status_t lxb_selectors_find(lxb_selectors_t *selectors, lxb_dom_node_t *root,
576
+ lxb_css_selector_list_t *list, lxb_selectors_cb_f cb, void *ctx)