# HG changeset patch # User wenzelm # Date 969313436 -7200 # Node ID dfa85ba2295a659d1221c5545a14313b218d9987 # Parent a281d157ccdf8bdeb0e89887c01026922bc7157f remove unreadable symbol names from sources; diff -r a281d157ccdf -r dfa85ba2295a lib/Tools/unsymbolize --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/Tools/unsymbolize Mon Sep 18 23:43:56 2000 +0200 @@ -0,0 +1,42 @@ +#!/bin/bash +# +# $Id$ +# Author: Markus Wenzel, TU Muenchen +# License: GPL (GNU GENERAL PUBLIC LICENSE) +# +# DESCRIPTION: remove unreadable symbol names from sources + + +## diagnostics + +PRG=$(basename "$0") + +function usage() +{ + echo + echo "Usage: $PRG [FILES|DIRS...]" + echo + echo " Recursively find .thy/.ML files, removing unreadable symbol names." + echo " Note: this is an ad-hoc script; there is no systematic way to replace" + echo " symbols independently of the inner syntax of a theory!" + echo + echo " Renames old versions of FILES by appending \"~~\"." + echo + exit 1 +} + + +## process command line + +[ "$#" -eq 0 -o "$1" = "-?" ] && usage + +SPECS="$@"; shift "$#" + + +## main + +#set by configure +AUTO_PERL=perl + +find $SPECS \( -name \*.ML -o -name \*.thy \) -print | \ + xargs "$AUTO_PERL" -w "$ISABELLE_HOME/lib/scripts/unsymbolize.pl" diff -r a281d157ccdf -r dfa85ba2295a lib/scripts/unsymbolize.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/scripts/unsymbolize.pl Mon Sep 18 23:43:56 2000 +0200 @@ -0,0 +1,52 @@ +# +# $Id$ +# Author: Markus Wenzel, TU Muenchen +# License: GPL (GNU GENERAL PUBLIC LICENSE) +# +# unsymbolize.pl - remove unreadable symbol names from sources +# + +sub unsymbolize { + my ($file) = @_; + + open (FILE, $file) || die $!; + undef $/; $text = ; $/ = "\n"; # slurp whole file + close FILE || die $!; + + $_ = $text; + + # Pure + s/\\?\\/!!/g; + s/\\?\\/::/g; + s/\\?\\/==>/g; + s/\\?\\\\?\\/==>/g; + s/\\?\\/=>/g; + s/\\?\\/==/g; + s/\\?\\/[|/g; + s/\\?\\/|]/g; + # HOL + s/\\?\\/-->/g; + s/\\?\\\\?\\/-->/g; + s/\\?\\/->/g; + s/\\?\\\s*/SOME /g; + + $result = $_; + + if ($text ne $result) { + print STDERR "fixing $file\n"; + if (! -f "$file~~") { + rename $file, "$file~~" || die $!; + } + open (FILE, "> $file") || die $!; + print FILE $result; + close FILE || die $!; + } +} + + +## main + +foreach $file (@ARGV) { + eval { &unsymbolize($file); }; + if ($@) { print STDERR "*** unsymbolize $file: ", $@, "\n"; } +}