| [1fd675] | 1 | #!/bin/bash
|
|---|
| 2 | #
|
|---|
| 3 | #
|
|---|
| 4 |
|
|---|
| 5 | if [ -z $1 ]; then
|
|---|
| 6 | echo "Usage: $0 <Action.cpp>"
|
|---|
| 7 | exit 1
|
|---|
| 8 | fi
|
|---|
| 9 |
|
|---|
| 10 | DIR=`dirname $1`
|
|---|
| 11 | ACTION=`basename $1 | awk -F"." {'print $1'} | awk -F"Action" {'print $1'}`
|
|---|
| 12 | CATEGORY=`echo $DIR | awk -F"/" {'print $NF'} | awk -F"Action" {'print $1'}`
|
|---|
| 13 | PARAMTYPES="#define paramtypes"
|
|---|
| 14 | count=0
|
|---|
| 15 | liste=`grep "void ${CATEGORY}${ACTION}(" $1 | awk -F"(" {'print $2'} | awk -F")" {'print $1'} | tr \ \# | sed -e "s/#*,#*/ /g" | sed -e "s/#*=#*/=/g"`
|
|---|
| 16 | for paramtype in $liste; do
|
|---|
| 17 | paramtype=`echo $paramtype | sed -e "s/^const#*//"`
|
|---|
| 18 | ptype=`echo $paramtype | awk -F"=" {'print $1'} | rev | cut -d"#" -f2- | rev | tr -d \&\*`
|
|---|
| 19 | PARAMTYPES="$PARAMTYPES ($ptype)"
|
|---|
| 20 | ((count+=1))
|
|---|
| 21 | done
|
|---|
| 22 | PARAMTOKENS="#define paramtokens "`grep ValueStorage::getInstance\(\).setCurrentValue $1 | awk -F"(" {'print $3'} | awk -F"," {'print "("$1")"'}`
|
|---|
| 23 | PARAMREFS="#define paramreferences "`grep ValueStorage::getInstance\(\).setCurrentValue $1 | awk -F"," {'print $2'} | awk -F")" {'print "("$1")"'} | tr -d \ `
|
|---|
| 24 | PARAMTOKENS=`echo $PARAMTOKENS | sed -e "s#\n##g"`
|
|---|
| 25 | PARAMREFS=`echo $PARAMREFS | sed -e "s#\n##g"`
|
|---|
| 26 | if [ $count == 0 ]; then
|
|---|
| 27 | PARAMTYPES="#undefine paramtypes"
|
|---|
| 28 | PARAMTOKENS="#undefine paramtokens"
|
|---|
| 29 | PARAMREFS="#undefine paramreferences"
|
|---|
| 30 | fi
|
|---|
| 31 | STATETYPES="#define statetypes"
|
|---|
| 32 | STATEREFS="#define statereferences"
|
|---|
| 33 | rcount=1
|
|---|
| 34 | liste=`grep "^[[:blank:]]*${CATEGORY}${ACTION}State(" $1 | awk -F"(" {'print $2'} | awk -F")" {'print $1'} | tr \ \# | tr , \ `
|
|---|
| 35 | for statetype in $liste; do
|
|---|
| 36 | statetype=`echo $statetype | sed -e "s/^const#*//"`
|
|---|
| 37 | ptype=`echo $statetype | sed -e "s/#*\&*_/_/" | awk -F"_" {'print $1'} | tr \# \ `
|
|---|
| 38 | pstate=`echo $statetype | awk -F"_" {'print $2'} | tr \# \ `
|
|---|
| 39 | STATETYPES="$STATETYPES ($ptype)"
|
|---|
| 40 | STATEREFS="$STATEREFS ($pstate)"
|
|---|
| 41 | ((rcount+=1))
|
|---|
| 42 | if [ $rcount -ge $count ]; then
|
|---|
| 43 | break
|
|---|
| 44 | fi
|
|---|
| 45 | done
|
|---|
| 46 | if [ $rcount == 1 ]; then
|
|---|
| 47 | STATETYPES="#undefine statetypes"
|
|---|
| 48 | STATEREFS="#undefine statereferences"
|
|---|
| 49 | fi
|
|---|
| 50 |
|
|---|
| 51 | TOKEN=`grep '::NAME\[\] =' $1 | awk -F"=" {'print $2'} | tr -d \ \;`
|
|---|
| 52 | action=`echo ${ACTION}Action | tr [a-z] [A-Z]`
|
|---|
| 53 | start=`grep -n "#define $action" ${DIR}/${ACTION}Action.hpp | awk -F":" {'print $1'}`
|
|---|
| 54 | end=`grep -n "^void ${CATEGORY}${ACTION}(" ${DIR}/${ACTION}Action.hpp | awk -F":" {'print $1'}`
|
|---|
| 55 | ((end-=1))
|
|---|
| 56 | bitmore=$((end-start))
|
|---|
| 57 | if [ $bitmore != 0 ]; then
|
|---|
| 58 | INCLUDES=`head -n $end ${DIR}/${ACTION}Action.hpp | tail -n $bitmore | grep -v "/Action.hpp" | sed -e '/^$/d'`
|
|---|
| 59 | else
|
|---|
| 60 | INCLUDES=""
|
|---|
| 61 | fi
|
|---|
| 62 |
|
|---|
| 63 | cat >${DIR}/${ACTION}Action.def <<EOF
|
|---|
| 64 | /*
|
|---|
| 65 | * ${ACTION}Action.def
|
|---|
| 66 | *
|
|---|
| 67 | * Created on: Aug 26, 2010
|
|---|
| 68 | * Author: heber
|
|---|
| 69 | */
|
|---|
| 70 |
|
|---|
| 71 | // all includes and forward declarations necessary for non-integral types below
|
|---|
| 72 | $INCLUDES
|
|---|
| 73 |
|
|---|
| 74 | // i.e. there is an integer with variable name Z that can be found in
|
|---|
| 75 | // ValueStorage by the token "Z" -> first column: int, Z, "Z"
|
|---|
| 76 | // "undefine" if no parameters are required
|
|---|
| 77 | $PARAMTYPES
|
|---|
| 78 | $PARAMTOKENS
|
|---|
| 79 | $PARAMREFS
|
|---|
| 80 |
|
|---|
| 81 | $STATETYPES
|
|---|
| 82 | $STATEREFS
|
|---|
| 83 |
|
|---|
| 84 | // some defines for all the names, you may use ACTION, STATE and PARAMS
|
|---|
| 85 | #define CATEGORY $CATEGORY
|
|---|
| 86 | #define ACTIONNAME $ACTION
|
|---|
| 87 | #define TOKEN $TOKEN
|
|---|
| 88 |
|
|---|
| 89 | EOF
|
|---|