print(" switch (c) {\n"); my $lastchar = ""; while () { if (/^[A-F0-9]/ and / [CF]; /) { my ($char, $type, $subst) = m/([A-F0-9]+); ([CF]); ([^;]+)/; if ($char eq $lastchar) { break; } my @subst = $subst =~ m/(\w+)/g; printf(" case 0x%s:\n", $char); foreach (@subst) { printf(" bufpush(0x%s);\n", $_); } printf(" break;\n"); $lastchar = $char; } } printf(" default:\n"); printf(" bufpush(c);\n"); print(" }\n");