diff options
Diffstat (limited to 'src/expr/mkkind')
-rwxr-xr-x | src/expr/mkkind | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/expr/mkkind b/src/expr/mkkind new file mode 100755 index 000000000..c8ad61571 --- /dev/null +++ b/src/expr/mkkind @@ -0,0 +1,54 @@ +#!/bin/bash +# +# mkkind +# Morgan Deters <mdeters@cs.nyu.edu> for CVC4 +# +# The purpose of this script is to create kind.h from a prologue, +# middle, epilogue, and a list of theory kinds. +# +# Invocation: +# +# mkkind prologue-file middle-file epilogue-file theory-kind-files... +# +# Output is to standard out. +# + +cat <<EOF +/********************* -*- C++ -*- */ +/** kind.h + ** + ** Copyright 2009, 2010 The AcSys Group, New York University, and as below. + ** + ** This header file automatically generated by: + ** + ** $0 $@ + ** + ** for the CVC4 project. + ** + **/ + +EOF + +prologue=$1; shift +middle=$1; shift +epilogue=$1; shift + +cases= +cat "$prologue" +while [ $# -gt 0 ]; do + b=$(basename $(dirname "$1")) + echo + echo " /* from $b */" + cases="$cases + /* from $b */ +" + for r in `cat "$1"`; do + echo " $r," + cases="$cases case $r: out << \"$r\"; break; +" + done + shift +done +cat "$middle" +echo "$cases" +cat "$epilogue" |