30 lines
582 B
Perl
30 lines
582 B
Perl
|
#!/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");
|
||
|
}
|