///|
priv struct TagTailScan {
attrs : Map[String, String?]
self_closing : Bool
closed : Bool
}
///|
fn SourceTokenizer::parse_tag_tail(self : SourceTokenizer) -> TagTailScan {
let attrs : Map[String, String?] = Map([])
let mut self_closing = false
let mut closed = false
while !self.is_eof() {
self.skip_ascii_whitespace()
if self.is_eof() {
break
}
match self.current().unwrap() {
'>' => {
ignore(self.advance_char())
closed = true
break
}
'/' => {
ignore(self.advance_char())
if self.current() is Some('>') {
ignore(self.advance_char())
self_closing = true
closed = true
break
} else {
self.error_at("unexpected-character-after-solidus-in-tag", self.pos)
}
}
_ => self.parse_attribute(attrs)
}
}
{ attrs, self_closing, closed, }
}