Diff for /db/prgsrc/makecheck.pl between versions 1.1 and 1.2

version 1.1, 2001/10/31 03:00:10 version 1.2, 2001/10/31 03:07:27
Line 1 Line 1
 #!perl -w  #!/usr/bin/perl -w
   
 =head1 NAME  =head1 NAME
   
 makecheck.pl - скрипт для создания, функции, проверяющего слова  makecheck.pl - скрипт для создания, функции, проверяющего слова
 на предмет наличия в словаре.  на предмет наличия в словаре.
   
 =head1 SYNOPSIS  =head1 SYNOPSIS
   
 aff2pl.pl  aff2pl.pl
   
   
 =head1 BUGS  =head1 BUGS
   
 На самом деле используется упрощённый формат описания  На самом деле используется упрощённый формат описания 
 аффиксов. Существенны только строчки "prefix", "suffix"  аффиксов. Существенны только строчки "prefix", "suffix" 
 и строчки, в которых встречается знак ">". Причём  и строчки, в которых встречается знак ">". Причём 
 любая такая строка (кроме закомментированных)  любая такая строка (кроме закомментированных) 
 будет считаться строкой описания аффикса.  будет считаться строкой описания аффикса.
   
   
 =head1 AUTHOR  =head1 AUTHOR
   
 Роман Семизаров  Роман Семизаров
   
 =cut  =cut
   
   
   
 use locale;  use locale;
 use POSIX qw (locale_h);  use POSIX qw (locale_h);
 use chgkfiles;  use chgkfiles;
   
 do "common.pl";  do "common.pl";
   
 if ((uc 'а') ne 'А') {die "!Koi8-r locale not installed!\n"};  if ((uc 'а') ne 'А') {die "!Koi8-r locale not installed!\n"};
   
   
 input_files(RULES);  input_files(RULES);
   
 output_files(CHECK);  output_files(CHECK);
   
 myprint (CHECK, "#!perl\n\n");  myprint (CHECK, "#!perl\n\n");
   
 auto_message(CHECK, "makecheck.pl");  auto_message(CHECK, "makecheck.pl");
   
   
 myprint(CHECK, 'sub checkit {my $nf=\'\'; my $a; my ($uword,$words)=@_; ');  myprint(CHECK, 'sub checkit {my $nf=\'\'; my $a; my ($uword,$words)=@_; ');
   
   
   
 while ( ($sha,$_)=getstring("\s*>\s*",RULES),$sha )  while ( ($sha,$_)=getstring("\s*>\s*",RULES),$sha )
 {  {
     $sha =~ s/\s+//g;      $sha =~ s/\s+//g;
     s/\s+//g;      s/\s+//g;
     if ( $sha =~ m/^flag\s*\*(.):/ )      if ( $sha =~ m/^flag\s*\*(.):/ )
     {      {
         $flag=$1;          $flag=$1;
     }      }
   
     if ($_)      if ($_)
     {      {
         s/(\#.*)$//g;          s/(\#.*)$//g;
         ($f,$s)=split(",");          ($f,$s)=split(",");
   
   
         if (!$s) {$s = $f; $f=""};          if (!$s) {$s = $f; $f=""};
         $f=~s/^-//;          $f=~s/^-//;
   
         if ( $sha eq "." )          if ( $sha eq "." )
         {          {
             $sha="";              $sha="";
         }          }
                  
         if ( $s eq "-")          if ( $s eq "-")
         {          { 
           $s=""            $s=""
         }          }
         $sha= $sha."\$";          $sha= $sha."\$";
         $s= $s."\$";          $s= $s."\$";
   
 myprint (CHECK, "\n\n#-------------------------------------\n\n");  myprint (CHECK, "\n\n#-------------------------------------\n\n"); 
   
         myprint (CHECK, "          myprint (CHECK, "
            \$\_=\$uword;             \$\_=\$uword;
            if ((s/$s/$f/) && (m/$sha/) &&  (\$a=\$\$words{\$\_}) && (\$a=~m/$flag/))             if ((s/$s/$f/) && (m/$sha/) &&  (\$a=\$\$words{\$\_}) && (\$a=~m/$flag/))
            \{             \{
                \$nf.=\"\$\_/$flag \";                 \$nf.=\"\$\_/$flag \";
            \}");             \}");
       }        }
   
 }  }
   
         myprint (CHECK, "          myprint (CHECK, "
            \$\_=\$uword;             \$\_=\$uword;
            if (\$\$words{\$\_})             if (\$\$words{\$\_})
            \{             \{
                \$nf.=\"\$\_/! \";                 \$nf.=\"\$\_/! \";
            \}             \}
           return \$nf;            return \$nf;
          ");           ");
   
   
 myprint (CHECK,"} 1\n")  myprint (CHECK,"} 1\n")
   
   
   

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>