| binmode STDOUT; | |
| print(" switch (c) {\n"); | |
| my $lastchar = ""; | |
| while (<STDIN>) { | |
| 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"); | |