while (<F>) {
s/\r?\n$// or die;
- ($d,$w,$p,$a) = /^(\-?)(\w+) (.).*: ?(.*?)$/ or die;
- next if $d eq '-'; #
+ # (uncommon flag, base word, part of speach, inflected forms)
+ ($d,$w,$p,$a) = /^([-@\+]?)(\w+) (.).*: ?(.*?)$/ or die;
+ $d =~ tr/+//d;
+ next if $d; #
@a0 = split / /, $a;
- splice @a0, -1, 0, "'" if $p eq 'V' && @a0 >= 3;
+ splice @a0, -1, 0, "'" if $p eq 'V' && @a0 >= 3; # insert placeholder
@a = ();
foreach (@a0) {
s/ {.+?}//g; s/ \(.+?\)//g;
s/ \| / /g; s/ \/ / /g;
push @a, (split / /, $_);
}
- @a = grep {!/^[@~-]/} @a;
+ @a = grep {!/^[@~!-]/} @a; # remove questionable entries
+ # @a now conatins a list of valid inflected forms
@a0 = grep {$_ ne "'"} @a;
+ # @a0 is now the same as @a except for the placeholder entries
next unless @a0;
$words = join("\n",$w, @a0)."\n";
if ($p eq 'V' && @a >= 4) {
while ($a[0] ne "'") {local $_ = shift @a; $lookup{$_} .= $words}
shift @a;
}
+ push @a, "$w\'s" if $p eq 'N';
$words = join("\n",$w, @a)."\n";
foreach (@a) {$lookup{$_} .= $words}
}
-open F, "working/possessive.lst";
+open F, "working/possessive-also.lst";
while (<F>) {
chop;