ADDED mttroot/mtt/bin/trans/mtt_p2cc Index: mttroot/mtt/bin/trans/mtt_p2cc ================================================================== --- /dev/null +++ mttroot/mtt/bin/trans/mtt_p2cc @@ -0,0 +1,96 @@ +#! /bin/sh + + ###################################### + ##### Model Transformation Tools ##### + ###################################### + +# Bourne shell script: mtt_p2oct + +# Pascal to .oct (octave loadable binary). +# P.J.Gawthrop Feb 2000 +# Copyright (C) 2000 by Peter J. Gawthrop + + #$Id$ + +# Find system constants +Nx=`mtt_getsize $1 x` +Nu=`mtt_getsize $1 u` + +# Create numpar code +mtt_p2C $1 numpar + +# Create input code +mtt_p2C $1 input + +# Create the representation code +mtt_p2C $1 $2 + +# Inform user +echo Creating $1_$2.cc + +# Create the c++ code +# Heading +date=`date` + +cat > $1_$2.cc < + +DEFUN_DLD ($1_$2, args, , + "$1_$2 was generated by MTT on $date") +{ + ColumnVector mttdx ($Nx); + ColumnVector mttu ($Nu); + ColumnVector mttx = args(0).vector_value (); + +EOF + +#Extract Type info +#echo '/* Types */' >> $1_$2.cc +#grep typedef $1_$2.C >> $1_$2.cc + +#Extract any additional mtt_tmp variables +awk 'BEGIN{ + writing = 1; +} +{ + if (match($1,"mtt")==1) writing=0; + if ( (writing)&&(match($0,"mtt_t[0-9]")>0) ) print $0; +}' < $1_$2.C >> $1_$2.cc + +#Extract the numpar code +echo '/* Numerical parameters */' >> $1_$2.cc +awk '{ + if ($1=="}") writing=0; + if (writing) print $0; + if ($1=="{") writing=1; +}' <$1_numpar.C >> $1_$2.cc + +#Extract the input code converting [] to () +echo "/* Input information */" >> $1_$2.cc +awk '{ + if ($1=="}") writing=0; + if (match($1,"mtt")==1) writing=1; + if (writing) print $0; +}' <$1_input.C |\ +sed 's/\[\([0-9]*\)\]/(\1)/g' >> $1_$2.cc + + +#Extract the rep code converting [] to () +echo "/* Representation $2 information */" >> $1_$2.cc +awk '{ + if ($1=="}") writing=0; + if (match($1,"mtt")==1) writing=1; + if (writing) print $0; +}' <$1_$2.C |\ +sed 's/\[\([0-9]*\)\]/(\1)/g' >> $1_$2.cc + +# Tail +cat >> $1_$2.cc <