summaryrefslogtreecommitdiff
path: root/bin/info2mml
diff options
context:
space:
mode:
Diffstat (limited to 'bin/info2mml')
-rwxr-xr-xbin/info2mml166
1 files changed, 166 insertions, 0 deletions
diff --git a/bin/info2mml b/bin/info2mml
new file mode 100755
index 00000000000..21257927f42
--- /dev/null
+++ b/bin/info2mml
@@ -0,0 +1,166 @@
+#! /bin/sh
+# =============================================================================
+#
+# = DESCRIPTION
+# Front end to awk script for generating Frame mml from classinfo
+# files.
+#
+# = AUTHOR(S)
+# Graham Dumpleton
+# K. Dorn
+#
+# = COPYRIGHT
+# Copyright 1991 OTC LIMITED
+# Copyright 1994 DUMPLETON SOFTWARE CONSULTING PTY LIMITED
+#
+# =============================================================================
+
+OSE_HOST=
+
+OSE_RELEASE_NAME=
+export OSE_RELEASE_NAME
+
+OSE_ROOT=${OSE_ROOT-$WRAPPER_ROOT}
+export OSE_ROOT
+
+OSE_VERSION_ROOT=$OSE_ROOT/$OSE_RELEASE_NAME
+export OSE_VERSION_ROOT
+
+BINDIR="$OSE_VERSION_ROOT/$OSE_HOST/bin"
+LIBDIR=${CLASSINFOLIBDIR-"$OSE_VERSION_ROOT/bin"}
+
+AWK="${AWK-nawk}"
+
+if test "$AWK" = "nawk"
+then
+ VARG="-v"
+fi
+
+EXT="mml"
+
+#
+# Error.
+#
+ERROR()
+{
+ echo "`basename $0`: $1" >&2
+ shift
+ while test $# != "0"
+ do
+ echo $1 >&2
+ shift
+ done
+ exit 1
+}
+
+#
+# Usage message.
+#
+USAGE()
+{
+ ERROR "Usage: `basename $0` file.ci"
+}
+
+#
+# Check usage.
+#
+if test $# != "1" -o "'basename $1 .ci'" = "$1"
+then
+ USAGE
+fi
+
+#
+# Check for awk file etc.
+#
+INFO2MAN=$LIBDIR/info2doc.awk
+HIDINGFMT=$LIBDIR/hiding.fmt
+MANFMT=$LIBDIR/info2doc.fmt
+
+
+if test ! -f $HIDINGFMT
+then
+ ERROR "Can't find $HIDINGFMT"
+fi
+
+if test ! -f $INFO2MAN
+then
+ ERROR "Can't find $INFO2MAN"
+fi
+
+if test ! -f $MANFMT
+then
+ ERROR "Can't find $MANFMT"
+fi
+
+ADTS=`$AWK '
+BEGIN {
+ FS="\n"; RS=""
+}
+$1 ~ "^(CLASS|STRUCT|UNION)$" && $2 !~ "(::|<)" {
+ printf( "%s\n", $2 )
+}
+$1 ~ "^TEMPLATE$" && $3 !~ "::" {
+ printf( "%s\n", $3 )
+}' $1`
+
+
+VCSA=`$AWK '
+BEGIN {
+ FS="\n"; RS=""
+}
+$1 ~ "^CSAHEADER$" {
+ if ( $2 ~ "on" )
+ printf("%s","csaprintheader=off");
+ else
+ printf("%s","csaprintheader=off");
+}' $HIDINGFMT`
+
+VPUBL=`$AWK '
+BEGIN {
+ FS="\n"; RS=""
+}
+$1 ~ "^PUBLIC$" {
+ if ( $2 ~ "on" )
+ printf("%s","publ=on");
+ else
+ printf("%s","publ=");
+}' $HIDINGFMT`
+
+VPROT=`$AWK '
+BEGIN {
+ FS="\n"; RS=""
+}
+$1 ~ "^PROTECTED$" {
+ if ( $2 ~ "on" )
+ printf("%s","prot=on");
+ else
+ printf("%s","prot=");
+}' $HIDINGFMT`
+
+VPRIV=`$AWK '
+BEGIN {
+ FS="\n"; RS=""
+}
+$1 ~ "^PRIVATE$" {
+ if ( $2 ~ "on" )
+ printf("%s","priv=on");
+ else
+ printf("%s","priv=");
+}' $HIDINGFMT`
+
+echo " $VPUBL $VPROT $VPRIV $VCSA "
+
+
+
+if test ! -z "$ADTS"
+then
+ for ADT in $ADTS
+ do
+ echo "$ADT"
+
+ $AWK -f $INFO2MAN \
+ $VARG $VPUBL $VARG $VPROT $VARG $VPRIV $VARG $VCSA \
+ $VARG pass=0 $VARG device=mml $VARG infile=$1 \
+ $VARG class=$ADT $MANFMT $MANFMT > $ADT.$EXT
+ done
+fi