#!/usr/bin/perl

#
# $Id$
# $Author$
#
# Simple tool that fetches known ASN.1 specifications from the
# stream of LyX data.
#

if($#ARGV == -1) {
	print STDERR "Extract known modules from LyX data\n";
	print STDERR "Usage: cat *.lyx | $0 <ASN-Module-Name> ...\n";
	exit 64;
}

# Convert arguments into a hash for quicker search.
for(my $i; $i <= $#ARGV; $i++) {
	$modules{$ARGV[$i]} = $ARGV[$i].".asn1";
}

# Process incoming stream in search for ASN.1 modules.
while(<STDIN>) {
	chop;
	if($inmodule) {
		next if(/^$/);
		if(/^\\layout /) {
			print O "\n";
			next;
		}
		if(/^\\begin_inset Quotes/) {
			print O '"';
			next;
		}
		next if(/^\\/);
		print O;
		if(/^END$/) {
			$inmodule = 0;
			print O "\n";
		}
	} else {
		next unless $modules{$_};
		open(O, '> '.$modules{$_});
		print O;
		$inmodule = 1;
		delete $modules{$_};
	}
}

# Make sure noone's missing.
die "Modules not found: " . join(", ", keys %modules) . "\n" if keys %modules;
