sub new {
my $class = shift;
-
+
my %args = @_;
my ($path, $indent, $keep) = @args{qw<path indent keep>};
die "Path $path already exists" if -e $path;
File::Path::mkpath($path);
-
+
bless {
path => $path,
indent => $indent || 0,
my %patched_chunks;
my %expected_chunks = (
- 'regcomp.c' => [ qw<re_defs COMP_BEGIN_HOOK>, ('COMP_NODE_HOOK') x 3 ],
- 'regexec.c' => [ qw<re_defs EXEC_NODE_HOOK> ],
+ 'regcomp.c' => [
+ 're_defs',
+ 'COMP_NODE_HOOK',
+ 'COMP_BEGIN_HOOK',
+ ('COMP_NODE_HOOK') x 3,
+ ],
+ 'regexec.c' => [
+ 're_defs',
+ 'EXEC_NODE_HOOK',
+ ],
);
sub patch_regcomp {
my $shift = $1 ? 2 : 1;
push @{$patched_chunks{$file}}, 'COMP_NODE_HOOK';
return $line, " REH_CALL_COMP_NODE_HOOK(pRExC_state->rx, ($2) - $shift);\n"
+ } elsif ($line =~ /end node insert/) {
+ push @{$patched_chunks{$file}}, 'COMP_NODE_HOOK';
+ return $line, " REH_CALL_COMP_NODE_HOOK(pRExC_state->rx, convert);\n";
}
return $line;
print $out sort @manifest_files, @source_files;
print "done\n";
-}
+}