| author | wenzelm | 
| Wed, 17 Oct 2018 21:53:38 +0200 | |
| changeset 69153 | 108beabc1bc6 | 
| parent 56281 | 03c3d1a7c3b8 | 
| child 72004 | 913162a47d9f | 
| permissions | -rwxr-xr-x | 
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 1 | #!/usr/bin/env bash | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 2 | # | 
| 39413 | 3 | # make_metis - turn original Metis files into Isabelle ML source. | 
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 4 | # | 
| 39427 | 5 | # Signatures, structures, and functors are renamed to have a "Metis_" prefix. | 
| 6 | # A few other ad hoc transformations are performed to ensure that the sources | |
| 7 | # compile within Isabelle on Poly/ML and SML/NJ. | |
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 8 | |
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 9 | THIS=$(cd "$(dirname "$0")"; echo $PWD) | 
| 39433 
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
 blanchet parents: 
39427diff
changeset | 10 | make -f Makefile.FILES refresh_FILES | 
| 39448 | 11 | FILES=$(cat "$THIS/FILES") | 
| 39433 
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
 blanchet parents: 
39427diff
changeset | 12 | |
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 13 | ( | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 14 | cat <<EOF | 
| 39411 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 15 | (* | 
| 39413 | 16 | This file was generated by the "make_metis" script. The BSD License is used | 
| 39411 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 17 | with Joe Hurd's kind permission. Extract from a September 13, 2010 email | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 18 | written by Joe Hurd: | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 19 | |
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 20 | I hereby give permission to the Isabelle team to release Metis as part | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 21 | of Isabelle, with the Metis code covered under the Isabelle BSD | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 22 | license. | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 23 | *) | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 24 | |
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 25 | (******************************************************************) | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 26 | (* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *) | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 27 | (* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *) | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 28 | (* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *) | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 29 | (******************************************************************) | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 30 | |
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 31 | EOF | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 32 | |
| 39448 | 33 | for FILE in $FILES | 
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 34 | do | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 35 | echo | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 36 | echo "(**** Original file: $FILE ****)" | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 37 | echo | 
| 39411 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 38 | echo -e "$FILE" >&2 | 
| 39448 | 39 | "$THIS/scripts/mlpp" -c polyml "$FILE" | \ | 
| 39411 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 40 | perl -p -e \ | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 41 | 's/\bref\b/Unsynchronized.ref/g;'\ | 
| 39448 | 42 | "`grep "^\(signature\|structure\|functor\)" $FILES | \ | 
| 39411 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 43 | sed "s/[^:]*:[a-z]* \([A-Za-z0-9_]*\).*/\1/" | \ | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 44 | tr " " "\n" | \ | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 45 | sort | \ | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 46 | uniq | \ | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 47 | sed 's/\(.*\)/s\/\\\\b\1\\\\b\/Metis_\1\/g;/'`" | 
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 48 | done | 
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 49 | |
| 39411 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 50 | cat <<EOF | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 51 | ; | 
| 
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
 blanchet parents: 
39350diff
changeset | 52 | EOF | 
| 23442 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 53 | |
| 
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
 wenzelm parents: diff
changeset | 54 | ) > metis.ML |