|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T g
Length: 1514 (0x5ea)
Types: TextFile
Names: »genclass.extnsn«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89
└─⟦cc8755de2⟧ »./libg++-1.36.1.tar.Z«
└─⟦23757c458⟧
└─⟦this⟧ »libg++/proto-kit/genclass.extnsn«
#!/bin/sh
# shell script for generating classes from prototypes
#
# usage: genclass protodir cdir extension [-2] type1 {ref, val}
# [type2 {ref, val}] proto
#
# modified by Carl Staelin to generate a single file (either the .h or
# the .cc file, but not both in the same pass). This is useful when
# there are user prototypes which are volatile, and whose implementations
# are being debugged (less code is recompiled if the .h file is touched)
# search in standard g++ prototype directory & in current
#PROTODIR=/usr/local/lib/g++-proto
PROTODIR=$1; shift;
CURRENTDIR=`pwd`
#OUTDIR=`pwd`
OUTDIR=$1; shift;
EXTNSN=$1; shift;
#debug
#echo protodir is $PROTODIR
#echo outdir is $OUTDIR
N=""
T2=""
T2ACC=""
case $1 in
-2) N="2"; shift;;
*) ;;
esac
T1=$1
case $2 in
ref) T1ACC="\&";;
val) T1ACC=" ";;
*) echo "Must specify type1 access: ref or val"; exit 1;;
esac
case $N in
2) T2=$3;
case $4 in
ref) T2ACC="\&";;
val) T2ACC=" ";;
*) echo "Must specify type2 access: ref or val"; exit 1;;
esac;
CLASS=$5;;
*) CLASS=$3;;
esac
# .h and .cc parts done separately in case only a .h
SRC=$CLASS.$EXTNSN.proto
OUT=$OUTDIR/$T1$T2$CLASS.$EXTNSN
#debug
#echo h source file is $SRC
#echo h outfile is $OUT
if test -f $CURRENTDIR/$SRC
then SRC=$CURRENTDIR/$SRC
elif test -f $PROTODIR/$SRC
then SRC=$PROTODIR/$SRC
else echo "genclass: $SRC: no such file"; exit 1;
fi
sed < $SRC > $OUT -e "s/<T>/$T1/g" -e "s/<T&>/$T1$T1ACC/g" -e "s/<U>/$T2/g" -e "s/<U&>/$T2$T2ACC/g"