]> git.donarmstrong.com Git - deb_pkgs/scowl.git/blob - src/add-other-forms
upgrade to scowl 7.1
[deb_pkgs/scowl.git] / src / add-other-forms
1 #!/usr/bin/perl
2
3 open F, "r/alt12dicts/2of12id.txt" or die;
4
5 while (<F>) {
6   s/\r?\n$// or die;
7   # (uncommon flag, base word, part of speach, inflected forms)
8   ($d,$w,$p,$a) = /^([-@]?)(\w+) (.).*: ?(.*?)$/ or die;
9   next if $d; #
10   @a0 = split /  /, $a;
11   splice @a0, -1, 0, "'" if $p eq 'V' && @a0 >= 3; # insert placeholder
12   @a = ();
13   foreach (@a0) {
14     s/ {.+?}//g; s/ \(.+?\)//g; 
15     s/ \| / /g; s/ \/ / /g;
16     push @a, (split / /, $_);
17   }
18   @a = grep {!/^[@~-]/} @a;  # remove questionable entries
19   # @a now conatins a list of valid inflected forms
20   @a0 = grep {$_ ne "'"} @a;
21   # @a0 is now the same as @a except for the placeholder entries
22   next unless @a0;
23   $words = join("\n",$w, @a0)."\n";
24   if ($p eq 'V' && @a >= 4) {
25     while ($a[0] ne "'") {local $_ = shift @a; $lookup{$_} .= $words}
26     shift @a;
27   }
28   push @a, "$w\'s" if $p eq 'N';
29   $words = join("\n",$w, @a)."\n";
30   foreach (@a) {$lookup{$_} .= $words}
31 }
32
33 open F, "working/possessive-also.lst";
34
35 while (<F>) {
36   chop;
37   $lookup{"$_\'s"} .= "$_\n";
38 }
39
40 while (<STDIN>) {
41   print;
42   chop;
43   print $lookup{$_};
44 }