author | haftmann |
Sat, 19 Jul 2025 18:41:55 +0200 | |
changeset 82886 | 8d1e295aab70 |
parent 73705 | ac07f6be27ea |
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 |
|
73705
ac07f6be27ea
avoid unexpected output+behaviour when CDPATH is set
kleing
parents:
72004
diff
changeset
|
9 |
unset CDPATH |
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
10 |
THIS=$(cd "$(dirname "$0")"; echo $PWD) |
39433
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
blanchet
parents:
39427
diff
changeset
|
11 |
make -f Makefile.FILES refresh_FILES |
39448 | 12 |
FILES=$(cat "$THIS/FILES") |
39433
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
blanchet
parents:
39427
diff
changeset
|
13 |
|
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
14 |
( |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
15 |
cat <<EOF |
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
16 |
(* |
39413 | 17 |
This file was generated by the "make_metis" script. The BSD License is used |
72004 | 18 |
with Joe Leslie-Hurd's kind permission. Extract from a September 13, 2010 |
19 |
email written by him: |
|
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
20 |
|
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
21 |
I hereby give permission to the Isabelle team to release Metis as part |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
22 |
of Isabelle, with the Metis code covered under the Isabelle BSD |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
23 |
license. |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
24 |
*) |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
25 |
|
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
26 |
(******************************************************************) |
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 |
(* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *) |
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 |
|
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
32 |
EOF |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
33 |
|
39448 | 34 |
for FILE in $FILES |
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
35 |
do |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
36 |
echo |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
37 |
echo "(**** Original file: $FILE ****)" |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
38 |
echo |
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
39 |
echo -e "$FILE" >&2 |
39448 | 40 |
"$THIS/scripts/mlpp" -c polyml "$FILE" | \ |
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
41 |
perl -p -e \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
42 |
's/\bref\b/Unsynchronized.ref/g;'\ |
39448 | 43 |
"`grep "^\(signature\|structure\|functor\)" $FILES | \ |
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
44 |
sed "s/[^:]*:[a-z]* \([A-Za-z0-9_]*\).*/\1/" | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
45 |
tr " " "\n" | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
46 |
sort | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
47 |
uniq | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
48 |
sed 's/\(.*\)/s\/\\\\b\1\\\\b\/Metis_\1\/g;/'`" |
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
49 |
done |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
50 |
|
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
51 |
cat <<EOF |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
52 |
; |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
53 |
EOF |
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
54 |
|
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
55 |
) > metis.ML |