]> git.donarmstrong.com Git - deb_pkgs/scowl.git/blob - src/add-other-forms
fix numbering of variants to be 1 and 2 (closes: #867586)
[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   $d =~ tr/+//d;
10   next if $d; #
11   @a0 = split /  /, $a;
12   splice @a0, -1, 0, "'" if $p eq 'V' && @a0 >= 3; # insert placeholder
13   @a = ();
14   foreach (@a0) {
15     s/ {.+?}//g; s/ \(.+?\)//g; 
16     s/ \| / /g; s/ \/ / /g;
17     push @a, (split / /, $_);
18   }
19   @a = grep {!/^[@~!-]/} @a;  # remove questionable entries
20   # @a now conatins a list of valid inflected forms
21   @a0 = grep {$_ ne "'"} @a;
22   # @a0 is now the same as @a except for the placeholder entries
23   next unless @a0;
24   $words = join("\n",$w, @a0)."\n";
25   if ($p eq 'V' && @a >= 4) {
26     while ($a[0] ne "'") {local $_ = shift @a; $lookup{$_} .= $words}
27     shift @a;
28   }
29   push @a, "$w\'s" if $p eq 'N';
30   $words = join("\n",$w, @a)."\n";
31   foreach (@a) {$lookup{$_} .= $words}
32 }
33
34 open F, "working/possessive-also.lst";
35
36 while (<F>) {
37   chop;
38   $lookup{"$_\'s"} .= "$_\n";
39 }
40
41 while (<STDIN>) {
42   print;
43   chop;
44   print $lookup{$_};
45 }