php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
after_frameset.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2020 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
8
9
10bool
12 lxb_html_token_t *token)
13{
14 switch (token->tag_id) {
16 lxb_dom_comment_t *comment;
17
18 comment = lxb_html_tree_insert_comment(tree, token, NULL);
19 if (comment == NULL) {
20 return lxb_html_tree_process_abort(tree);
21 }
22
23 break;
24 }
25
27 lxb_html_tree_parse_error(tree, token,
29 break;
30
31 case LXB_TAG_HTML:
32 if (token->type & LXB_HTML_TOKEN_TYPE_CLOSE) {
34
35 return true;
36 }
37
38 return lxb_html_tree_insertion_mode_in_body(tree, token);
39
41 return lxb_html_tree_insertion_mode_in_head(tree, token);
42
45 if (tree->status != LXB_STATUS_OK) {
46 return lxb_html_tree_process_abort(tree);
47 }
48
49 break;
50 }
51
52 case LXB_TAG__TEXT: {
53 size_t cur_len;
54 lexbor_str_t str;
55
56 tree->status = lxb_html_token_make_text(token, &str,
58 if (tree->status != LXB_STATUS_OK) {
59 return lxb_html_tree_process_abort(tree);
60 }
61
62 cur_len = str.length;
63
65
66 if (str.length != 0) {
68 &str,
69 NULL);
70 if (tree->status != LXB_STATUS_OK) {
71 return lxb_html_tree_process_abort(tree);
72 }
73 }
74
75 if (str.length == cur_len) {
76 return true;
77 }
78 }
79 /* fall through */
80
81 default:
83
84 break;
85 }
86
87 return true;
88}
bool lxb_html_tree_insertion_mode_after_frameset(lxb_html_tree_t *tree, lxb_html_token_t *token)
@ LXB_STATUS_OK
Definition base.h:49
struct lxb_dom_comment lxb_dom_comment_t
Definition interface.h:49
#define NULL
Definition gdcache.h:45
struct lxb_html_tree lxb_html_tree_t
Definition base.h:28
lxb_status_t lxb_html_token_make_text(lxb_html_token_t *token, lexbor_str_t *str, lexbor_mraw_t *mraw)
Definition token.c:91
@ LXB_HTML_TOKEN_TYPE_CLOSE
Definition token.h:27
@ LXB_HTML_RULES_ERROR_UNTO
Definition error.h:22
@ LXB_HTML_RULES_ERROR_DOTOAFFRMO
Definition error.h:90
LXB_API bool lxb_html_tree_insertion_mode_in_head(lxb_html_tree_t *tree, lxb_html_token_t *token)
Definition in_head.c:41
LXB_API bool lxb_html_tree_insertion_mode_after_after_frameset(lxb_html_tree_t *tree, lxb_html_token_t *token)
LXB_API bool lxb_html_tree_insertion_mode_in_body(lxb_html_tree_t *tree, lxb_html_token_t *token)
Definition in_body.c:1685
bool lxb_html_tree_process_abort(lxb_html_tree_t *tree)
Definition tree.c:224
lxb_dom_comment_t * lxb_html_tree_insert_comment(lxb_html_tree_t *tree, lxb_html_token_t *token, lxb_dom_node_t *pos)
Definition tree.c:790
lxb_status_t lxb_html_tree_stop_parsing(lxb_html_tree_t *tree)
Definition tree.c:216
lxb_status_t lxb_html_tree_insert_character_for_data(lxb_html_tree_t *tree, lexbor_str_t *str, lxb_dom_node_t **ret_node)
Definition tree.c:697
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
void lexbor_str_stay_only_whitespace(lexbor_str_t *target)
Definition str.c:266
size_t length
Definition str.h:48
lexbor_mraw_t * text
Definition document.h:54
lxb_dom_document_t dom_document
Definition document.h:58
lxb_html_token_type_t type
Definition token.h:49
lxb_tag_id_t tag_id
Definition token.h:48
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_TAG__EM_DOCTYPE
Definition const.h:29
@ LXB_TAG__END_OF_FILE
Definition const.h:25
@ LXB_TAG_HTML
Definition const.h:125
@ LXB_TAG__EM_COMMENT
Definition const.h:28
@ LXB_TAG_NOFRAMES
Definition const.h:162
@ LXB_TAG__TEXT
Definition const.h:26