awk ' # range.collapse
#   Input:  lines of form: string (tab) ["b"|"e"|"a"] (tab) number
#   Output: lines of form: string (tab) num [(space) num]
#	In sequence of lines with same value of string:
#	b line and following e line are combined into single line:
#		string (tab) num num
#	a line disappears if between paired b and e 
#	a line otherwise becomes single line:
#		string (tab) num

function error(s) {
	print "range.collapse: " s " near pp " rlo "-" rhi | "cat 1>&2"
}
function printoldrange() {
	if (range == 1) { error("no %end for " term); rhi = "XXX" }
	if (NR > 1) {
		if (rlo == rhi)
			print term, rlo
		else
			print term, (rlo " " rhi)
	}
	rlo = rhi = $3	# bounds of current range
}

BEGIN	      { FS = OFS = "\t" }
$1 != term    {	printoldrange(); term = $1; range = 0 }
$2 == "e"     {	if (range == 1) { range = 0; rhi = $3 }
		else { printoldrange(); error("no %begin for " term); rlo = "XXX" }
		next
	      }
$3 <= rhi + 1 { rhi = $3}
$3 >  rhi + 1 { if (range == 0) printoldrange() }
$2 == "b"     {	if (range == 1) error("multiple %begin for " term); range = 1 }
END	      {	if (NR == 1) NR = 2; printoldrange() }
' $*
