php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
text.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2023 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
11
12
13bool
15 lxb_html_token_t *token)
16{
17 lxb_dom_node_t *node;
19
20 switch (token->tag_id) {
21 case LXB_TAG__TEXT: {
22 tree->status = lxb_html_tree_insert_character(tree, token, NULL);
23 if (tree->status != LXB_STATUS_OK) {
24 return lxb_html_tree_process_abort(tree);
25 }
26
27 break;
28 }
29
31 lxb_dom_node_t *node;
32
33 lxb_html_tree_parse_error(tree, token,
35
36 node = lxb_html_tree_current_node(tree);
37
39 /* TODO: mark the script element as "already started" */
40 }
41
43
44 tree->mode = tree->original_mode;
45
46 return false;
47 }
48
49 /* TODO: need to implement */
50 case LXB_TAG_SCRIPT:
52
53 tree->mode = tree->original_mode;
54
55 break;
56
57 case LXB_TAG_STYLE:
59
60 tree->mode = tree->original_mode;
61
62 if (!tree->document->css_init) {
63 break;
64 }
65
66 style = lxb_html_interface_style(node);
67
69 if (tree->status != LXB_STATUS_OK) {
70 return lxb_html_tree_process_abort(tree);
71 }
72
74 style->stylesheet);
75 if (tree->status != LXB_STATUS_OK) {
76 return lxb_html_tree_process_abort(tree);
77 }
78
79 break;
80
81 default:
83
84 tree->mode = tree->original_mode;
85
86 break;
87 }
88
89 return true;
90}
@ LXB_STATUS_OK
Definition base.h:49
struct lxb_dom_node lxb_dom_node_t
Definition interface.h:38
#define NULL
Definition gdcache.h:45
struct lxb_html_tree lxb_html_tree_t
Definition base.h:28
#define lxb_html_interface_style(obj)
Definition interface.h:77
struct lxb_html_style_element lxb_html_style_element_t
Definition interface.h:152
@ LXB_HTML_RULES_ERROR_UNENOFFI
Definition error.h:78
lxb_status_t lxb_html_document_stylesheet_add(lxb_html_document_t *document, lxb_css_stylesheet_t *sst)
Definition document.c:482
bool lxb_html_tree_insertion_mode_text(lxb_html_tree_t *tree, lxb_html_token_t *token)
Definition text.c:14
bool lxb_html_tree_process_abort(lxb_html_tree_t *tree)
Definition tree.c:224
lxb_status_t lxb_html_tree_insert_character(lxb_html_tree_t *tree, lxb_html_token_t *token, lxb_dom_node_t **ret_node)
Definition tree.c:669
void lxb_html_tree_parse_error(lxb_html_tree_t *tree, lxb_html_token_t *token, lxb_html_tree_error_id_t id)
Definition tree.c:237
lxb_inline lxb_dom_node_t * lxb_html_tree_open_elements_pop(lxb_html_tree_t *tree)
lxb_css_stylesheet_t * stylesheet
lxb_tag_id_t tag_id
Definition token.h:48
lxb_html_tree_insertion_mode_f original_mode
Definition tree.h:63
lxb_status_t status
Definition tree.h:66
lxb_html_tree_insertion_mode_f mode
Definition tree.h:62
lxb_html_document_t * document
Definition tree.h:42
lxb_status_t lxb_html_style_element_parse(lxb_html_style_element_t *element)
@ LXB_TAG__END_OF_FILE
Definition const.h:25
@ LXB_TAG_SCRIPT
Definition const.h:185
@ LXB_TAG_STYLE
Definition const.h:195
@ LXB_TAG__TEXT
Definition const.h:26
lxb_inline lxb_dom_node_t * lxb_html_tree_current_node(lxb_html_tree_t *tree)
Definition tree.h:286
lxb_inline bool lxb_html_tree_node_is(lxb_dom_node_t *node, lxb_tag_id_t tag_id)
Definition tree.h:280