lib/scripts/update_sub_sup
changeset 62458 9590972c2caf
parent 62457 a3c7bd201da7
parent 62456 11e06f5283bc
child 62461 075ef5ec115c
equal deleted inserted replaced
62457:a3c7bd201da7 62458:9590972c2caf
     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 }