--- /Library/Perl/Parse/RecDescent.pm Fri Jan 19 19:02:51 2001
+++ RecDescent.pm Sun Feb 10 14:04:55 2002
@@ -1777,7 +1777,7 @@
my $COMMITMK = '\G\s*<commit>';
my $UNCOMMITMK = '\G\s*<uncommit>';
my $QUOTELIKEMK = '\G\s*<perl_quotelike>';
-my $CODEBLOCKMK = '\G\s*<perl_codeblock>';
+my $CODEBLOCKMK = '\G\s*<perl_codeblock(:.*?)?(?<!\\\\)>';
my $VARIABLEMK = '\G\s*<perl_variable>';
my $NOCHECKMK = '\G\s*<nocheck>';
my $AUTOTREEMK = '\G\s*<autotree>';
@@ -1943,11 +1943,22 @@
elsif ($grammar =~ m/$CODEBLOCKMK/gco)
{
_parse("an perl codeblock marker", $aftererror,$line);
+ my $delimiter = "undef";
+ my $directive;
+ if ($1) {
+ $directive = "<perl_codeblock$1>";
+ $delimiter = $1;
+ $delimiter =~ s/\A://;
+ $delimiter =~ s/((?<!\\).)/\\$1/g;
+ $delimiter = "\"" . $delimiter . "\"";
+ } else {
+ $directive = "<perl_codeblock>";
+ }
$item = new Parse::RecDescent::Directive(
- 'Text::Balanced::extract_codeblock($text,undef,$skip);
- ', $lookahead,$line,"<perl_codeblock>");
+ "Text::Balanced::extract_codeblock(\$text,$delimiter,\$skip);
+ ", $lookahead,$line,$directive);
$prod and $prod->additem($item)
- or _no_rule("<perl_codeblock>",$line);
+ or _no_rule($directive,$line);
}
elsif ($grammar =~ m/$VARIABLEMK/gco)
{
--- /Library/Perl/Filter/Simple.pm Fri Nov 23 20:48:49 2001
+++ Simple.pm Sun Feb 10 15:07:55 2002
@@ -111,6 +111,11 @@
map { ref $_ ? $;.pack('N',$count++).$; : $_ }
@pieces;
@pieces = grep { ref $_ } @pieces;
+ local *show = sub {
+ my $text = shift;
+ $text =~ s/$extractor/${$pieces[unpack('N',$1)]}/g;
+ return $text;
+ };
$transform->(@_);
s/$extractor/${$pieces[unpack('N',$1)]}/g;
}