#!/bin/perl
sub permute {
my($idx, $pat) = @_;
# print STDERR "permute ($idx)\n";
my(@words, @res, $res, $word, $nwords, $i);
@words = split("~", $idx);
$nwords = @words;
# print STDERR "permute words=(".@words.")\n";
$word = "\01";
$i = 0;
while ($i < $nwords) {
# print STDERR "permute while ($word)\n";
@words = (@words, $word);
if ($words[0] =~ /^($pat)$/i) {
print STDERR "skipping ($words[0])\n";
} else {
$res = join('~', @words);
$res =~ s/\01$//g;
$res =~ s/\01/~--~/g;
$res =~ s/[()]//g;
$res =~ s/~+$//g;
push(@res, $res);
}
$word = shift(@words);
$i++;
}
return @res;
}
while (<>) {
chomp();
print $_."\n";
if (/^([ ]*)title[ ]*=[ ]*([^ \n]+)/) {
$pfx = $1;
$idx = $2;
foreach $f (permute($idx, 'a|and|the|en|een|het')) {
$k = '';
if ($f =~ /^([a-z])/i) {
# print STDERR "in if: $k ($f)\n";
$h = $1;
$h =~ tr /[a-z]/[A-Z]/;
$k = $h;
}
# print STDERR "$k ($f)\n";
print $pfx."titlep".$k." = ".$f."\n";
}
}
if (/^([ ]*)artist[ ]*=[ ]*([^ \n]+)/) {
$pfx = $1;
$idx = $2;
foreach $f (permute($idx, '')) {
$k = '';
if ($f =~ /^([a-z])/i) {
$h = $1;
$h =~ tr /[a-z]/[A-Z]/;
$k = $h;
}
# print STDERR "$k ($f)\n";
print $pfx."artistp".$k." = ".$f."\n";
}
}
}
|