#!/bin/bash

fixbackrefs()
{
if [ "${1}" = "aonchiall" ]
then
while read perlline
do
	if echo "${perlline}" | grep '^s/' > /dev/null
	then
		PRESTUFF=`echo "${perlline}" | sed 's/<\\/Z>(.*//'`
		PREANDWORD=`echo "${perlline}" | sed 's@)<\\/B>.*@@'`
		WORDNUM=`echo "(${PRESTUFF}" | tr -d -c "(" | wc -c | tr -d " "`
		TAILNUM=`echo "(${PREANDWORD}" | tr -d -c "(" | wc -c | tr -d " "`
		echo "${perlline}" | sed "s/\$4/\$${TAILNUM}/; s/\$3/\$${WORDNUM}/" | sed 's/\([[<^]\)\//\1\\\//g'
	else
		echo "${perlline}" | sed 's/\([[<^]\)\//\1\\\//g'
	fi
done
else
	if [ "${1}" = "comhshuite" ]
	then
		cat
	else
		sed 's/|<B><Z>[^+]*+<\\\/Z>[^/]*\/B>//g; s/(<\[\\\/A-DF-Z\]\[^>\]\*>)+/<[A-DF-Z][^>]*>/g'
	fi
fi
}

# e.g. "aonchiall-ga.pl"
PERLOUT="${1}"
# e.g. /usr/bin/perl
PERLPATH="${2}"
# e.g. "aonchiall"
FLAVOR=`echo ${PERLOUT} | sed 's/-.*//'`
# e.g. "ga"
MYLANG=`echo ${PERLOUT} | sed 's/.*-\([^.]*\)\..*/\1/'`
# e.g. "aonchiall-ga.in"
INFILE=`echo ${PERLOUT} | sed 's/\.pl/.in/'`
# e.g. "aonchiall-ga.meta.sed"
METASED=`echo ${PERLOUT} | sed 's/\.pl/.meta.sed/'`

rm -f ${METASED}
cat gin.meta.sed macra-${MYLANG}.meta.sed ${FLAVOR}.meta.sed | egrep -v '^#' > ${METASED}
(echo "#!${PERLPATH}"; echo "# Users should modify ${INFILE}, not this file"; echo 'while(<>){';  cat "${INFILE}" | sed '/^#/!s/:/~:/' | tr "~" "\n" | LC_ALL="C" sed -f ${METASED}; echo 'print;'; echo '}'; echo 'exit;') | fixbackrefs ${FLAVOR} > ${PERLOUT}
rm -f ${METASED}
