selectolax 0.4.0__cp314-cp314t-musllinux_1_2_x86_64.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,584 @@
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
+ ctypedef struct lxb_html_element_t
219
+
220
+ # Functions
221
+ lxb_html_document_t * lxb_html_document_create()
222
+ lxb_status_t lxb_html_document_parse(lxb_html_document_t *document, const lxb_char_t *html, size_t size)
223
+ lxb_html_body_element_t * lxb_html_document_body_element_noi(lxb_html_document_t *document)
224
+ lxb_html_head_element_t * lxb_html_document_head_element_noi(lxb_html_document_t *document)
225
+ lxb_dom_element_t * lxb_dom_document_element(lxb_dom_document_t *document)
226
+
227
+ lxb_status_t lxb_html_serialize_tree_str(lxb_dom_node_t *node, lexbor_str_t *str)
228
+ lxb_status_t lxb_html_serialize_deep_str(lxb_dom_node_t *node, lexbor_str_t *str)
229
+ lxb_html_element_t* lxb_html_element_inner_html_set(lxb_html_element_t *element,
230
+ const lxb_char_t *html, size_t size)
231
+
232
+ cdef class LexborNode:
233
+ cdef:
234
+ lxb_dom_node_t *node
235
+ public LexborHTMLParser parser
236
+
237
+ @staticmethod
238
+ cdef LexborNode new(lxb_dom_node_t *node, LexborHTMLParser parser)
239
+
240
+
241
+ cdef class LexborCSSSelector:
242
+ cdef lxb_css_parser_t* parser
243
+ cdef lxb_selectors_t * selectors
244
+ cdef lxb_css_selectors_t * css_selectors
245
+ cdef public list results
246
+ cdef public LexborNode current_node
247
+ cdef int _create_css_parser(self) except -1
248
+ cpdef list find(self, str query, LexborNode node)
249
+ cpdef list find_first(self, str query, LexborNode node)
250
+ cpdef list _find(self, str query, LexborNode node, bint only_first)
251
+ cpdef int any_matches(self, str query, LexborNode node) except -1
252
+
253
+ cdef class LexborHTMLParser:
254
+ cdef lxb_html_document_t *document
255
+ cdef public bytes raw_html
256
+ cdef LexborCSSSelector _selector
257
+ cdef int _parse_html(self, char* html, size_t html_len) except -1
258
+ cdef object cached_script_texts
259
+ cdef object cached_script_srcs
260
+
261
+ @staticmethod
262
+ cdef LexborHTMLParser from_document(lxb_html_document_t * document, bytes raw_html)
263
+
264
+
265
+ cdef extern from "lexbor/dom/dom.h" nogil:
266
+ ctypedef enum lexbor_action_t:
267
+ LEXBOR_ACTION_OK = 0x00
268
+ LEXBOR_ACTION_STOP = 0x01
269
+ LEXBOR_ACTION_NEXT = 0x02
270
+
271
+ ctypedef lexbor_action_t (*lxb_dom_node_simple_walker_f)(lxb_dom_node_t *node, void *ctx)
272
+
273
+ ctypedef struct lxb_dom_character_data_t:
274
+ lxb_dom_node_t node
275
+ lexbor_str_t data
276
+
277
+ ctypedef struct lxb_dom_text_t:
278
+ lxb_dom_character_data_t char_data
279
+
280
+ ctypedef uintptr_t lxb_dom_attr_id_t
281
+ ctypedef struct lxb_dom_collection_t:
282
+ lexbor_array_t array
283
+ lxb_dom_document_t *document
284
+
285
+ ctypedef struct lxb_dom_attr_t:
286
+ lxb_dom_node_t node
287
+
288
+ lxb_dom_attr_id_t upper_name
289
+ lxb_dom_attr_id_t qualified_name
290
+
291
+ lexbor_str_t *value
292
+
293
+ lxb_dom_element_t *owner
294
+
295
+ lxb_dom_attr_t *next
296
+ lxb_dom_attr_t *prev
297
+
298
+ lxb_dom_collection_t * lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
299
+ lxb_char_t * lxb_dom_node_text_content(lxb_dom_node_t *node, size_t *len)
300
+ lxb_status_t lxb_dom_node_text_content_set(lxb_dom_node_t *node, const lxb_char_t *content, size_t len)
301
+ void lxb_dom_node_remove(lxb_dom_node_t *node)
302
+ void * lxb_dom_document_destroy_text_noi(lxb_dom_document_t *document, lxb_char_t *text)
303
+ lxb_dom_node_t * lxb_dom_document_root(lxb_dom_document_t *document)
304
+ lxb_char_t * lxb_dom_element_qualified_name(lxb_dom_element_t *element, size_t *len)
305
+ lxb_dom_node_t * lxb_dom_node_destroy(lxb_dom_node_t *node)
306
+ lxb_dom_node_t * lxb_dom_node_destroy_deep(lxb_dom_node_t *root)
307
+ lxb_dom_attr_t * lxb_dom_element_first_attribute_noi(lxb_dom_element_t *element)
308
+
309
+ const lxb_char_t * lxb_dom_attr_local_name_noi(lxb_dom_attr_t *attr, size_t *len)
310
+ const lxb_char_t * lxb_dom_attr_value_noi(lxb_dom_attr_t *attr, size_t *len)
311
+
312
+ lxb_dom_attr_t * lxb_dom_element_set_attribute(lxb_dom_element_t *element,
313
+ const lxb_char_t *qualified_name, size_t qn_len,
314
+ const lxb_char_t *value, size_t value_len)
315
+ lxb_status_t lxb_dom_element_remove_attribute(lxb_dom_element_t *element,
316
+ const lxb_char_t *qualified_name, size_t qn_len)
317
+ lxb_dom_attr_t * lxb_dom_element_attr_by_name(lxb_dom_element_t *element,
318
+ const lxb_char_t *qualified_name, size_t length)
319
+ lxb_tag_id_t lxb_dom_node_tag_id_noi(lxb_dom_node_t *node)
320
+ lxb_dom_node_t * lxb_dom_document_import_node(lxb_dom_document_t *doc, lxb_dom_node_t *node, bint deep)
321
+ void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
322
+ lxb_status_t lxb_dom_node_replace_all(lxb_dom_node_t *parent, lxb_dom_node_t *node)
323
+ void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
324
+ void lxb_dom_node_insert_before(lxb_dom_node_t *to, lxb_dom_node_t *node)
325
+ void lxb_dom_node_insert_after(lxb_dom_node_t *to, lxb_dom_node_t *node)
326
+ lxb_dom_text_t * lxb_dom_document_create_text_node(lxb_dom_document_t *document, const lxb_char_t *data, size_t len)
327
+ void lxb_dom_node_simple_walk(lxb_dom_node_t *root, lxb_dom_node_simple_walker_f walker_cb, void *ctx)
328
+ lxb_dom_node_t* lxb_dom_node_clone(lxb_dom_node_t *node, bint deep)
329
+
330
+
331
+ cdef extern from "lexbor/dom/interfaces/element.h" nogil:
332
+ lxb_status_t lxb_dom_elements_by_tag_name(lxb_dom_element_t *root, lxb_dom_collection_t *collection,
333
+ const lxb_char_t *qualified_name, size_t len)
334
+
335
+
336
+ cdef extern from "lexbor/dom/interfaces/document.h" nogil:
337
+ lxb_html_document_t * lxb_html_document_destroy(lxb_html_document_t *document)
338
+
339
+
340
+ cdef extern from "lexbor/dom/collection.h" nogil:
341
+ size_t lxb_dom_collection_length_noi(lxb_dom_collection_t *col)
342
+
343
+ lxb_dom_element_t * lxb_dom_collection_element_noi(lxb_dom_collection_t *col, size_t idx)
344
+ lxb_dom_collection_t * lxb_dom_collection_destroy(lxb_dom_collection_t *col, bint self_destroy)
345
+
346
+
347
+ cdef extern from "lexbor/css/css.h" nogil:
348
+ ctypedef struct lxb_css_parser_t:
349
+ lxb_css_memory_t* memory
350
+ ctypedef struct lxb_css_syntax_tokenizer_t
351
+ ctypedef struct lxb_css_memory_t
352
+
353
+ lxb_css_parser_t * lxb_css_parser_create()
354
+ lxb_status_t lxb_css_parser_init(lxb_css_parser_t *parser, lxb_css_syntax_tokenizer_t *tkz)
355
+ lxb_css_parser_t * lxb_css_parser_destroy(lxb_css_parser_t *parser, bint self_destroy)
356
+ lxb_css_memory_t * lxb_css_memory_destroy(lxb_css_memory_t *memory, bint self_destroy)
357
+ void lxb_css_selector_list_destroy_memory(lxb_css_selector_list_t *list)
358
+
359
+
360
+ cdef extern from "lexbor/tag/tag.h" nogil:
361
+ ctypedef enum lxb_tag_id_enum_t:
362
+ LXB_TAG__UNDEF = 0x0000
363
+ LXB_TAG__END_OF_FILE = 0x0001
364
+ LXB_TAG__TEXT = 0x0002
365
+ LXB_TAG__DOCUMENT = 0x0003
366
+ LXB_TAG__EM_COMMENT = 0x0004
367
+ LXB_TAG__EM_DOCTYPE = 0x0005
368
+ LXB_TAG_A = 0x0006
369
+ LXB_TAG_ABBR = 0x0007
370
+ LXB_TAG_ACRONYM = 0x0008
371
+ LXB_TAG_ADDRESS = 0x0009
372
+ LXB_TAG_ALTGLYPH = 0x000a
373
+ LXB_TAG_ALTGLYPHDEF = 0x000b
374
+ LXB_TAG_ALTGLYPHITEM = 0x000c
375
+ LXB_TAG_ANIMATECOLOR = 0x000d
376
+ LXB_TAG_ANIMATEMOTION = 0x000e
377
+ LXB_TAG_ANIMATETRANSFORM = 0x000f
378
+ LXB_TAG_ANNOTATION_XML = 0x0010
379
+ LXB_TAG_APPLET = 0x0011
380
+ LXB_TAG_AREA = 0x0012
381
+ LXB_TAG_ARTICLE = 0x0013
382
+ LXB_TAG_ASIDE = 0x0014
383
+ LXB_TAG_AUDIO = 0x0015
384
+ LXB_TAG_B = 0x0016
385
+ LXB_TAG_BASE = 0x0017
386
+ LXB_TAG_BASEFONT = 0x0018
387
+ LXB_TAG_BDI = 0x0019
388
+ LXB_TAG_BDO = 0x001a
389
+ LXB_TAG_BGSOUND = 0x001b
390
+ LXB_TAG_BIG = 0x001c
391
+ LXB_TAG_BLINK = 0x001d
392
+ LXB_TAG_BLOCKQUOTE = 0x001e
393
+ LXB_TAG_BODY = 0x001f
394
+ LXB_TAG_BR = 0x0020
395
+ LXB_TAG_BUTTON = 0x0021
396
+ LXB_TAG_CANVAS = 0x0022
397
+ LXB_TAG_CAPTION = 0x0023
398
+ LXB_TAG_CENTER = 0x0024
399
+ LXB_TAG_CITE = 0x0025
400
+ LXB_TAG_CLIPPATH = 0x0026
401
+ LXB_TAG_CODE = 0x0027
402
+ LXB_TAG_COL = 0x0028
403
+ LXB_TAG_COLGROUP = 0x0029
404
+ LXB_TAG_DATA = 0x002a
405
+ LXB_TAG_DATALIST = 0x002b
406
+ LXB_TAG_DD = 0x002c
407
+ LXB_TAG_DEL = 0x002d
408
+ LXB_TAG_DESC = 0x002e
409
+ LXB_TAG_DETAILS = 0x002f
410
+ LXB_TAG_DFN = 0x0030
411
+ LXB_TAG_DIALOG = 0x0031
412
+ LXB_TAG_DIR = 0x0032
413
+ LXB_TAG_DIV = 0x0033
414
+ LXB_TAG_DL = 0x0034
415
+ LXB_TAG_DT = 0x0035
416
+ LXB_TAG_EM = 0x0036
417
+ LXB_TAG_EMBED = 0x0037
418
+ LXB_TAG_FEBLEND = 0x0038
419
+ LXB_TAG_FECOLORMATRIX = 0x0039
420
+ LXB_TAG_FECOMPONENTTRANSFER = 0x003a
421
+ LXB_TAG_FECOMPOSITE = 0x003b
422
+ LXB_TAG_FECONVOLVEMATRIX = 0x003c
423
+ LXB_TAG_FEDIFFUSELIGHTING = 0x003d
424
+ LXB_TAG_FEDISPLACEMENTMAP = 0x003e
425
+ LXB_TAG_FEDISTANTLIGHT = 0x003f
426
+ LXB_TAG_FEDROPSHADOW = 0x0040
427
+ LXB_TAG_FEFLOOD = 0x0041
428
+ LXB_TAG_FEFUNCA = 0x0042
429
+ LXB_TAG_FEFUNCB = 0x0043
430
+ LXB_TAG_FEFUNCG = 0x0044
431
+ LXB_TAG_FEFUNCR = 0x0045
432
+ LXB_TAG_FEGAUSSIANBLUR = 0x0046
433
+ LXB_TAG_FEIMAGE = 0x0047
434
+ LXB_TAG_FEMERGE = 0x0048
435
+ LXB_TAG_FEMERGENODE = 0x0049
436
+ LXB_TAG_FEMORPHOLOGY = 0x004a
437
+ LXB_TAG_FEOFFSET = 0x004b
438
+ LXB_TAG_FEPOINTLIGHT = 0x004c
439
+ LXB_TAG_FESPECULARLIGHTING = 0x004d
440
+ LXB_TAG_FESPOTLIGHT = 0x004e
441
+ LXB_TAG_FETILE = 0x004f
442
+ LXB_TAG_FETURBULENCE = 0x0050
443
+ LXB_TAG_FIELDSET = 0x0051
444
+ LXB_TAG_FIGCAPTION = 0x0052
445
+ LXB_TAG_FIGURE = 0x0053
446
+ LXB_TAG_FONT = 0x0054
447
+ LXB_TAG_FOOTER = 0x0055
448
+ LXB_TAG_FOREIGNOBJECT = 0x0056
449
+ LXB_TAG_FORM = 0x0057
450
+ LXB_TAG_FRAME = 0x0058
451
+ LXB_TAG_FRAMESET = 0x0059
452
+ LXB_TAG_GLYPHREF = 0x005a
453
+ LXB_TAG_H1 = 0x005b
454
+ LXB_TAG_H2 = 0x005c
455
+ LXB_TAG_H3 = 0x005d
456
+ LXB_TAG_H4 = 0x005e
457
+ LXB_TAG_H5 = 0x005f
458
+ LXB_TAG_H6 = 0x0060
459
+ LXB_TAG_HEAD = 0x0061
460
+ LXB_TAG_HEADER = 0x0062
461
+ LXB_TAG_HGROUP = 0x0063
462
+ LXB_TAG_HR = 0x0064
463
+ LXB_TAG_HTML = 0x0065
464
+ LXB_TAG_I = 0x0066
465
+ LXB_TAG_IFRAME = 0x0067
466
+ LXB_TAG_IMAGE = 0x0068
467
+ LXB_TAG_IMG = 0x0069
468
+ LXB_TAG_INPUT = 0x006a
469
+ LXB_TAG_INS = 0x006b
470
+ LXB_TAG_ISINDEX = 0x006c
471
+ LXB_TAG_KBD = 0x006d
472
+ LXB_TAG_KEYGEN = 0x006e
473
+ LXB_TAG_LABEL = 0x006f
474
+ LXB_TAG_LEGEND = 0x0070
475
+ LXB_TAG_LI = 0x0071
476
+ LXB_TAG_LINEARGRADIENT = 0x0072
477
+ LXB_TAG_LINK = 0x0073
478
+ LXB_TAG_LISTING = 0x0074
479
+ LXB_TAG_MAIN = 0x0075
480
+ LXB_TAG_MALIGNMARK = 0x0076
481
+ LXB_TAG_MAP = 0x0077
482
+ LXB_TAG_MARK = 0x0078
483
+ LXB_TAG_MARQUEE = 0x0079
484
+ LXB_TAG_MATH = 0x007a
485
+ LXB_TAG_MENU = 0x007b
486
+ LXB_TAG_META = 0x007c
487
+ LXB_TAG_METER = 0x007d
488
+ LXB_TAG_MFENCED = 0x007e
489
+ LXB_TAG_MGLYPH = 0x007f
490
+ LXB_TAG_MI = 0x0080
491
+ LXB_TAG_MN = 0x0081
492
+ LXB_TAG_MO = 0x0082
493
+ LXB_TAG_MS = 0x0083
494
+ LXB_TAG_MTEXT = 0x0084
495
+ LXB_TAG_MULTICOL = 0x0085
496
+ LXB_TAG_NAV = 0x0086
497
+ LXB_TAG_NEXTID = 0x0087
498
+ LXB_TAG_NOBR = 0x0088
499
+ LXB_TAG_NOEMBED = 0x0089
500
+ LXB_TAG_NOFRAMES = 0x008a
501
+ LXB_TAG_NOSCRIPT = 0x008b
502
+ LXB_TAG_OBJECT = 0x008c
503
+ LXB_TAG_OL = 0x008d
504
+ LXB_TAG_OPTGROUP = 0x008e
505
+ LXB_TAG_OPTION = 0x008f
506
+ LXB_TAG_OUTPUT = 0x0090
507
+ LXB_TAG_P = 0x0091
508
+ LXB_TAG_PARAM = 0x0092
509
+ LXB_TAG_PATH = 0x0093
510
+ LXB_TAG_PICTURE = 0x0094
511
+ LXB_TAG_PLAINTEXT = 0x0095
512
+ LXB_TAG_PRE = 0x0096
513
+ LXB_TAG_PROGRESS = 0x0097
514
+ LXB_TAG_Q = 0x0098
515
+ LXB_TAG_RADIALGRADIENT = 0x0099
516
+ LXB_TAG_RB = 0x009a
517
+ LXB_TAG_RP = 0x009b
518
+ LXB_TAG_RT = 0x009c
519
+ LXB_TAG_RTC = 0x009d
520
+ LXB_TAG_RUBY = 0x009e
521
+ LXB_TAG_S = 0x009f
522
+ LXB_TAG_SAMP = 0x00a0
523
+ LXB_TAG_SCRIPT = 0x00a1
524
+ LXB_TAG_SECTION = 0x00a2
525
+ LXB_TAG_SELECT = 0x00a3
526
+ LXB_TAG_SLOT = 0x00a4
527
+ LXB_TAG_SMALL = 0x00a5
528
+ LXB_TAG_SOURCE = 0x00a6
529
+ LXB_TAG_SPACER = 0x00a7
530
+ LXB_TAG_SPAN = 0x00a8
531
+ LXB_TAG_STRIKE = 0x00a9
532
+ LXB_TAG_STRONG = 0x00aa
533
+ LXB_TAG_STYLE = 0x00ab
534
+ LXB_TAG_SUB = 0x00ac
535
+ LXB_TAG_SUMMARY = 0x00ad
536
+ LXB_TAG_SUP = 0x00ae
537
+ LXB_TAG_SVG = 0x00af
538
+ LXB_TAG_TABLE = 0x00b0
539
+ LXB_TAG_TBODY = 0x00b1
540
+ LXB_TAG_TD = 0x00b2
541
+ LXB_TAG_TEMPLATE = 0x00b3
542
+ LXB_TAG_TEXTAREA = 0x00b4
543
+ LXB_TAG_TEXTPATH = 0x00b5
544
+ LXB_TAG_TFOOT = 0x00b6
545
+ LXB_TAG_TH = 0x00b7
546
+ LXB_TAG_THEAD = 0x00b8
547
+ LXB_TAG_TIME = 0x00b9
548
+ LXB_TAG_TITLE = 0x00ba
549
+ LXB_TAG_TR = 0x00bb
550
+ LXB_TAG_TRACK = 0x00bc
551
+ LXB_TAG_TT = 0x00bd
552
+ LXB_TAG_U = 0x00be
553
+ LXB_TAG_UL = 0x00bf
554
+ LXB_TAG_VAR = 0x00c0
555
+ LXB_TAG_VIDEO = 0x00c1
556
+ LXB_TAG_WBR = 0x00c2
557
+ LXB_TAG_XMP = 0x00c3
558
+ LXB_TAG__LAST_ENTRY = 0x00c4
559
+
560
+
561
+ cdef extern from "lexbor/selectors/selectors.h" nogil:
562
+ ctypedef struct lxb_css_selectors_t
563
+
564
+ ctypedef struct lxb_selectors_t
565
+ ctypedef struct lxb_css_selector_list_t
566
+ ctypedef struct lxb_css_selector_specificity_t
567
+ ctypedef lxb_status_t (*lxb_selectors_cb_f)(lxb_dom_node_t *node, lxb_css_selector_specificity_t *spec, void *ctx)
568
+ ctypedef enum lxb_selectors_opt_t:
569
+ LXB_SELECTORS_OPT_DEFAULT = 0x00
570
+ LXB_SELECTORS_OPT_MATCH_ROOT = 1 << 1
571
+ LXB_SELECTORS_OPT_MATCH_FIRST = 1 << 2
572
+
573
+ void lxb_selectors_opt_set(lxb_selectors_t *selectors, lxb_selectors_opt_t opt)
574
+ lxb_css_selectors_t * lxb_css_selectors_create()
575
+ lxb_status_t lxb_css_selectors_init(lxb_css_selectors_t *selectors)
576
+ void lxb_css_parser_selectors_set(lxb_css_parser_t *parser, lxb_css_selectors_t *selectors)
577
+ lxb_css_selector_list_t * lxb_css_selectors_parse(lxb_css_parser_t *parser, const lxb_char_t *data, size_t length)
578
+ lxb_css_selectors_t * lxb_css_selectors_destroy(lxb_css_selectors_t *selectors, bint self_destroy)
579
+
580
+ lxb_selectors_t * lxb_selectors_create()
581
+ lxb_status_t lxb_selectors_init(lxb_selectors_t *selectors)
582
+ lxb_selectors_t * lxb_selectors_destroy(lxb_selectors_t *selectors, bint self_destroy)
583
+ lxb_status_t lxb_selectors_find(lxb_selectors_t *selectors, lxb_dom_node_t *root,
584
+ lxb_css_selector_list_t *list, lxb_selectors_cb_f cb, void *ctx)