#! /bin/ksh

MODULI=$1
FIRME=$2
TMP="tmp.out"

rm -f ${TMP}.*

cat /dev/null > ${TMP}.n
cat /dev/null > ${TMP}.sign
cat /dev/null > risultato
cat /dev/null > tempi_smodels

cp -f ${MODULI} ${TMP}.n

let M=1

echo " MODULO |**| FIRMA IN INPUT |**|\c" >> risultato
echo " MESSAGGIO |**| FIRMA IN OUTPUT |**|\c" >> risultato  
echo " NUMERO BIT |**| NUMERO SCELTE ERRATE |**|\c">> risultato 
echo " TEMPO (SEC.)|**|">> risultato 
echo "********|**|****************|**|\c" >> risultato 
echo "***********|**|*****************|**|\c" >> risultato
echo "************|**|**********************|**|\c">> risultato  
echo "*************|**|">> risultato


while test $M -le 1
do 
   MODVAL=`head -1 ${TMP}.n`
   tail +2 ${TMP}.n > ${TMP}.res
   mv -f ${TMP}.res ${TMP}.n
   BITVAL=`head -1 ${TMP}.n`
   tail +2 ${TMP}.n > ${TMP}.res
   mv -f ${TMP}.res ${TMP}.n

     

let N=1

cp -f ${FIRME} ${TMP}.sign

while test $N -le 6 
do
  SIGNVAL=`head -1 ${TMP}.sign`
  tail +2 ${TMP}.sign > ${TMP}.res
  mv -f ${TMP}.res ${TMP}.sign
   
  
  preprocessor -m ${MODVAL} -f ${SIGNVAL} > out.txt
  grep  "false" out.txt | sed "s/false:- //" > messaggio.txt 
  codifica_msg -file messaggio.txt -bits ${BITVAL} > ${TMP}.4
  MSG=`head -1 ${TMP}.4` 

   
  lparse -c b=${BITVAL} codifica.txt codifica2.txt out.txt> ${TMP}.0
  smodels < ${TMP}.0 > ${TMP}.1
  RESULT=`grep -c "Stable" ${TMP}.1`
  grep  "wrong choices" ${TMP}.1>${TMP}.3 
  CP=`sed "s/Number of wrong choices://" ${TMP}.3 ` 
  grep  "Duration" ${TMP}.1>${TMP}.11 
  D=`sed "s/Duration://" ${TMP}.11 `
  echo "$D\c" >>tempi_smodels 
  if test ${RESULT} -gt 0
            then
               sed "s/[a-eg-z0-9_]\+([^)]*)//g" ${TMP}.1 | sed "s/zero_1//g" >${TMP}.2     
               sed "s/[A-Za-z: ]*//g" ${TMP}.2 |tail +3 | head -1 > sign.txt
               codifica_sign -file sign.txt >${TMP}.5  
               SIGNOUT=`head -1 ${TMP}.5`
       
   fi
   


spazio -input $MODVAL >${TMP}.6  
LENGTH=`head -1 ${TMP}.6`


let K=7
  while test $LENGTH -le $K
     do
         echo " \c">> risultato  
         let K-=1
     done
       
echo "$MODVAL|**|\c" >> risultato 


minimizza -m $MODVAL -f $SIGNVAL > ${TMP}.13 
SIGNVAL=`head -1 ${TMP}.13`
spazio -input $SIGNVAL >${TMP}.9  
LENGTH=`head -1 ${TMP}.9`


let K=15
  while test $LENGTH -le $K
     do
         echo " \c">> risultato  
         let K-=1
     done 

echo "$SIGNVAL|**|\c" >> risultato     

spazio -input $MSG >${TMP}.7  
LENGTH=`head -1 ${TMP}.7`

	
let K=10
  while test $LENGTH -le $K 
     do
         echo " \c">> risultato  
         let K-=1
     done

echo "$MSG|**|\c" >> risultato 


 if test ${RESULT} -gt 0
    then
        spazio -input $SIGNOUT >${TMP}.8  
        LENGTH=`head -1 ${TMP}.8`
        let K=16
        while test $LENGTH -le $K 
        do
         echo " \c">> risultato
         let K-=1
        done
        echo "$SIGNOUT|**|\c" >> risultato
     else echo "            not found|**|\c" >> risultato
 fi

spazio -input $BITVAL >${TMP}.12  
LENGTH=`head -1 ${TMP}.12`


let K=11
  while test $LENGTH -le $K
       do
         echo " \c">> risultato
         let K-=1
     done

echo "$BITVAL|**|\c">> risultato 

spazio -input $CP >${TMP}.10  
LENGTH=`head -1 ${TMP}.10`

let K=20
  while test $LENGTH -le $K 
     do
         echo " \c">> risultato
         let K-=1
     done

echo "$CP|**|\c">> risultato 

spazio -input $D >${TMP}.11  
LENGTH=`head -1 ${TMP}.11`

let K=11
 while test $LENGTH -le $K 
    do
       echo " \c">> risultato
       let K-=1
    done

echo "$D|**|">> risultato 


  let N+=1
done
  let M+=1
  echo " ">>tempi_smodels	
done
 
echo "********* L'output e' nel file : risultato *********"  		
