lol_html/parser/state_machine/syntax/text/script_data/
mod.rs1#[macro_use]
2mod escaped;
3
4#[macro_use]
5mod double_escaped;
6
7define_state_group!(script_data_states_group = {
8
9 script_data_state {
10 memchr(b'<') => ( emit_text?; mark_tag_start; --> #[inline] script_data_less_than_sign_state )
11 eoc => ( emit_text?; )
12 eof => ( emit_text_and_eof?; )
13 }
14
15 script_data_less_than_sign_state {
16 b'/' => ( --> #[inline] script_data_end_tag_open_state )
17 b'!' => ( unmark_tag_start; --> script_data_escape_start_state )
18 eof => ( emit_text_and_eof?; )
19 _ => ( unmark_tag_start; emit_text?; reconsume in script_data_state )
20 }
21
22 script_data_end_tag_open_state {
23 alpha => ( create_end_tag; start_token_part; update_tag_name_hash; --> script_data_end_tag_name_state )
24 eof => ( emit_text_and_eof?; )
25 _ => ( unmark_tag_start; emit_text?; reconsume in script_data_state )
26 }
27
28 script_data_end_tag_name_state {
29 whitespace => (
30 if is_appropriate_end_tag
31 ( finish_tag_name?; --> before_attribute_name_state )
32 else
33 ( unmark_tag_start; emit_text?; reconsume in script_data_state )
34 )
35
36 b'/' => (
37 if is_appropriate_end_tag
38 ( finish_tag_name?; --> self_closing_start_tag_state )
39 else
40 ( unmark_tag_start; emit_text?; reconsume in script_data_state )
41 )
42
43 b'>' => (
44 if is_appropriate_end_tag
45 ( finish_tag_name?; emit_tag?; --> dyn next_text_parsing_state )
46 else
47 ( unmark_tag_start; emit_text?; reconsume in script_data_state )
48 )
49
50 alpha => ( update_tag_name_hash; )
51 eof => ( emit_text_and_eof?; )
52 _ => ( unmark_tag_start; emit_text?; reconsume in script_data_state )
53 }
54
55});