export.sh revision 7bbfb15142ab4286dfc6fcde2fc94a5512297e41
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder#!/bin/bash
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder# ISABELLE_BIN_PATH (if isabelle is not located in PATH)
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von SchroederSCRIPT=$(readlink -f $0)
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von SchroederSCRIPTPATH=`dirname $SCRIPT`
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederif [ -z $1 ]; then
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "Nothing to translate!"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder exit 1
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederfi
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroederif [ ! -z $2 ]; then
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroeder OUT_FILE="$2"
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroederfi
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von SchroederTRANS=$(readlink -f $1)
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von SchroederTRANS_T=$(basename $TRANS .thy)
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von SchroederTRANS=$(dirname $TRANS)/$TRANS_T
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederif [ ! -r $TRANS.thy ]; then
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "Cannot read file $TRANS.thy"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder exit 1
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederfi
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederif [ ! -z $ISABELLE_BIN_PATH ]; then
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder ISABELLE="$ISABELLE_BIN_PATH/isabelle"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder if [ ! -e $ISABELLE ]; then
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "Cannot find isabelle executable. Maybe you didn't specify ISABELLE_BIN_PATH correctly?"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder fi
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederelse
22b772f8753f0cdb4508ba460356c238de2ee375Jonathan von Schroeder if which isabelle > /dev/null ; then
22b772f8753f0cdb4508ba460356c238de2ee375Jonathan von Schroeder ISABELLE=`which isabelle`
22b772f8753f0cdb4508ba460356c238de2ee375Jonathan von Schroeder else
22b772f8753f0cdb4508ba460356c238de2ee375Jonathan von Schroeder echo "Cannot find isabelle executable. Maybe you need to specify ISABELLE_BIN_PATH?"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder exit 1
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder fi
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederfi
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederif [ ! -x $ISABELLE ]; then
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "$ISABELLE is not executable"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder exit 1
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroederfi
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroederif [ -z $OUT_FILE ]; then
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroeder OUT_FILE="$TRANS.isa"
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroederfi
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von Schroeder
6516023b9db74939c0a0f79fd6cc5bc7d9bab382Jonathan von Schroederecho $ISABELLE
6516023b9db74939c0a0f79fd6cc5bc7d9bab382Jonathan von Schroeder
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder(
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "theory IsaExport"
4d4ee5ef6601170c9d419da9fe8742c506507d11Jonathan von Schroeder echo "imports \"$TRANS\" Wellfounded"
6516023b9db74939c0a0f79fd6cc5bc7d9bab382Jonathan von Schroeder echo "uses \"$SCRIPTPATH/export_helper.ml\""
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "begin"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "ML {*"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "val T = Thy_Info.get_theory \"$TRANS_T\";
75a39ac3eec18df94df1be9c71a1f6b1f94a57a4Jonathan von Schroeder
255a89789d3d5b19f6a8c96bf6c260a96158ef6dJonathan von Schroederval xml = ExportHelper.tinfo2xml T \"$TRANS_T\"
255a89789d3d5b19f6a8c96bf6c260a96158ef6dJonathan von Schroeder (ExportHelper.theory_info T);
255a89789d3d5b19f6a8c96bf6c260a96158ef6dJonathan von Schroeder
7bbfb15142ab4286dfc6fcde2fc94a5512297e41Jonathan von SchroederFile.write (Path.explode \"$OUT_FILE\") (XML.string_of xml);
6516023b9db74939c0a0f79fd6cc5bc7d9bab382Jonathan von Schroeder"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "*}"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder echo "end;"
067b7cf571968fe8e91212059da1590c2dfa741aJonathan von Schroeder
22b772f8753f0cdb4508ba460356c238de2ee375Jonathan von Schroeder) | ($ISABELLE tty)