#!/usr/bin/perl -w sub convert { $s = shift; $s = "ENC_".uc($s); $s =~ s/-/_/g; return $s; } open TABLE, "table"; $encodings = ""; while () { if (/^(0x[0-9a-fA-F]+)\s+([^:]*):(0x[0-9a-fA-F]+)/) { ($u, $e) = ($1, $2); $u = oct($u); if (!defined $start) { $start = $u; $old_u = $u; $encodings = convert($e); $end = $u; } elsif ($old_u ne $u) { if (!defined $old_encodings) { $old_encodings = $encodings; } elsif ($old_encodings ne $encodings || $old_u != $end + 1) { printf "{ %#x, %#x, $old_encodings },\n", $start, $end; $start = $old_u; $old_encodings = $encodings; } $end = $old_u; $encodings = convert($e); $old_u = $u; } else { $encodings .= "|".convert($e); } } } close TABLE;