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

version 1.1, 2001/10/31 03:00:10 version 1.4, 2001/11/01 01:44:59
Line 1 Line 1
 #!perl -w  #!/usr/bin/perl -w
   
 =head1 NAME  =head1 NAME
   
 makecheck.pl - скрипт для создания, функции, проверяющего слова  makecheck.pl - скрипт для создания, функции, проверяющего слова
 на предмет наличия в словаре.  на предмет наличия в словаре.
   
 =head1 SYNOPSIS  =head1 SYNOPSIS
   
 aff2pl.pl  makecheck.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 lib "../lib";
   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;  {
     s/\s+//g;      $sha =~ s/\s+//g;
     if ( $sha =~ m/^flag\s*\*(.):/ )      s/\s+//g;
     {      if ( $sha =~ m/^flag\s*\*(.):/ )
         $flag=$1;      {
     }          $flag=$1;
       }
     if ($_)  
     {      if ($_)
         s/(\#.*)$//g;      {
         ($f,$s)=split(",");          s/(\#.*)$//g;
           ($f,$s)=split(",");
   
         if (!$s) {$s = $f; $f=""};  
         $f=~s/^-//;          if (!$s) {$s = $f; $f=""};
           $f=~s/^-//;
         if ( $sha eq "." )  
         {          if ( $sha eq "." )
             $sha="";          {
         }              $sha="";
                  }
         if ( $s eq "-")          
         {          if ( $s eq "-")
           $s=""          { 
         }            $s=""
         $sha= $sha."\$";          }
         $s= $s."\$";          $sha= $sha."\$";
           $s= $s."\$";
 myprint (CHECK, "\n\n#-------------------------------------\n\n");  
   myprint (CHECK, "\n\n#-------------------------------------\n\n"); 
         myprint (CHECK, "  
            \$\_=\$uword;          myprint (CHECK, "
            if ((s/$s/$f/) && (m/$sha/) &&  (\$a=\$\$words{\$\_}) && (\$a=~m/$flag/))             \$\_=\$uword;
            \{             if ((s/$s/$f/) && (m/$sha/) &&  (\$a=\$\$words{\$\_}) && (\$a=~m/$flag/))
                \$nf.=\"\$\_/$flag \";             \{
            \}");                 \$nf.=\"\$\_/$flag \";
       }             \}");
         }
 }  
   }
         myprint (CHECK, "  
            \$\_=\$uword;          myprint (CHECK, "
            if (\$\$words{\$\_})             \$\_=\$uword;
            \{             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.4


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