#! /bin/sh

     ###################################### 
     ##### Model Transformation Tools #####
     ######################################

# Bourne shell script: txt2m
# Converts txt file to matlab file (for numpar and state)

# Copyright (c) P.J.Gawthrop 1998


# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %% Version control history
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# %% $Id$
# %% $Log$
# %% Revision 1.5  1998/07/26 11:54:20  peterg
# %% Added  mtt to variables
# %%
# %% Revision 1.4  1998/07/26 09:50:12  peterg
# %% More forgiving of txt sytax.
# %%
# %% -- can use () or ()
# %% -- can use mttx() or x()
# %% -- can use mttu() or u()
# %%
# %% Revision 1.3  1998/07/25 20:40:35  peterg
# %% All vars in lower case now
# %%
# %% Revision 1.2  1998/07/25 09:48:31  peterg
# %% Tidied up for Pascal version
# %%
# %% Revision 1.1  1998/02/25 22:10:25  peterg
# %% Initial revision
# %%
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

system=$1
representation=$2

if [ "$representation" = "state" ]; then
    name='mttx';
    arg='';
fi
if [ "$representation" = "input" ]; then
    name='mttu';
    arg='(mttx,mttt)'
fi

# Inform user
echo Creating $1_$2.m


if [ "$representation" != "simpar" ]; then
    #Create the $2 file complete with headers.
    echo "function $name = $1_$2$arg" > $1_$2.m
    echo "%% $2 file ($1_$2.m)" >> $1_$2.m
    echo "%% Generated by MTT at `date`" >> $1_$2.m
    echo "% Global variable list" >>  $1_$2.m
    sympar2global_txt2m $1 >> $1_$2.m
else
    echo "% Script file  $1_$2.m" > $1_$2.m
    echo '% Dummy globals' >>  $1_$2.m
    echo 'global ...' >>  $1_$2.m
    echo 'mtt_dummy_global;' >>  $1_$2.m
fi


#Write out the variables in m format.
awk -F#  '{
  if (NF<2) print $1
  if (NF>1)  print $1 "# " $2
}' $1_$2.txt  | \
sed 's/\[\([0-9]*\)\]/(\1)/g' |\
sed 's/\([^a-zA-Z]\)t\([^a-zA-Z]\)/\1mttt\2/g' |\
sed 's/LAST/mttLAST/g' |\
sed 's/DT/mttDT/g' |\
sed 's/STEPFACTOR/mttSTEPFACTOR/g' |\
sed 's/METHOD/mttMETHOD/g' |\
sed 's/WMIN/mttWMIN/g' |\
sed 's/WMAX/mttWMAX/g' |\
sed 's/WSTEPS/mttWSTEPS/g' |\
sed 's/x(/mttx(/g' | sed 's/u(/mttu(/g'  |\
sed 's/mttmtt/mtt/g' >> $1_$2.m




