#!/bin/bash

function main()
{
mkdir -p $1
cd $1
shift

asn1c -gen-PER -fcompound-names  $* 2>&1 | grep -v -- '->' | grep -v '^Compiled' |grep -v sample

awk ' 
  BEGIN { 
     print "#ifndef __ASN1_CONSTANTS_H__"
     print "#define __ASN1_CONSTANTS_H__"
  }  
  /INTEGER ::=/ { 
     gsub("INTEGER ::=","")
     gsub("--","//")
     gsub("-1","_minus_1")
     gsub("-","_")
     printf("#define %s\n",$0)
  } 
  /::=.*INTEGER.*[(]/ {
     nb_fields=split($0,val,"[:=().]+");
     gsub("-","_",val[1]);
     printf("#define min_val_%s %s\n",val[1],val[nb_fields-2]);
     printf("#define max_val_%s %s\n",val[1],val[nb_fields-1]);
  }
  END {
     print "#endif ";
  } ' $1  > asn1_constants.h
}

main "$@"
