lib/scripts/unsymbolize
author blanchet
Thu, 09 Jun 2011 00:16:28 +0200
changeset 43304 6901ebafbb8d
parent 41457 3bb2f035203f
child 52617 42e02ddd1568
permissions -rwxr-xr-x
cleaner fact freshening, which also works in corner cases, e.g. if two backquoted facts have the same name (but have different variable indices)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35022
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
     1
#!/usr/bin/env perl
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
     2
#
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
     3
# Author: Markus Wenzel, TU Muenchen
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
     4
#
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
     5
# unsymbolize.pl - remove unreadable symbol names from sources
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
     6
#
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
     7
35022
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
     8
use warnings;
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
     9
use strict;
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
    10
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    11
sub unsymbolize {
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    12
    my ($file) = @_;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    13
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    14
    open (FILE, $file) || die $!;
35022
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
    15
    undef $/; my $text = <FILE>; $/ = "\n";         # slurp whole file
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    16
    close FILE || die $!;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    17
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    18
    $_ = $text;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    19
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    20
    # Pure
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    21
    s/\\?\\<And>/!!/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    22
    s/\\?\\<Colon>/::/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    23
    s/\\?\\<Longrightarrow>/==>/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    24
    s/\\?\\<Midarrow>\\?\\<Rightarrow>/==>/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    25
    s/\\?\\<Rightarrow>/=>/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    26
    s/\\?\\<equiv>/==/g;
10506
01333dbe1431 replace \<dots>;
wenzelm
parents: 10071
diff changeset
    27
    s/\\?\\<dots>/.../g;
10071
ff08faf26d58 tuned replacements;
wenzelm
parents: 10026
diff changeset
    28
    s/\\?\\<lbrakk> ?/[| /g;
ff08faf26d58 tuned replacements;
wenzelm
parents: 10026
diff changeset
    29
    s/\\?\\ ?<rbrakk>/ |]/g;
ff08faf26d58 tuned replacements;
wenzelm
parents: 10026
diff changeset
    30
    s/\\?\\<lparr> ?/(| /g;
ff08faf26d58 tuned replacements;
wenzelm
parents: 10026
diff changeset
    31
    s/\\?\\ ?<rparr>/ |)/g;
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    32
    # HOL
13184
197e5a88c9df added <-> and ~
paulson
parents: 10639
diff changeset
    33
    s/\\?\\<longleftrightarrow>/<->/g;
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    34
    s/\\?\\<longrightarrow>/-->/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    35
    s/\\?\\<midarrow>\\?\\<rightarrow>/-->/g;
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    36
    s/\\?\\<rightarrow>/->/g;
13184
197e5a88c9df added <-> and ~
paulson
parents: 10639
diff changeset
    37
    s/\\?\\<not>/~/g;
27220
31adee1f467a added ~: and ~=;
wenzelm
parents: 14981
diff changeset
    38
    s/\\?\\<notin>/~:/g;
31adee1f467a added ~: and ~=;
wenzelm
parents: 14981
diff changeset
    39
    s/\\?\\<noteq>/~=/g;
31adee1f467a added ~: and ~=;
wenzelm
parents: 14981
diff changeset
    40
    s/\\?\\<some> ?/SOME /g;
10639
f902346264e9 harpoons;
wenzelm
parents: 10506
diff changeset
    41
    # outer syntax
f902346264e9 harpoons;
wenzelm
parents: 10506
diff changeset
    42
    s/\\?\\<rightleftharpoons>/==/g;
f902346264e9 harpoons;
wenzelm
parents: 10506
diff changeset
    43
    s/\\?\\<rightharpoonup>/=>/g;
f902346264e9 harpoons;
wenzelm
parents: 10506
diff changeset
    44
    s/\\?\\<leftharpoondown>/<=/g;
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    45
35022
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
    46
    my $result = $_;
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    47
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    48
    if ($text ne $result) {
41457
3bb2f035203f eliminated hard tabs;
wenzelm
parents: 35022
diff changeset
    49
        print STDERR "fixing $file\n";
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    50
        if (! -f "$file~~") {
41457
3bb2f035203f eliminated hard tabs;
wenzelm
parents: 35022
diff changeset
    51
            rename $file, "$file~~" || die $!;
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    52
        }
41457
3bb2f035203f eliminated hard tabs;
wenzelm
parents: 35022
diff changeset
    53
        open (FILE, "> $file") || die $!;
3bb2f035203f eliminated hard tabs;
wenzelm
parents: 35022
diff changeset
    54
        print FILE $result;
3bb2f035203f eliminated hard tabs;
wenzelm
parents: 35022
diff changeset
    55
        close FILE || die $!;
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    56
    }
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    57
}
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    58
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    59
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    60
## main
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    61
35022
c844b93dd147 modernized perl scripts: prefer standalone executables;
wenzelm
parents: 29145
diff changeset
    62
foreach my $file (@ARGV) {
10026
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    63
  eval { &unsymbolize($file); };
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    64
  if ($@) { print STDERR "*** unsymbolize $file: ", $@, "\n"; }
dfa85ba2295a remove unreadable symbol names from sources;
wenzelm
parents:
diff changeset
    65
}