#!/bin/bash

COMP="c"
EXT="o"
EXTA=""
[[ "$1" = "-o" ]] && {
    COMP="opt"
    EXT="x"
    EXTA="x"
}

rm -f *.cm? *.o alloyparse.mli alloyparse.ml &&
ocaml$COMP -c symb.ml &&
ocaml$COMP -c fol.ml alloyast.ml &&
ocaml$COMP -c alloyconstr.ml &&
ocaml$COMP -c simpl.ml &&
ocaml$COMP -c spass.ml && # tptp.ml
ocamlyacc -v alloyparse.mly &&
ocaml$COMP -c alloyparse.mli alloyparse.ml &&
ocamllex alloylex.mll &&
ocaml$COMP -c alloylex.ml &&
ocaml$COMP -c alloy2fol.ml &&
ocaml$COMP -c alloy.ml &&
ocaml$COMP -c entrypoint_spass.ml &&
echo "Compilation succeeded. About to link." &&
ocaml$COMP -o alloy2spass symb.cm$EXT fol.cm$EXT alloyast.cm$EXT alloyconstr.cm$EXT simpl.cm$EXT spass.cm$EXT alloyparse.cm$EXT str.cm$EXTA''a alloylex.cm$EXT alloy2fol.cm$EXT alloy.cm$EXT entrypoint_spass.cm$EXT &&
[[ "$1" = "test" ]] &&
rm -f *.spass  &&
for i in ath bopc copc rab rbc 
do
  ./alloy2spass < $i.als || exit $?
done
