lib/scripts/update_sub_sup
changeset 62448 5ec1d01089e3
parent 62447 26861a913d6b
child 62449 1785cbadd226
equal deleted inserted replaced
62447:26861a913d6b 62448:5ec1d01089e3
     1 #!/usr/bin/env perl
       
     2 #
       
     3 # Author: Makarius
       
     4 #
       
     5 # update_sub_sup - update Isabelle symbols involving sub/superscripts
       
     6 
       
     7 use warnings;
       
     8 use strict;
       
     9 
       
    10 sub update_sub_sup {
       
    11     my ($file) = @_;
       
    12 
       
    13     open (FILE, $file) || die $!;
       
    14     undef $/; my $text = <FILE>; $/ = "\n";         # slurp whole file
       
    15     close FILE || die $!;
       
    16 
       
    17     $_ = $text;
       
    18 
       
    19     s/\Q\<^isub>\E/\\<^sub>/g;
       
    20     s/\Q\<^isup>\E/\\<^sup>/g;
       
    21     s/\Q\<onesuperior>\E/\\<^sup>1/g;
       
    22     s/\Q\<twosuperior>\E/\\<^sup>2/g;
       
    23     s/\Q\<threesuperior>\E/\\<^sup>3/g;
       
    24 
       
    25     my $result = $_;
       
    26 
       
    27     if ($text ne $result) {
       
    28         print STDERR "changing $file\n";
       
    29         if (! -f "$file~~") {
       
    30             rename $file, "$file~~" || die $!;
       
    31         }
       
    32         open (FILE, "> $file") || die $!;
       
    33         print FILE $result;
       
    34         close FILE || die $!;
       
    35     }
       
    36 }
       
    37 
       
    38 
       
    39 ## main
       
    40 
       
    41 foreach my $file (@ARGV) {
       
    42   eval { &update_sub_sup($file); };
       
    43   if ($@) { print STDERR "*** update_sub_sup $file: ", $@, "\n"; }
       
    44 }