osmo-iuh/asn1/asn1enum.pl

30 lines
585 B
Perl
Raw Permalink Normal View History

#!/usr/bin/perl -w
use strict;
# small script to extract the constants from
# {HNBAP,RUA,RANAP}-Constants.asn and print them in an ASN.1 format that
# will trigger asn1c to generate associated enums in C.
#
# Usage: ./asn1enum.pl < HNBAP-Constants.asn
my $l;
my %h;
while ($l = <STDIN>) {
chomp($l);
if ($l =~ /^(\S+)\s+(\S+)\s+::=\s+(\d+)/) {
$h{$2}{$3} = $1;
}
}
foreach my $k (keys %h) {
if ($k eq 'INTEGER') {
next;
}
printf("%s ::= INTEGER {\n", $k);
foreach my $r (sort { $a <=> $b } keys %{$h{$k}}) {
printf("\t%s(%d),\n", $h{$k}{$r}, $r);
}
printf("}\n");
}