From 0b4b48ab6703e06e852a1f8bbb2346c6158a2f68 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 8 Sep 2015 18:12:28 +0200 Subject: [PATCH 1/2] Bump string_cache to 0.1.12 --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7c62f46e..7f41c066 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,8 +22,8 @@ unstable = ["html5ever_macros", "tendril/unstable", "string_cache/unstable", "st time = "0" log = "0" phf = "0.7" -string_cache = "0.1.8" -string_cache_plugin = { version = "0.1.5", optional = true } +string_cache = "0.1.12" +string_cache_plugin = { version = "0.1.7", optional = true } mac = "0" tendril = "0.1.3" rc = "0.1.1" From 6345b1f38a6de8e3915b16fef72ae993dc832488 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 8 Sep 2015 18:44:25 +0200 Subject: [PATCH 2/2] Implement and parsing rules (closes #157) https://github.com/whatwg/html/pull/101 --- data/test/ignore | 14 -------------- src/tree_builder/rules.expanded.rs | 22 +++++++++++++++++++--- src/tree_builder/rules.rs | 13 ++++++++++++- src/tree_builder/tag_sets.rs | 2 +- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/data/test/ignore b/data/test/ignore index 60dd1e87..7d61a75e 100644 --- a/data/test/ignore +++ b/data/test/ignore @@ -1,17 +1,3 @@ -tb: ruby.dat-0 -tb: ruby.dat-1 -tb: ruby.dat-10 -tb: ruby.dat-12 -tb: ruby.dat-13 -tb: ruby.dat-15 -tb: ruby.dat-17 -tb: ruby.dat-2 -tb: ruby.dat-20 -tb: ruby.dat-3 -tb: ruby.dat-5 -tb: ruby.dat-7 -tb: tests19.dat-18 -tb: tests19.dat-21 tb: tests20.dat-34 tb: tests20.dat-35 tb: tests20.dat-36 diff --git a/src/tree_builder/rules.expanded.rs b/src/tree_builder/rules.expanded.rs index 492281bd..b63ec0df 100644 --- a/src/tree_builder/rules.expanded.rs +++ b/src/tree_builder/rules.expanded.rs @@ -8,7 +8,7 @@ // except according to those terms. // This file is generated from rules.rs -// source SipHash: 6604065678599019684 +// source SipHash: 307317075343040988 # ! [ doc = @@ -1277,10 +1277,10 @@ impl TreeBuilderStep for super::TreeBuilder where } ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, - name: atom!(rp), .. }) | + name: atom!(rb), .. }) | ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, - name: atom!(rt), .. }) => { + name: atom!(rtc), .. }) => { if self.in_scope_named(default_scope, atom!(ruby)) { self.generate_implied_end(cursory_implied_end); } @@ -1290,6 +1290,22 @@ impl TreeBuilderStep for super::TreeBuilder where self.insert_element_for(tag); Done } + ::tree_builder::types::TagToken(tag@::tokenizer::Tag { + kind: ::tokenizer::StartTag, + name: atom!(rp), .. }) | + ::tree_builder::types::TagToken(tag@::tokenizer::Tag { + kind: ::tokenizer::StartTag, + name: atom!(rt), .. }) => { + if self.in_scope_named(default_scope, atom!(ruby)) { + self.generate_implied_end_except(atom!(rtc)); + } + if !self.current_node_named(atom!(rtc)) && + !self.current_node_named(atom!(ruby)) { + self.unexpected(&tag); + } + self.insert_element_for(tag); + Done + } ::tree_builder::types::TagToken(tag@::tokenizer::Tag { kind: ::tokenizer::StartTag, name: atom!(math), .. }) => diff --git a/src/tree_builder/rules.rs b/src/tree_builder/rules.rs index e2a03558..2a6a0aca 100644 --- a/src/tree_builder/rules.rs +++ b/src/tree_builder/rules.rs @@ -723,7 +723,7 @@ impl TreeBuilderStep Done } - tag @ => { + tag @ => { if self.in_scope_named(default_scope, atom!(ruby)) { self.generate_implied_end(cursory_implied_end); } @@ -734,6 +734,17 @@ impl TreeBuilderStep Done } + tag @ => { + if self.in_scope_named(default_scope, atom!(ruby)) { + self.generate_implied_end_except(atom!(rtc)); + } + if !self.current_node_named(atom!(rtc)) && !self.current_node_named(atom!(ruby)) { + self.unexpected(&tag); + } + self.insert_element_for(tag); + Done + } + tag @ => self.enter_foreign(tag, ns!(MathML)), tag @ => self.enter_foreign(tag, ns!(SVG)), diff --git a/src/tree_builder/tag_sets.rs b/src/tree_builder/tag_sets.rs index be0c5a40..17409c05 100644 --- a/src/tree_builder/tag_sets.rs +++ b/src/tree_builder/tag_sets.rs @@ -64,7 +64,7 @@ declare_tag_set!(pub table_body_context = tbody tfoot thead template html); declare_tag_set!(pub table_row_context = tr template html); declare_tag_set!(pub td_th = td th); -declare_tag_set!(pub cursory_implied_end = dd dt li option optgroup p rp rt); +declare_tag_set!(pub cursory_implied_end = dd dt li option optgroup p rb rp rt rtc); declare_tag_set!(pub thorough_implied_end = cursory_implied_end + caption colgroup tbody td tfoot th thead tr);