author | blanchet |
Wed, 15 Sep 2010 15:49:43 +0200 | |
changeset 39413 | c70a6c169a16 |
parent 39412 | 7e8f49d412d6 |
child 39415 | 8ebe8dbe16ba |
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 |
# |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
5 |
# Structure declarations etc. are made local by wrapping into a |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
6 |
# collective structure Metis. Signature and functor definitions are |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
7 |
# global! |
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) |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
10 |
|
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
11 |
( |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
12 |
cat <<EOF |
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
13 |
(* |
39413 | 14 |
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:
39350
diff
changeset
|
15 |
with Joe Hurd's kind permission. Extract from a September 13, 2010 email |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
16 |
written by Joe Hurd: |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
17 |
|
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
18 |
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
|
19 |
of Isabelle, with the Metis code covered under the Isabelle BSD |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
20 |
license. |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
21 |
*) |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
22 |
|
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
23 |
(******************************************************************) |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
24 |
(* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *) |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
25 |
(* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *) |
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 |
(******************************************************************) |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
28 |
|
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
29 |
print_depth 0; |
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 |
|
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
33 |
for FILE in $(cat "$THIS/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:
39350
diff
changeset
|
38 |
echo -e "$FILE" >&2 |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
39 |
"$THIS/scripts/mlpp" -c polyml "src/$FILE" | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
40 |
perl -p -e \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
41 |
's/type name$/type name = string/;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
42 |
's/\bref\b/Unsynchronized.ref/g;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
43 |
's/\bPolyML.pointerEq\b/pointer_eq/g;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
44 |
's/(?<!\.)\bexplode\b/String.explode/g;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
45 |
's/(?<!\.)\bimplode\b/String.implode/g;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
46 |
's/(?<!\.)\bprint\b/TextIO.print/g;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
47 |
's/\bRL\b/Metis_RL/g;'\ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
48 |
"`grep "^\(signature\|structure\|functor\)" src/*.{sig,sml} | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
49 |
sed "s/[^:]*:[a-z]* \([A-Za-z0-9_]*\).*/\1/" | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
50 |
tr " " "\n" | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
51 |
sort | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
52 |
uniq | \ |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
53 |
sed 's/\(.*\)/s\/\\\\b\1\\\\b\/Metis_\1\/g;/'`" |
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
54 |
done |
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
55 |
|
39411
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
56 |
cat <<EOF |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
57 |
; |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
58 |
print_depth 10; |
ec989bd98fc8
use "Metis_" prefix rather than "Metis" structure;
blanchet
parents:
39350
diff
changeset
|
59 |
EOF |
23442
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
60 |
|
028e39e5e8f3
The Metis prover (slightly modified version from Larry);
wenzelm
parents:
diff
changeset
|
61 |
) > metis.ML |