/[suikacvs]/markup/html/html5/spec-ja/make.pl
Suika

Diff of /markup/html/html5/spec-ja/make.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by wakaba, Fri Jul 18 19:12:04 2008 UTC revision 1.11 by wakaba, Sun Jul 20 07:45:21 2008 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl  #!/usr/bin/perl
2  use strict;  use strict;
3    
4    BEGIN { require 'common.pl' }
5    
6  my $source_file_name = shift;  my $source_file_name = shift;
 my $data_dir_name = q[data/];  
 my $data_suffix = q[.dat];  
7  my $result_file_name = shift;  my $result_file_name = shift;
8  my $status_file_name = shift;  my $status_file_name = shift;
9    
 sub normalize ($) {  
   my $s = shift;  
   $s =~ s/\s+/ /g;  
   $s =~ s/^ //;  
   $s =~ s/ $//g;  
   return $s;  
 } # normalize  
   
 sub create_pattern1 ($) {  
   my $s = quotemeta shift;  
   $s =~ s/\\\*/(.+)/g;  
   return $s;  
 } # create_pattern1  
   
 sub replace_pattern2 ($@) {  
   my $s = shift;  
   my @arg = @_;  
   $s =~ s/\$(\d+)/$arg[$1 - 1]/g;  
   return $s;  
 } # replace_pattern2  
   
10  my %data;  my %data;
11  my %pattern;  my %pattern;
12  {  for_each_data_file (sub ($) {
13    opendir my $data_dir, $data_dir_name or die "$0: $data_dir_name: $!";    my $data_file_name = shift;
14    local $/ = undef;    warn "$data_file_name...\n";
15    for (readdir $data_dir) {    load_data_file ($data_file_name, \%data, \%pattern);
16      next if /^\./; # hidden files  });
     my $data_file_name = qq[$data_dir_name$_];  
     next unless $data_file_name =~ /\Q$data_suffix\E$/;  
     warn "$data_file_name...\n";  
     open my $data_file, '<:utf8', $data_file_name  
         or die "$0: $data_file_name: $!";  
     my $data = <$data_file>;  
     $data =~ s/\x0D?\x0A/\n/g;  
     for (split /\n\n+(?=#)/, $data) {  
       my ($en, $ja) = split /\n#ja\n/, $_;  
       if ($en =~ s/^#en\n//) {  
         $data{normalize ($en)} = $ja;  
       } elsif ($en =~ s/^#pattern\n//) {  
         $pattern{create_pattern1 (normalize ($en))} = $ja;  
       }  
     }  
   }  
 }  
17  my @pattern = sort {length $b <=> length $a} keys %pattern;  my @pattern = sort {length $b <=> length $a} keys %pattern;
18    
19  my $source_text;  my $source_text;

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24