:
# Copyright (C) 1990 Department of Computer Science, University of Queensland
#
#make a relation size_instr(instruction, num) from execute.c
# execute.c
#									sed
# PUT_CONSTANT, Constant(value), Register(i),
#									tr
# put_constant, constant(value), register(i),
#									sed
# echo "size_instr(put_constant(constant(Value), register(I)), `expr \
# constant(Value), register(I),  1`)."
#									sed
# echo "size_instr(put_constant(Value, I), `expr \
# 4 + 1 +  1`)."
#									sh
# size_instr(put_constant(Value, I), 6).

echo "/*
 * Copyright (C) 19`date +%y` Department of Computer Science, University of Queensland
 */
"

sed -n '1,/^	.*{/ d
/^	otherwise/,$d
/^	when / {
	s/	when //
	s/://
	x
	: loop
	n
	/^#ifdef/{
		: ifdef
		n
		/^#endif/!b ifdef
		n
	}
	/^		Get/{
		s/		Get//
		s/;//
		H
		b loop
	}
	x
	s/\n/, /g
	s/$/, /
	p
	x
}
' |
	tr [A-Z] [a-z] |
	sed '	s/(a/(A/g
		s/(b/(B/g
		s/(c/(C/g
		s/(d/(D/g
		s/(e/(E/g
		s/(f/(F/g
		s/(g/(G/g
		s/(h/(H/g
		s/(i/(I/g
		s/(j/(J/g
		s/(k/(K/g
		s/(l/(L/g
		s/(m/(M/g
		s/(n/(N/g
		s/(o/(O/g
		s/(p/(P/g
		s/(q/(Q/g
		s/(r/(R/g
		s/(s/(S/g
		s/(t/(T/g
		s/(u/(U/g
		s/(v/(V/g
		s/(w/(W/g
		s/(x/(X/g
		s/(y/(Y/g
		s/(z/(Z/g
		s/\([^,]*\), \(.*\)/echo "size_instr(\1(\2), `expr \\\
\2 1`)."/
		s/, )/)/
		s/()//' |
        sed '   $a\
                echo "switch_on_entry_size(constant_default, `expr \\\
constant(X), offset(Y)`)."\
                echo "switch_on_entry_size(functor_default, `expr \\\
constant(X), number(Y), offset(Z)`)."\
                ' |
	sed '	/^echo /s/[a-z_]*(\([^()]*\))/\1/g
		/^echo /!{
			s/, / + /g
			s/constant([^()]*)/4/g
			s/register([^()]*)/1/g
			s/number([^()]*)/1/g
			s/address([^()]*)/4/g
			s/offset([^()]*)/2/g
			s/predatom([^()]*)/3/g
		}' |
	sh
