| 6124 |
INSCOPE: for (reverse 0..$#{$self->{open_elements}}) { |
INSCOPE: for (reverse 0..$#{$self->{open_elements}}) { |
| 6125 |
my $node = $self->{open_elements}->[$_]; |
my $node = $self->{open_elements}->[$_]; |
| 6126 |
if ($node->[1] eq $token->{tag_name}) { |
if ($node->[1] eq $token->{tag_name}) { |
|
## generate implied end tags |
|
|
while ({ |
|
|
dd => 1, dt => 1, li => 1, p => 0, |
|
|
}->{$self->{open_elements}->[-1]->[1]}) { |
|
|
!!!cp ('t409.1'); |
|
|
pop @{$self->{open_elements}}; |
|
|
} |
|
|
|
|
| 6127 |
!!!cp ('t410.1'); |
!!!cp ('t410.1'); |
| 6128 |
$i = $_; |
$i = $_; |
| 6129 |
last INSCOPE; |
last INSCOPE; |
| 6135 |
last INSCOPE; |
last INSCOPE; |
| 6136 |
} |
} |
| 6137 |
} # INSCOPE |
} # INSCOPE |
| 6138 |
|
|
| 6139 |
if ($self->{open_elements}->[-1]->[1] ne $token->{tag_name}) { |
if (defined $i) { |
| 6140 |
if (defined $i) { |
if ($self->{open_elements}->[-1]->[1] ne $token->{tag_name}) { |
| 6141 |
!!!cp ('t412.1'); |
!!!cp ('t412.1'); |
| 6142 |
!!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]); |
!!!parse-error (type => 'not closed:'.$self->{open_elements}->[-1]->[1]); |
| 6143 |
} else { |
} else { |
| 6144 |
!!!cp ('t413.1'); |
!!!cp ('t414.1'); |
|
!!!parse-error (type => 'unmatched end tag:'.$token->{tag_name}); |
|
| 6145 |
} |
} |
| 6146 |
} |
|
|
|
|
|
if (defined $i) { |
|
|
!!!cp ('t414.1'); |
|
| 6147 |
splice @{$self->{open_elements}}, $i; |
splice @{$self->{open_elements}}, $i; |
| 6148 |
} else { |
} else { |
| 6149 |
|
!!!cp ('t413.1'); |
| 6150 |
|
!!!parse-error (type => 'unmatched end tag:'.$token->{tag_name}); |
| 6151 |
|
|
| 6152 |
!!!cp ('t415.1'); |
!!!cp ('t415.1'); |
| 6153 |
## As if <p>, then reprocess the current token |
## As if <p>, then reprocess the current token |
| 6154 |
my $el; |
my $el; |
| 6155 |
!!!create-element ($el, 'p'); |
!!!create-element ($el, 'p'); |
| 6156 |
$insert->($el); |
$insert->($el); |
| 6157 |
|
## NOTE: Not inserted into |$self->{open_elements}|. |
| 6158 |
} |
} |
| 6159 |
|
|
| 6160 |
!!!next-token; |
!!!next-token; |
| 6161 |
redo B; |
redo B; |
| 6162 |
} elsif ({ |
} elsif ({ |