#!/usr/bin/perl -w # Alternative version of zoltraak encoder that doesn't do any compression. use strict; # Load prelude from DATA section. my $prelude = ""; while( my $line = ) { chomp $line; # Compress spaces. if( $line =~ s/^\s*#/#/ ) { if( $prelude ne "" && $prelude !~ /\n$/ ) { $prelude .= "\n"; } $prelude .= $line . "\n"; } else { $line =~ s/\s//gs; $line =~ s/\b(char|int|void|return)(\w)/$1 $2/g; $prelude .= $line; } } # Output prelude. print $prelude; # Translate bytes. while( my $line = <> ) { foreach my $c (unpack "C*", $line) { $c ^= 0x20; for(my $bit = 0; $bit < 8; $bit++) { print (($c & (1 << $bit)) ? "zoltraak\n" : "\n"); } print "zoltraak\n"; } } __DATA__ #ifndef zoltraak #include int i; void a(int _) { _ % 9 ? (i |= 1 << (_ % 9 - 1)) : (putchar(i ^ 32), i = 0); } int main(void) { #define zoltraak a(__LINE__); #include __FILE__ #undef zoltraak #define zoltraak return 0; } #endif