lib/scripts/update_sub_sup
author wenzelm
Fri Jan 01 16:40:47 2016 +0100 (2016-01-01)
changeset 62028 2ecee4679f99
parent 52921 0ea2b657eb42
permissions -rwxr-xr-x
updated for release;
     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 }