1 /* 2 * Copyright (C) 2018 Alexander Borisov 3 * 4 * Author: Alexander Borisov <borisov@lexbor.com> 5 */ 6 7 #ifndef LEXBOR_HTML_TREE_INSERTION_MODE_H 8 #define LEXBOR_HTML_TREE_INSERTION_MODE_H 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 #include "lexbor/html/token.h" 15 #include "lexbor/html/tree.h" 16 17 18 LXB_API bool 19 lxb_html_tree_insertion_mode_initial(lxb_html_tree_t *tree, 20 lxb_html_token_t *token); 21 22 LXB_API bool 23 lxb_html_tree_insertion_mode_before_html(lxb_html_tree_t *tree, 24 lxb_html_token_t *token); 25 26 LXB_API bool 27 lxb_html_tree_insertion_mode_before_head(lxb_html_tree_t *tree, 28 lxb_html_token_t *token); 29 30 LXB_API bool 31 lxb_html_tree_insertion_mode_in_head(lxb_html_tree_t *tree, 32 lxb_html_token_t *token); 33 34 LXB_API bool 35 lxb_html_tree_insertion_mode_in_head_noscript(lxb_html_tree_t *tree, 36 lxb_html_token_t *token); 37 38 LXB_API bool 39 lxb_html_tree_insertion_mode_after_head(lxb_html_tree_t *tree, 40 lxb_html_token_t *token); 41 42 LXB_API bool 43 lxb_html_tree_insertion_mode_in_body(lxb_html_tree_t *tree, 44 lxb_html_token_t *token); 45 46 LXB_API bool 47 lxb_html_tree_insertion_mode_in_body_skip_new_line(lxb_html_tree_t *tree, 48 lxb_html_token_t *token); 49 50 LXB_API bool 51 lxb_html_tree_insertion_mode_in_body_skip_new_line_textarea(lxb_html_tree_t *tree, 52 lxb_html_token_t *token); 53 54 LXB_API lxb_status_t 55 lxb_html_tree_insertion_mode_in_body_text_append(lxb_html_tree_t *tree, 56 lexbor_str_t *str); 57 58 LXB_API bool 59 lxb_html_tree_insertion_mode_text(lxb_html_tree_t *tree, 60 lxb_html_token_t *token); 61 62 LXB_API bool 63 lxb_html_tree_insertion_mode_in_table(lxb_html_tree_t *tree, 64 lxb_html_token_t *token); 65 66 LXB_API bool 67 lxb_html_tree_insertion_mode_in_table_anything_else(lxb_html_tree_t *tree, 68 lxb_html_token_t *token); 69 70 LXB_API bool 71 lxb_html_tree_insertion_mode_in_table_text(lxb_html_tree_t *tree, 72 lxb_html_token_t *token); 73 74 LXB_API bool 75 lxb_html_tree_insertion_mode_in_caption(lxb_html_tree_t *tree, 76 lxb_html_token_t *token); 77 78 LXB_API bool 79 lxb_html_tree_insertion_mode_in_column_group(lxb_html_tree_t *tree, 80 lxb_html_token_t *token); 81 82 LXB_API bool 83 lxb_html_tree_insertion_mode_in_table_body(lxb_html_tree_t *tree, 84 lxb_html_token_t *token); 85 86 LXB_API bool 87 lxb_html_tree_insertion_mode_in_row(lxb_html_tree_t *tree, 88 lxb_html_token_t *token); 89 90 LXB_API bool 91 lxb_html_tree_insertion_mode_in_cell(lxb_html_tree_t *tree, 92 lxb_html_token_t *token); 93 94 LXB_API bool 95 lxb_html_tree_insertion_mode_in_select(lxb_html_tree_t *tree, 96 lxb_html_token_t *token); 97 98 LXB_API bool 99 lxb_html_tree_insertion_mode_in_select_in_table(lxb_html_tree_t *tree, 100 lxb_html_token_t *token); 101 102 LXB_API bool 103 lxb_html_tree_insertion_mode_in_template(lxb_html_tree_t *tree, 104 lxb_html_token_t *token); 105 106 LXB_API bool 107 lxb_html_tree_insertion_mode_after_body(lxb_html_tree_t *tree, 108 lxb_html_token_t *token); 109 110 LXB_API bool 111 lxb_html_tree_insertion_mode_in_frameset(lxb_html_tree_t *tree, 112 lxb_html_token_t *token); 113 114 LXB_API bool 115 lxb_html_tree_insertion_mode_after_frameset(lxb_html_tree_t *tree, 116 lxb_html_token_t *token); 117 118 LXB_API bool 119 lxb_html_tree_insertion_mode_after_after_body(lxb_html_tree_t *tree, 120 lxb_html_token_t *token); 121 122 LXB_API bool 123 lxb_html_tree_insertion_mode_after_after_frameset(lxb_html_tree_t *tree, 124 lxb_html_token_t *token); 125 126 LXB_API bool 127 lxb_html_tree_insertion_mode_foreign_content(lxb_html_tree_t *tree, 128 lxb_html_token_t *token); 129 130 131 #ifdef __cplusplus 132 } /* extern "C" */ 133 #endif 134 135 #endif /* LEXBOR_HTML_TREE_INSERTION_MODE_H */ 136