# Generate the VMS crtl map
#	Copyright (C) 2011-2021 Free Software Foundation, Inc.

BEGIN {
    is_first = 1;
    maxlen=1;
    maxlen_name="??"
    prev=""
    ORS=""
}

# Remove comment and blank lines.
/^ *#/ || /^ *$/ {
  next;
}

{
    # Handle comma
    if (!is_first)
        print ",\n"
    else
        is_first = 0;

    # Check the map is sorted
    if ($0 <= prev)
    {
        print "Map not sorted!! (with name " $0 ")\n"
        exit 1
    }
    prev = $0

    # Compute the max of the identifier len.
    l=length($1)
    if (l > maxlen)
    {
        maxlen = l
        maxlen_name = $1
    }

    print "{ \"" $1 "\", "
    if (NF == 1)
        print "0 }"
    else
    {
	printf "VMS_CRTL_" $2
	for (i = 3; i <= NF; i++)
	    printf " | VMS_CRTL_" $i
	printf " }"
    }
}

END {
    print "\n\n"
    print "#define VMS_CRTL_MAXLEN " maxlen "  /*" maxlen_name " */\n"
}
