substr($str, 0, $pos1) = '';
####
print $indent x $depth, substr( $str, 0, $pos1, '' );
####
my $_consume = sub {
print $indent x $_[2], substr $_[0], 0, $_[1], '';
}
sub pp {
return unless @_;
my($str) = @_;
my($length, $first) = f1($str);
if (!defined $first) {
$_consume->($str, $length, $depth);
} elsif ($first eq CONST1) {
####
$_consume->($str, $length + 1, --$depth);
} elsif (defined(my $newlen = f2($str, $first))) {
$_consume->($str, $newlen + 2, $depth);
} else {
$_consume->($str, $length, $depth++);
}
return $str;
}