X-Git-Url: https://git.donarmstrong.com/?p=deb_pkgs%2Fscowl.git;a=blobdiff_plain;f=src%2Fadd-other-spellings;fp=src%2Fadd-other-spellings;h=7c4096db40ad294596fa03ba98df092f534620d0;hp=0000000000000000000000000000000000000000;hb=b13ea8a082364672c6de2b010e558211ff52ec9a;hpb=01534a94130c1f5a3a230cf4fe18365a235ba271 diff --git a/src/add-other-spellings b/src/add-other-spellings new file mode 100755 index 0000000..7c4096d --- /dev/null +++ b/src/add-other-spellings @@ -0,0 +1,76 @@ +#!/usr/bin/perl + +my $table = $ARGV[0] eq 'table' ? '1' : '0'; + +while() { + chop; + $words{$_} = ''; + $know_about{$_} = 1; +} + +sub valid_entry ( $ ){local $_ = $_[0]; /^[A-Za-z\']+$/ && exists $words{$_}} + +foreach my $f (qw(working/variant_1.lst working/variant_2.lst + working/variant_3.lst + working/british_variant_1.lst working/british_variant_2.lst + working/canadian_variant_1.lst working/canadian_variant_2.lst + working/american.lst + working/british.lst working/british_z.lst + working/canadian.lst)) +{ + open F, $f or die "Unable to open $f\n"; + while () { + chop; + $know_about{$_} = 1; + } +} + +if (not $table) { + open F, "r/varcon/voc.tab" or die; + + while () { + s/\(.+\)\n/\n/; + my ($word) = grep {valid_entry $_} (split /[,\t\n]/); + next unless defined $word; + y/,\t -/\n/; + s/(^|\n)\n/\n/g; + $words{$word} .= $_; + } +} + +open F, "r/varcon/variant.tab" or die; + +while () { + @w = grep {$know_about{$_}} (split /[\t\n]/); + next unless @w && grep {valid_entry $_} @w; + $words{$w[0]} .= "$_\n" foreach @w; +} + +open F, "r/varcon/variant-wroot.tab" or die; + +while () { + s/^(.+)\:\t// or die; + my $root = $1; + next unless exists $words{$root}; + @w = grep {$know_about{$_}} (split /[\t\n]/); + next unless @w && grep {valid_entry $_} @w; + $words{$w[0]} .= "$_\n" foreach @w; +} + +if ($table) { + + while (($key, $value) = each %words) { + next if $value eq ''; + my $row = "$key\n$value"; + chomp $row; + $row =~ tr/\n/\t/; + print "$row\n"; + } + +} else { + + while (($key, $value) = each %words) { + print "$key\n$value"; + } + +}