49 lines
		
	
	
		
			692 B
		
	
	
	
		
			Raku
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			692 B
		
	
	
	
		
			Raku
		
	
	
	
	
	
 | 
						|
open(MAP, "> ucs_case.map");
 | 
						|
print MAP <<EOF;
 | 
						|
/*
 | 
						|
   File generated from UnicodeData-4.1.0.txt.
 | 
						|
*/
 | 
						|
 | 
						|
EOF
 | 
						|
 | 
						|
for (<DATA>) {
 | 
						|
  chop;
 | 
						|
  ($name, $col) = split;
 | 
						|
  
 | 
						|
  @cp = ();
 | 
						|
  
 | 
						|
  open(UCD, "< private/UnicodeData-4.1.0.txt");
 | 
						|
  while(<UCD>) {
 | 
						|
    chop;
 | 
						|
    @entry = split(';');
 | 
						|
    last if $entry[0] =~ m/.{5,}/;
 | 
						|
    if ($entry[$col] ne '') {
 | 
						|
      push (@cp, $entry[0]);
 | 
						|
      $map{$entry[0]} = $entry[$col];
 | 
						|
    }
 | 
						|
  }
 | 
						|
  close UCD;
 | 
						|
 | 
						|
  $nocp = @cp;
 | 
						|
  
 | 
						|
  print MAP <<EOF;
 | 
						|
 | 
						|
#define N_ucs_${name}_map ${nocp}
 | 
						|
 | 
						|
static wc_map ucs_${name}_map[ N_ucs_${name}_map ] = {
 | 
						|
EOF
 | 
						|
  
 | 
						|
  for (@cp) {
 | 
						|
    print MAP "  { 0x$_, 0x$map{$_} },\n";
 | 
						|
  }
 | 
						|
  print MAP <<EOF
 | 
						|
};
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
__END__
 | 
						|
toupper	12
 | 
						|
tolower	13
 | 
						|
totitle	14
 |