#!/usr/athena/bin/perl

LINE:
  while (<>) {
    chop;
    s/\#.*$// && (/^\s*$/ && next LINE);	# eliminate comments
    /^\s/ && do { $alias .= $_;  next LINE };	# whitespace means continuation
    &eat_alias( $alias );			# done; process the alias
    $alias = $_;
  }
&eat_alias( $alias );			# *really* done; process the alias

sub eat_alias {
  local ($_) = @_;
  $_ || return;
  s/\s+//g;
  /:/ || die "no ':' in alias description [yaaah! I am upset!]";
  if (defined $assert) {
    ($assert eq $`) || die "continuation does not directly follow alias";
    undef $assert;
  }
  $name = $` unless defined $name;

  push( @fields, split(/,/, $') );

  if ($fields[$#fields] =~ /^cont\d-\w{6}$/) {
    # continuation.
    $assert = pop(@fields);
  } else {
    # we're done.  roll it!
    print "$name:", join(",", sort @fields), "\n";

    undef $name;
    @fields = ();
  }
}
