| 
21884
 | 
     1  | 
#!/usr/bin/env bash
  | 
| 
 | 
     2  | 
#
  | 
| 
 | 
     3  | 
# $Id$
  | 
| 
 | 
     4  | 
# Author: Florian Haftmann, TUM
  | 
| 
 | 
     5  | 
#
  | 
| 
 | 
     6  | 
# DESCRIPTION: issue code generation from shell
  | 
| 
 | 
     7  | 
  | 
| 
 | 
     8  | 
  | 
| 
 | 
     9  | 
## diagnostics
  | 
| 
 | 
    10  | 
  | 
| 
 | 
    11  | 
PRG="$(basename "$0")"
  | 
| 
 | 
    12  | 
  | 
| 
 | 
    13  | 
function usage()
  | 
| 
 | 
    14  | 
{
 | 
| 
 | 
    15  | 
  echo
  | 
| 
 | 
    16  | 
  echo "Usage: $PRG IMAGE THY SERI"
  | 
| 
 | 
    17  | 
  echo
  | 
| 
 | 
    18  | 
  echo "  Issues code generation using image IMAGE,"
  | 
| 
 | 
    19  | 
  echo "  theory THY,"
  | 
| 
 | 
    20  | 
  echo "  with Isar command 'code_gen SERI'"
  | 
| 
 | 
    21  | 
  echo
  | 
| 
 | 
    22  | 
  exit 1
  | 
| 
 | 
    23  | 
}
  | 
| 
 | 
    24  | 
  | 
| 
 | 
    25  | 
  | 
| 
 | 
    26  | 
## process command line
  | 
| 
 | 
    27  | 
  | 
| 
 | 
    28  | 
[ "$#" -lt 2 -o "$1" = "-?" ] && usage
  | 
| 
 | 
    29  | 
  | 
| 
 | 
    30  | 
IMAGE="$1"; shift
  | 
| 
 | 
    31  | 
THY="$1"; shift
  | 
| 
 | 
    32  | 
SERI="$1"
  | 
| 
 | 
    33  | 
  | 
| 
 | 
    34  | 
  | 
| 
 | 
    35  | 
## main
  | 
| 
 | 
    36  | 
  | 
| 
 | 
    37  | 
SERI=$(echo $SERI | sed -e 's/\\/\\\\"/g; s/"/\\\"/g')
  | 
| 
 | 
    38  | 
CMD="Isar.toplevel (fn _ => (use_thy \"$THY\"; CodegenPackage.codegen_command (theory \"$THY\") \"$SERI\"))"
  | 
| 
 | 
    39  | 
  | 
| 
 | 
    40  | 
"$ISABELLE" -q -e "$CMD" "$IMAGE"
  |