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