2167 |
!!!emit ($self->{ct}); # DOCTYPE (quirks) |
!!!emit ($self->{ct}); # DOCTYPE (quirks) |
2168 |
|
|
2169 |
redo A; |
redo A; |
2170 |
|
} elsif (0x0041 <= $self->{nc} and $self->{nc} <= 0x005A) { # A..Z |
2171 |
|
!!!cp (158.1); |
2172 |
|
$self->{ct}->{name} # DOCTYPE |
2173 |
|
= chr ($self->{nc} + ($self->{is_xml} ? 0 : 0x0020)); |
2174 |
|
delete $self->{ct}->{quirks}; |
2175 |
|
$self->{state} = DOCTYPE_NAME_STATE; |
2176 |
|
!!!next-input-character; |
2177 |
|
redo A; |
2178 |
} elsif ($self->{nc} == -1) { |
} elsif ($self->{nc} == -1) { |
2179 |
!!!cp (159); |
!!!cp (159); |
2180 |
!!!parse-error (type => 'no DOCTYPE name'); |
!!!parse-error (type => 'no DOCTYPE name'); |
2221 |
!!!emit ($self->{ct}); # DOCTYPE |
!!!emit ($self->{ct}); # DOCTYPE |
2222 |
|
|
2223 |
redo A; |
redo A; |
2224 |
|
} elsif (0x0041 <= $self->{nc} and $self->{nc} <= 0x005A) { # A..Z |
2225 |
|
!!!cp (162.1); |
2226 |
|
$self->{ct}->{name} # DOCTYPE |
2227 |
|
.= chr ($self->{nc} + ($self->{is_xml} ? 0 : 0x0020)); |
2228 |
|
delete $self->{ct}->{quirks}; |
2229 |
|
## Stay in the state. |
2230 |
|
!!!next-input-character; |
2231 |
|
redo A; |
2232 |
} elsif ($self->{nc} == -1) { |
} elsif ($self->{nc} == -1) { |
2233 |
!!!cp (163); |
!!!cp (163); |
2234 |
!!!parse-error (type => 'unclosed DOCTYPE'); |
!!!parse-error (type => 'unclosed DOCTYPE'); |
2250 |
redo A; |
redo A; |
2251 |
} else { |
} else { |
2252 |
!!!cp (164); |
!!!cp (164); |
2253 |
$self->{ct}->{name} |
$self->{ct}->{name} .= chr ($self->{nc}); # DOCTYPE |
2254 |
.= chr ($self->{nc}); # DOCTYPE |
## Stay in the state. |
|
## Stay in the state |
|
2255 |
!!!next-input-character; |
!!!next-input-character; |
2256 |
redo A; |
redo A; |
2257 |
} |
} |