mirror of
https://github.com/urbit/shrub.git
synced 2024-12-11 11:02:25 +03:00
23 lines
525 B
Raku
23 lines
525 B
Raku
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");
|
|
|