- #!/usr/bin/perl
- if ($prefix) {
- $prefix = $prefix . '-';
- }
- close TESTXDY;
- $fn = "test.xdy";
- ! -f $fn && -f "$INC[0]/$fn" and $fn = "$INC[0]/$fn";
- $begin = 128;
- # $begin = 97 if ($script eq "cyrillic");
- # $begin = 150 if ($script eq "latin");
- # $begin = 65 if ($script eq "greek");
- if (!$begin) {
- $begin = 65;
- }
- for ($i = 0; $i < @{$alphabet}; $i++) {
- $letter = $alphabet->[$i][0];
- $lout = $letter;
- $lout =~ s/\~/~~/g;
- $lout =~ s/\"/~\"/g;
- $token =~ s/\~/~~/g;
- $token =~ s/\"/~\"/g;
- if ($after ne $lout) {
- } else {
- }
- $after = $lout;
- }
- }
- $ref = \$i;
- $offset = $begin;
- $f = 1;
- make_tokens();
- # print test raw file
- # alphabet
- $p = 1;
- $p++;
- }
- # end
- process_ligatures();
- print_tokens($prefix . "alphabetize");
- $ref = \$j;
- $offset = 161;
- $f = 1;
- make_tokens();
- for ($i = 0; $i < @{$ligatures}; $i++) {
- if ($ligatures->[$i][1] eq "before") {
- } else {
- }
- foreach $ligature_variant (@{$ligatures->[$i][0]}) {
- $tokens{$ligature_variant} = $token;
- }
- }
- print_tokens($prefix . "resolve-diacritics");
- $ref = \$k;
- $offset = 48;
- $f = 1;
- if ($sortcase eq "Aa") {
- $offset = 57;
- $f = -1;
- }
- make_tokens();
- process_ligatures();
- print_tokens($prefix . "resolve-case");
- foreach $character (@special) {
- $tokens{$character} = "" unless ($character eq "letters");
- }
- print_tokens($prefix . "ignore-special");
- $offset = 161;
- $f = 1;
- for ($l = 0; $l < @special; $l++) {
- if (@special[$l] eq "letters") {
- $ref = \$l;
- make_tokens();
- process_ligatures();
- } else {
- $tokens{@special[$l]} = $token;
- }
- }
- print_tokens($prefix . "resolve-special");
- # print doc:
- # alphabet
- for ($i = 0; $i < @{$alphabet}; $i++) {
- for ($j = 1; $j < @{$alphabet->[$i]}; $j++) {
- }
- if ((@l)) {
- }
- # push @m, "`".$alphabet->[$i][0]."':\\>".join(" -- ", (@l));
- @l = ();
- }
- # ligatures
- for ($i = 0; $i < @{$ligatures}; $i++) {
- for ($j = 0; $j < @{$ligatures->[$i][0]}; $j++) {
- "', but \\emph{$ligatures->[$i][1]} it in otherwise equal words.";
- }
- }
- # case
- if ($sortcase eq "Aa") {
- } else {
- }
- # special
- # end
- # print test raw file
- # for ($i = 0; $i < @{$alphabet}; $i++) {
- # for ($j = 1; $j < @{$alphabet->[$i]}; $j++) {
- # foreach $letter (@{$alphabet->[$i][$j]}) {
- # print TEST "(indexentry :key (\"$letter\") :locref \"$p\")\n";
- # $p++;
- # }
- # }
- # }
- # ligatures
- for ($i = 0; $i < @{$ligatures}; $i++) {
- for ($j = 0; $j < @{$ligatures->[$i][0]}; $j++) {
- print TEST
- "(indexentry :key (\"$ligatures->[$i][0][$j]\") :locref \"$p\")\n";
- $p++;
- $p++;
- }
- }
- # special
- foreach $letter (@special) {
- if ($letter ne "letters") {
- $p++;
- }
- }
- # end
- sub make_tokens {
- for ($i = 0; $i < @{$alphabet}; $i++) {
- for ($j = 1; $j < @{$alphabet->[$i]}; $j++) {
- for ($k = 0; $k < @{$alphabet->[$i][$j]}; $k++) {
- if ($alphabet->[$i][$j][$k]) {
- $tokens{$alphabet->[$i][$j][$k]} = $token;
- }
- }
- }
- }
- }
- sub process_ligatures {
- for ($i = 0; $i < @{$ligatures}; $i++) {
- for ($j = 0; $j < @{$ligatures->[$i][0]}; $j++) {
- $token = "";
- foreach $ligature_component (@{$ligatures->[$i][2][$j]}) {
- $token = $token.$tokens{$ligature_component};
- }
- $tokens{$ligatures->[$i][0][$j]} = $token;
- }
- }
- }
- sub print_tokens {
- $lout = $letter;
- $lout =~ s/\~/~~/g;
- $lout =~ s/\"/~\"/g;
- $tout = $tokens{$letter};
- $tout =~ s/\~/~~/g;
- $tout =~ s/\"/~\"/g;
- }
- %tokens = ();
- }
Raw Paste