/* package whatever; // don't place package name! */
#!/usr/bin/perl
use encoding 'utf8';
use integer;
my $filename = shift || 'liu-uni.tab';
open F, '<:raw', $filename or die $!;
{
use bytes;
local $/;
@b = map ord, split //,<F>;
}
close F;
$i1 = getint16(0);
$words = getint16(4);
$i2 = $i1 + getint16(2); # or + ($words*2+7)/8
$i3 = $i2 + getint16(6); # or + ($words*1+7)/8
$i4 = $i3 + getint16(6); # or + ($words*1+7)/8
#printf "words %d 0x%x\n", $words, $words;
#printf "i1=0x%x, i2=0x%x, i3=0x%x, i4=0x%x\n", $i1, $i2, $i3, $i4;
my @rootkey = (split //," abcdefghijklmnopqrstuvwxyz,.'[]");
for my$i(0 .. 1023) {
my @key; $key[0] = $rootkey[$i/32];
$key[1] = $rootkey[$i%32];
next if $key[0] eq ' ';
for $ci(getint16($i*2) .. getint16($i*2+2)-1) {
my $bit24 = getbits($i4, 24, $ci);
my $hi = getbits($i1, 2, $ci);
my $lo = $bit24 & 0x3fff;
#printf "%x %04x\t", $hi, $lo;
$key[2] = $rootkey[$bit24>>19];
$key[3] = $rootkey[$bit24>>14 & 0x1f];
my $flag_unknown = getbits($i2, 1, $ci);
my $flag_sp = getbits($i3, 1, $ci);
print join '', @key;
$char = chr($hi<<14 | $lo);
printf "\t%s", $char;
printf "\t%s", $flag_sp?' ':'*';
printf "%s", $flag_unknown?' ':'+';
print "\n";
}
}
sub getint16 {
my($addr)[email protected]_;
return $b[$addr] | $b[$addr+1]<<8;
}
sub getbits {
my($start, $nbit, $i) = @_;
if($nbit==1 || $nbit==2 || $nbit==4) {
my($byte)=$b[$start+$i*$nbit /8];
my $ovalue = $byte>>(8-$nbit - $i*$nbit %8);
return $ovalue & ((1<<$nbit)-1);
} elsif($nbit>0 && $nbit%8==0) {
my $nbyte = $nbit / 8;
my $value = 0;
my $a = $start + $i * $nbyte;
while($nbyte--) {
$value = $value<<8 | $b[$a++];
}
return $value;
} else {
die;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKIyEvdXNyL2Jpbi9wZXJsCnVzZSBlbmNvZGluZyAndXRmOCc7CnVzZSBpbnRlZ2VyOwoKbXkgJGZpbGVuYW1lID0gc2hpZnQgfHwgJ2xpdS11bmkudGFiJzsKb3BlbiBGLCAnPDpyYXcnLCAkZmlsZW5hbWUgb3IgZGllICQhOwp7CiAgdXNlIGJ5dGVzOwogIGxvY2FsICQvOwogIEBiID0gbWFwIG9yZCwgc3BsaXQgLy8sPEY+Owp9CmNsb3NlIEY7CgokaTEgPSBnZXRpbnQxNigwKTsKJHdvcmRzID0gZ2V0aW50MTYoNCk7CiRpMiA9ICRpMSArIGdldGludDE2KDIpOyAjIG9yICsgKCR3b3JkcyoyKzcpLzgKJGkzID0gJGkyICsgZ2V0aW50MTYoNik7ICMgb3IgKyAoJHdvcmRzKjErNykvOAokaTQgPSAkaTMgKyBnZXRpbnQxNig2KTsgIyBvciArICgkd29yZHMqMSs3KS84CgojcHJpbnRmICJ3b3JkcyAlZCAweCV4XG4iLCAkd29yZHMsICR3b3JkczsKI3ByaW50ZiAiaTE9MHgleCwgaTI9MHgleCwgaTM9MHgleCwgaTQ9MHgleFxuIiwgJGkxLCAkaTIsICRpMywgJGk0OwoKbXkgQHJvb3RrZXkgPSAoc3BsaXQgLy8sIiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiwuJ1tdIik7CmZvciBteSRpKDAgLi4gMTAyMykgewogIG15IEBrZXk7ICRrZXlbMF0gPSAkcm9vdGtleVskaS8zMl07CiAgJGtleVsxXSA9ICRyb290a2V5WyRpJTMyXTsKICBuZXh0IGlmICRrZXlbMF0gZXEgJyAnOwoKICBmb3IgJGNpKGdldGludDE2KCRpKjIpIC4uIGdldGludDE2KCRpKjIrMiktMSkgewogICAgbXkgJGJpdDI0ID0gZ2V0Yml0cygkaTQsIDI0LCAkY2kpOwogICAgbXkgJGhpID0gZ2V0Yml0cygkaTEsIDIsICRjaSk7CiAgICBteSAkbG8gPSAkYml0MjQgJiAweDNmZmY7CiAgICAjcHJpbnRmICIleCAlMDR4XHQiLCAkaGksICRsbzsKCiAgICAka2V5WzJdID0gJHJvb3RrZXlbJGJpdDI0Pj4xOV07CiAgICAka2V5WzNdID0gJHJvb3RrZXlbJGJpdDI0Pj4xNCAmIDB4MWZdOwoKICAgIG15ICRmbGFnX3Vua25vd24gPSBnZXRiaXRzKCRpMiwgMSwgJGNpKTsKICAgIG15ICRmbGFnX3NwID0gZ2V0Yml0cygkaTMsIDEsICRjaSk7CgogICAgcHJpbnQgam9pbiAnJywgQGtleTsKICAgICRjaGFyID0gY2hyKCRoaTw8MTQgfCAkbG8pOwogICAgcHJpbnRmICJcdCVzIiwgJGNoYXI7CiAgICBwcmludGYgIlx0JXMiLCAkZmxhZ19zcD8nICc6JyonOwogICAgcHJpbnRmICIlcyIsICRmbGFnX3Vua25vd24/JyAnOicrJzsKICAgIHByaW50ICJcbiI7CiAgfQp9CgpzdWIgZ2V0aW50MTYgewogIG15KCRhZGRyKVtlbWFpbCBwcm90ZWN0ZWRdXzsKICByZXR1cm4gJGJbJGFkZHJdIHwgJGJbJGFkZHIrMV08PDg7Cn0KCnN1YiBnZXRiaXRzIHsKICBteSgkc3RhcnQsICRuYml0LCAkaSkgPSBAXzsKICBpZigkbmJpdD09MSB8fCAkbmJpdD09MiB8fCAkbmJpdD09NCkgewogICAgbXkoJGJ5dGUpPSRiWyRzdGFydCskaSokbmJpdCAvOF07CiAgICBteSAkb3ZhbHVlID0gJGJ5dGU+Pig4LSRuYml0IC0gJGkqJG5iaXQgJTgpOwogICAgcmV0dXJuICRvdmFsdWUgJiAoKDE8PCRuYml0KS0xKTsKICB9IGVsc2lmKCRuYml0PjAgJiYgJG5iaXQlOD09MCkgewogICAgbXkgJG5ieXRlID0gJG5iaXQgLyA4OwogICAgbXkgJHZhbHVlID0gMDsKICAgIG15ICRhID0gJHN0YXJ0ICsgJGkgKiAkbmJ5dGU7CiAgICB3aGlsZSgkbmJ5dGUtLSkgewogICAgICAgICR2YWx1ZSA9ICR2YWx1ZTw8OCB8ICRiWyRhKytdOwogICAgfQogICAgcmV0dXJuICR2YWx1ZTsKICB9IGVsc2UgewogICAgZGllOwogIH0KfQ==
Main.java:3: error: illegal character: '#'
#!/usr/bin/perl
^
Main.java:3: error: class, interface, or enum expected
#!/usr/bin/perl
^
Main.java:4: error: unclosed character literal
use encoding 'utf8';
^
Main.java:4: error: unclosed character literal
use encoding 'utf8';
^
Main.java:7: error: class, interface, or enum expected
my $filename = shift || 'liu-uni.tab';
^
Main.java:7: error: unclosed character literal
my $filename = shift || 'liu-uni.tab';
^
Main.java:7: error: unclosed character literal
my $filename = shift || 'liu-uni.tab';
^
Main.java:8: error: unclosed character literal
open F, '<:raw', $filename or die $!;
^
Main.java:8: error: unclosed character literal
open F, '<:raw', $filename or die $!;
^
Main.java:9: error: class, interface, or enum expected
{
^
Main.java:11: error: class, interface, or enum expected
local $/;
^
Main.java:12: error: class, interface, or enum expected
@b = map ord, split //,<F>;
^
Main.java:16: error: class, interface, or enum expected
$i1 = getint16(0);
^
Main.java:17: error: class, interface, or enum expected
$words = getint16(4);
^
Main.java:18: error: class, interface, or enum expected
$i2 = $i1 + getint16(2); # or + ($words*2+7)/8
^
Main.java:18: error: illegal character: '#'
$i2 = $i1 + getint16(2); # or + ($words*2+7)/8
^
Main.java:18: error: class, interface, or enum expected
$i2 = $i1 + getint16(2); # or + ($words*2+7)/8
^
Main.java:19: error: illegal character: '#'
$i3 = $i2 + getint16(6); # or + ($words*1+7)/8
^
Main.java:19: error: class, interface, or enum expected
$i3 = $i2 + getint16(6); # or + ($words*1+7)/8
^
Main.java:20: error: illegal character: '#'
$i4 = $i3 + getint16(6); # or + ($words*1+7)/8
^
Main.java:20: error: class, interface, or enum expected
$i4 = $i3 + getint16(6); # or + ($words*1+7)/8
^
Main.java:22: error: illegal character: '#'
#printf "words %d 0x%x\n", $words, $words;
^
Main.java:23: error: illegal character: '#'
#printf "i1=0x%x, i2=0x%x, i3=0x%x, i4=0x%x\n", $i1, $i2, $i3, $i4;
^
Main.java:23: error: class, interface, or enum expected
#printf "i1=0x%x, i2=0x%x, i3=0x%x, i4=0x%x\n", $i1, $i2, $i3, $i4;
^
Main.java:25: error: class, interface, or enum expected
my @rootkey = (split //," abcdefghijklmnopqrstuvwxyz,.'[]");
^
Main.java:25: error: class, interface, or enum expected
my @rootkey = (split //," abcdefghijklmnopqrstuvwxyz,.'[]");
^
Main.java:26: error: illegal '.'
for my$i(0 .. 1023) {
^
Main.java:27: error: class, interface, or enum expected
my @key; $key[0] = $rootkey[$i/32];
^
Main.java:27: error: class, interface, or enum expected
my @key; $key[0] = $rootkey[$i/32];
^
Main.java:28: error: class, interface, or enum expected
$key[1] = $rootkey[$i%32];
^
Main.java:29: error: class, interface, or enum expected
next if $key[0] eq ' ';
^
Main.java:31: error: class, interface, or enum expected
for $ci(getint16($i*2) .. getint16($i*2+2)-1) {
^
Main.java:31: error: illegal '.'
for $ci(getint16($i*2) .. getint16($i*2+2)-1) {
^
Main.java:33: error: class, interface, or enum expected
my $hi = getbits($i1, 2, $ci);
^
Main.java:34: error: class, interface, or enum expected
my $lo = $bit24 & 0x3fff;
^
Main.java:35: error: illegal character: '#'
#printf "%x %04x\t", $hi, $lo;
^
Main.java:35: error: class, interface, or enum expected
#printf "%x %04x\t", $hi, $lo;
^
Main.java:37: error: class, interface, or enum expected
$key[2] = $rootkey[$bit24>>19];
^
Main.java:38: error: class, interface, or enum expected
$key[3] = $rootkey[$bit24>>14 & 0x1f];
^
Main.java:40: error: class, interface, or enum expected
my $flag_unknown = getbits($i2, 1, $ci);
^
Main.java:41: error: class, interface, or enum expected
my $flag_sp = getbits($i3, 1, $ci);
^
Main.java:43: error: class, interface, or enum expected
print join '', @key;
^
Main.java:43: error: empty character literal
print join '', @key;
^
Main.java:43: error: unclosed character literal
print join '', @key;
^
Main.java:43: error: class, interface, or enum expected
print join '', @key;
^
Main.java:44: error: class, interface, or enum expected
$char = chr($hi<<14 | $lo);
^
Main.java:45: error: class, interface, or enum expected
printf "\t%s", $char;
^
Main.java:46: error: class, interface, or enum expected
printf "\t%s", $flag_sp?' ':'*';
^
Main.java:47: error: class, interface, or enum expected
printf "%s", $flag_unknown?' ':'+';
^
Main.java:48: error: class, interface, or enum expected
print "\n";
^
Main.java:49: error: class, interface, or enum expected
}
^
Main.java:54: error: class, interface, or enum expected
return $b[$addr] | $b[$addr+1]<<8;
^
Main.java:55: error: class, interface, or enum expected
}
^
Main.java:58: warning: '_' used as an identifier
my($start, $nbit, $i) = @_;
^
(use of '_' as an identifier might not be supported in releases after Java SE 8)
Main.java:58: error: class, interface, or enum expected
my($start, $nbit, $i) = @_;
^
Main.java:59: error: class, interface, or enum expected
if($nbit==1 || $nbit==2 || $nbit==4) {
^
Main.java:61: error: class, interface, or enum expected
my $ovalue = $byte>>(8-$nbit - $i*$nbit %8);
^
Main.java:62: error: class, interface, or enum expected
return $ovalue & ((1<<$nbit)-1);
^
Main.java:63: error: class, interface, or enum expected
} elsif($nbit>0 && $nbit%8==0) {
^
Main.java:65: error: class, interface, or enum expected
my $value = 0;
^
Main.java:66: error: class, interface, or enum expected
my $a = $start + $i * $nbyte;
^
Main.java:67: error: class, interface, or enum expected
while($nbyte--) {
^
Main.java:69: error: class, interface, or enum expected
}
^
Main.java:71: error: class, interface, or enum expected
} else {
^
Main.java:73: error: class, interface, or enum expected
}
^
64 errors
1 warning