Emit Code |
|
|
We desire to be within a HypertextMarkupLanguage
tag ($code) nested to a particular level ($depth).
We'll stack these codes in an array (@code) so that
we can match them as needed later. As a side-effect
$code is set non-empty as a contribution to the
logic in PrintBodyText.
sub EmitCode { ($code, $depth) = @_;If we've emitted codes to a depth deeper than desired, then end those outstanding codes. while (@code > $depth) {local($_) = pop @code; print "</$_>\n"}Likewise, if we've yet to emit codes that bring us up to the level we need, then emit the desired code until we get the depth we desire. while (@code < $depth) {push (@code, ($code)); print "<$code>\n"}Now, we're sure to be at the right depth but could still be under the wrong code. If so, end one and start another. if ($code[$#code] ne $code) {print "</$code[$#code]><$code>\n"; $code[$#code] = $code;} }
|
Last edited December 18, 1995 Return to WelcomeVisitors |